CFx SDK Documentation 2024 SP0
Loading...
Searching...
No Matches
TrVisRendition.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2022, Open Design Alliance (the "Alliance").
3// All rights reserved.
4//
5// This software and its documentation and related materials are owned by
6// the Alliance. The software may only be incorporated into application
7// programs owned by members of the Alliance, subject to a signed
8// Membership Agreement and Supplemental Software License Agreement with the
9// Alliance. The structure and organization of this software are the valuable
10// trade secrets of the Alliance and its suppliers. The software is also
11// protected by copyright law and international treaty provisions. Application
12// programs incorporating this software must include the following statement
13// with their copyright notices:
14//
15// This application incorporates Open Design Alliance software pursuant to a license
16// agreement with Open Design Alliance.
17// Open Design Alliance Copyright (C) 2002-2022 by Open Design Alliance.
18// All rights reserved.
19//
20// By use of this software, its documentation or related materials, you
21// acknowledge and accept the above terms.
23// Basic rendition interface
24
25#ifndef ODTRVISRENDITION
26#define ODTRVISRENDITION
27
28#include "TD_PackPush.h"
29
31#include "TrVisInfoString.h"
33#include "TrVisSurfaceDef.h"
34#include "TrVisViewportDef.h"
35#include "TrVisMetafileDef.h"
36#include "TrVisTextureDef.h"
37#include "TrVisMaterialDef.h"
38#include "TrVisLightDef.h"
39#include "TrVisExtentsDef.h"
40#include "TrVisFogDef.h"
41#include "TrVisSectionDef.h"
42#include "TrVisStateBranchDef.h"
43#include "TrVisVisualStyle.h"
44#include "TrVisLayerDef.h"
45#include "TrVisPropertyDef.h"
46
47#include "Ge/GeExtents3d.h"
48#include "Gs/GsDCRectArray.h"
49
51
52class OdTrVisUniqueID;
53class OdGiDrawable;
54
55class OdGsFiler;
56class OdTrVisIdMap;
57
62{
63 public:
64 // Core rendition data types
66 { //kNoData = 0, // No data type entrance
67 kSurfaceData = 1, // Surface data
82
83 kNDataTypes, // Limited by 6 bits (63 - maximum value)
84 kNGenericDataTypes = kNDataTypes >> 1 // Useful for IdMap's economy
85 };
86 // Mt handling types
88 {
89 kMtSkip = 0, // Skip data
90 kMtRedirect, // Redirect data without handling
91 kMtGlobal, // Redirect under global mutex
92 kMtCompete, // Redirect under specified mutex
93 kMtRecord, // Record till completion (placed under own recorder mutex)
94 kMtComplex // Redirect under complex set of mutexes (up to 4)
95 };
96 struct MtComplex
97 { // It's recommended to set mutexes in strict order to avoid deadlocks.
98 static inline MtHandlerType encode(DataType mutex1, DataType mutex2 = (DataType)0, DataType mutex3 = (DataType)0, DataType mutex4 = (DataType)0)
99 { return (MtHandlerType)(kMtComplex + (mutex1 << 6) + (mutex2 << 12) + (mutex3 << 18) + (mutex4 << 24)); }
100 static inline MtHandlerType decode(MtHandlerType handler) { return (MtHandlerType)(handler & 0x3F); }
101 static inline DataType decode(MtHandlerType handler, OdUInt32 nElem) { return (DataType)((handler >> (6 * nElem)) & 0x3F); }
102 static inline OdUInt32 toGenericDataType(DataType dt) { return dt >> 1; }
103 static inline DataType fromGenericDataType(OdUInt32 nDt) { return (DataType)((nDt) ? (nDt << 1) : 1); }
104 };
105 // Special DisplayId codes, provide fast access to renderer functionality directly from display list
107 {
108 kDisplayCodeZero = 0x00, // Empty display code
109 kDisplayCodeHighlight = 0x01, // Execute highlighting procedure
110 kDisplayCodeUnhighlight = 0x02, // Execute unhighlighting procedure
111 kDisplayCodePushMatrix = 0x03, // Execute push transformation matrix procedure
112 kDisplayCodePopMatrix = 0x04, // Execute pop transformation matrix procedure
113 kDisplayCodeFade = 0x05, // Execute fading procedure
114 kDisplayCodeUnfade = 0x06, // Execute unfading procedure
115 kDisplayCodeHlMarkers = 0x07, // Setup highlight markers
116 kDisplayCodeVsMarkers = 0x08, // Setup visibility markers
117 kDisplayCodeDrawOrder = 0x09, // Provide drawing order for upcoming geometry
118 kDisplayCodeDepthIval = 0x0A, // Modify drawing order interval
119 kDisplayCodeExploded = 0x0B, // Initiates exploded union geometry rendering
120 kDisplayCodeNonExploded = 0x0C, // Stops exploded union geometry rendering
121 kDisplayCodeSelStyle = 0x0D, // Setup selection style
122 kDisplayCodeSelectionID = 0x0E, // Entity id for selection
123
124 kDisplayCodeRange = 0x10 // We reserve first 16 codes for special procedures
125 // Note: Currently we invoked all codes in reserved range. But, before extending range we should better think how to
126 // compress exist codes. As we know smallest page size is 4k for modern systems (0x1000). This "faulting" page
127 // always present at 0 address to check invalid dereferences. But to be more correct we shouldn't lean onto
128 // this and keep display codes range minimal as this is possible to be safe on even most exotic OS.
129 };
130 static const double kDisplayMultiDrawOrderMarker; // Marker for kDisplayCodeDrawOrder which means multi draw order (union stream)
131 // Rendition flags
133 {
134 kSupportPartialUpdate = (1 << 0), // isSupportPartialUpdate
135 kSupportSnapshotQueries = (1 << 1), // isSupportSnapshotQueries
136 kSupportCompositeMetafiles = (1 << 2), // isSupportCompositeMetafiles
137 kSupportVisualStyles = (1 << 3), // isSupportVisualStyles
138 kSupportGsStateSaving = (1 << 4), // isSupportGsStateSaving
139 kSupportOverlayBuffers = (1 << 5), // isSupportOverlayBuffers
140 kSupportGPUSelection = (1 << 6), // isSupportGPUSelection
141 kUpdateClientSectionOnly = (1 << 7), // updateClientDependentSectionOnly
142 kUpdateShareableSectionOnly = (1 << 8), // updateShareableSectionOnly
143 };
144 public:
146 {
147 // Register persistent resource
148 virtual void reg(DataType type, OdTrVisId id, OdDbStub *pPersId) = 0;
149 // Register transient resource
150 virtual void reg(DataType type, OdTrVisId id, const OdGiDrawable *pTransId) = 0;
151 // Register persistent or transient resource
152 void reg(DataType type, OdTrVisId id, OdDbStub *pPersId, const void *pTransId)
153 { if (pPersId) reg(type, id, pPersId); else reg(type, id, reinterpret_cast<const OdGiDrawable*>(pTransId)); }
154 // Copy resource registration
155 virtual void reg(DataType type, OdTrVisId id, const OdTrVisUniqueID &uId) = 0;
156 // Remove resource registration
157 virtual void kill(DataType type, OdTrVisId id) = 0;
158 // Access resource registration
159 virtual OdTrVisUniqueID *get(DataType type, OdTrVisId id, bool bKill = false) const = 0;
160 };
161 public:
162 // Client information
164 {
166 OdTrVisInfoString m_glRenderer; // OpenGL renderer name
169 OdTrVisInfoString m_glExtensions; // List of extensions
170 };
171 // Client settings
173 {
174 bool m_bObtained; // True if settings obtained from client.
175 // Client information
177 // Flags
178 enum Flags
179 {
180 // Texture settings
181 kNonPow2Textures = (1 << 0), // True if support non power of two textures.
182 kNonPow2Wrapping = (1 << 1), // True if support all non power of two textures wrapping modes.
183 kSupportsBGR = (1 << 2), // True if support BGR textures format.
184 kSupportsBGRA = (1 << 3), // True if support BGRA textures format.
185 kRequireBGR = (1 << 4), // True if support only BGR/BGRA textures format.
186 kOverrideLut = (1 << 5), // True if client override Lut device settings.
187 kLutMonochrome = (1 << 6), // True if client prefer Lut monochrome textures.
188 kLutPalette = (1 << 7), // True if client prefer Lut 4-8bpp textures.
189 kCubeMapping = (1 << 8), // True if support cube textures.
190 // Performance/quality degradation
191 kShadeByVertex = (1 << 9), // Mobile devices could have serious performance loss in shaded modes, since per-pixel
192 // calculations too massive. Enable this flag to use per-vertex lighting calculation
193 // instead. This will degenerate lighting quality, but will increase performance.
194 // Data precision
195 kSupportDblAttrs = (1 << 10), // Support double precision attributes (vertex coordinates, depths, etc.)
196 kSupportUintClrs = (1 << 11), // Support UInt8 color data attributes.
197 kSupportHalfNorm = (1 << 12), // Support compressed normal data attributes.
198 kSupportIndex32 = (1 << 13), // Support 32-bit index arrays.
199 kSupportIndex8 = (1 << 14) // Support 8-bit index arrays.
200 };
201 OdUInt32 m_uFlags; // Client flags.
202 // Texture limits
203 OdUInt32 m_nMaxTextureSize; // Maximal texture size
204 OdUInt32 m_nTextureAlignment; // Required default texture alignment
205 // Lineweights
206 float m_nMaxLineWidth; // Maximal line width
207 float m_nMaxPointSize; // Maximal point size
208 // System limits
209 OdUInt32 m_nMaxTextures; // Maximal number of textures
210 OdUInt32 m_nMaxLights; // Maximal number of lights
211
214 , m_ciInfo()
215 , m_uFlags(0)
216 , m_nMaxTextureSize(2048)
218 , m_nMaxLineWidth(1.0f)
219 , m_nMaxPointSize(1.0f)
220 , m_nMaxTextures(8)
221 , m_nMaxLights(4)
222 {
223 }
224
225 // Flag accessors
226
227 // Textures
228
231
234
235 bool isSupportBGR() const { return GETBIT(m_uFlags, kSupportsBGR); }
236 void setSupportBGR(bool bSet) { SETBIT(m_uFlags, kSupportsBGR, bSet); }
237
238 bool isSupportBGRA() const { return GETBIT(m_uFlags, kSupportsBGRA); }
239 void setSupportBGRA(bool bSet) { SETBIT(m_uFlags, kSupportsBGRA, bSet); }
240
241 bool isRequireBGR() const { return GETBIT(m_uFlags, kRequireBGR); }
242 void setRequireBGR(bool bSet) { SETBIT(m_uFlags, kRequireBGR, bSet); }
243
244 bool isLutOverride() const { return GETBIT(m_uFlags, kOverrideLut); }
245 void setLutOverride(bool bSet) { SETBIT(m_uFlags, kOverrideLut, bSet); }
246
248 void setLutMonochrome(bool bSet) { SETBIT(m_uFlags, kLutMonochrome, bSet); }
249 bool overridenLutMonochromeState(bool bDeviceSetting) const
250 { return (isLutOverride()) ? isLutMonochrome() : bDeviceSetting; }
251
252 bool isLutPalette() const { return GETBIT(m_uFlags, kLutPalette); }
253 void setLutPalette(bool bSet) { SETBIT(m_uFlags, kLutPalette, bSet); }
254 bool overridenLutPaletteState(bool bDeviceSetting) const
255 { return (isLutOverride()) ? isLutPalette() : bDeviceSetting; }
256
258 void setSupportCubeMaps(bool bSet) { SETBIT(m_uFlags, kCubeMapping, bSet); }
259
260 // Performance/quality degradation
261
263 void setShadeByVertex(bool bSet) { SETBIT(m_uFlags, kShadeByVertex, bSet); }
264
265 // Data precision
266
269
272
275
278
281 };
282 public:
284
287
288 // High-level callbacks
289
290 // Called on starting vectorizer update.
291 virtual void onDeviceUpdateBegin(OdTrVisRenderClient *pDevice) = 0;
292 // Called on ending vectorizer update.
293 virtual void onDeviceUpdateEnd(OdTrVisRenderClient *pDevice, bool bRender = true) = 0;
294 // Checks that vectorizer update started.
295 virtual bool isWithinDeviceUpdate() const = 0;
296
297 // Called by underlying application to store frame changing information.
298 virtual void onFrameSwitchInfo(OdUInt32 nInterval) = 0;
299
300 // Returns set of bit flags which indicate rendition capabilities/settings
301 virtual OdUInt32 queryRenditionCaps(OdUInt32 requestFor = 0xFFFFFFFF) const = 0;
302 // Rendition capabilities as separate methods
303 // Called to check does rendition supports partial update (have sense for local renditions only).
305 // Check does rendition support snapshot queries
307 // Check does rendition supports composite metafiles
309 // Check does rendition supports visual styles
311 // Check does rendition supports GsFiler-compatible state saving/loading
313 // Check does rendition supports multiple overlapping rendering buffers
315 // Check does rendition supports GPU selection
317 // Update client-dependent section only
319 // Update shareable section only
321
322 // Partial update support for local renditions:
323 // Called to check does specified viewport/overlay combination support partial update query.
324 virtual bool onPartialUpdateCheckLimit(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId) = 0;
325 // Called to setup invalid rectangles and overlays on partial update.
326 virtual void onPartialUpdateInvalidRects(OdTrVisOverlayId overlayId, const OdGsDCRectArray &invalidRects, bool bOverlayInvalid = false) = 0;
327 // Called on partial update query to set entire actual visibilities list.
328 virtual void onPartialUpdateList(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries) = 0;
329 // Can be called by client side to check that rendition supports direct rendering ability.
331 // Can be called by client side to setup direct invocation interface for partial update instead of partial update list usage.
333
334 // Query snapshot
335 virtual void querySnapshot(OdUInt8 *pScanlines, long minX, long minY, long nWidth, long nHeight) = 0;
336
345 virtual void getSelectedObject(OdTrVisViewportId id, OdUInt32 x, OdUInt32 y, OdArray<OdTrVisId> &outIDs, OdTrVisGsMarker *outMarker = NULL) = 0;
346
347 // Allocate new resource sharing provider compatible with rendition
349
350 // Multithread processing flags
352
353 // Returns Id registrator, or NULL if no registration supported
354 virtual IdRegistrator *idRegistrator() const = 0;
355
356 // Returns true if metafile streams accessible directly, returns stream by Id
357 virtual bool queryMetafileStream(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pDisplayId,
358 OdUInt32 nPathLength, const OdTrVisMetafileContainer **pStream) = 0;
359 // Unlock metafile stream, queried by queryMetafileStream method
360 virtual bool unlockMetafileStream(const OdTrVisMetafileContainer *pStream) = 0;
361
362 // Returns block metafile list in case if it is accessible.
363 virtual const OdTrVisDisplayId *queryBlockMetafilesList(OdTrVisBlockId blockId, OdUInt32 &numEntries) = 0;
364
365 // Returns extension object by Id.
367
368 // Returns non-kTrVisNegativeId in case if vectorizer supports ProgramID's embedded into metafile stream
370 OdTrVisGeomType geomType = OdTrVisGeomType_Default, OdUInt16 attrFlags = 0, OdUInt16 shadingFlags = 0) const = 0;
371
372 // GsFiler support
373 virtual bool saveRenditionState(OdGsFiler *pFiler) const = 0;
374 virtual bool loadRenditionState(OdGsFiler *pFiler, OdTrVisIdMap *pIdMap) = 0;
375
376 // Mid-level callbacks
377
378 // Client information
379
380 // Returns rendering client settings.
381 virtual void obtainClientSettings(ClientSettings &clientSets) = 0;
382
383 // Surface
384
385 // Called when output render surface parameters changed.
386 virtual void onSurfaceChanged(const OdTrVisSurfaceDef &pDef) = 0;
387 // Called when rendering surface needs to be invalidated forcibly.
388 virtual void onSurfaceInvalidated() = 0;
389
390 // Overlays
391
392 // Called when new overlay added into device.
393 virtual void onOverlayAdded(OdTrVisOverlayId overlayId, const OdTrVisOverlayDef &pDef) = 0;
394 // Called when exist overlay removed from device.
395 virtual void onOverlayDeleted(OdTrVisOverlayId overlayId) = 0;
396 // Called when overlay visibility changed.
397 virtual void onOverlayVisibilityChanged(OdTrVisOverlayId overlayId, bool bVisibility) = 0;
398 // Called when overlay rendering order changed.
399 virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId overlayId, OdInt16 nRenderOrder) = 0;
400
401 // Viewports
402
403 // Called when new viewport added into device.
404 virtual void onViewportAdded(OdTrVisViewportId viewportId, const OdTrVisViewportDef &pDef) = 0;
405 // Called when viewport inserted in list with some index.
406 virtual void onViewportInserted(OdTrVisViewportId viewportId, int nIndex, const OdTrVisViewportDef &pDef) = 0;
407 // Called when viewport removed from device.
408 virtual void onViewportDeleted(OdTrVisViewportId viewportId) = 0;
409 // Called when viewport visibility changed.
410 virtual void onViewportVisibilityChanged(OdTrVisViewportId viewportId, bool bVisibility) = 0;
411
412 // Primary viewports configuration
413
414 // Called when viewport view parameters is modified.
415 virtual void onViewportViewParamsModified(OdTrVisViewportId viewportId, const OdTrVisViewParamsDef &pDef) = 0;
416 // Called when viewport linestyle settings is modified.
418 // Called when viewport fading settings is modified.
419 virtual void onViewportFadingModified(OdTrVisViewportId viewportId, const OdTrVisViewportFadingDef &pDef) = 0;
420 // Called when viewport lineweight settings is modified.
422 // Called when viewport rendering mode is modified.
424 // Called when viewport clipping region is modified.
426 bool bNrcClipModified = true, bool bBorderModified = true) = 0;
427
428 // Extended viewports configuration
429
430 // Called when background stream in viewport is changed.
432 OdTrVisProgramId baseProgramId = kTrVisNegativeId) = 0;
433 // Called when viewport fog changed.
434 virtual void onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef = OdTrVisFogDef()) = 0;
435 // Called when viewport sectioning modified.
437 // Called when viewport anti-aliasing setting changed.
438 virtual void onViewportAntiAliasingChanged(OdTrVisViewportId viewportId, OdUInt32 nAntiAliasing) = 0;
439 // Called when viewport ssao setting changed.
440 virtual void onViewportSSAOChanged(OdTrVisViewportId viewportId, bool bEnabled) = 0;
441
442 // Viewport default lights configuration
443
444 // Called when viewport ambient light setting modified.
445 virtual void onViewportAmbientLightChanged(OdTrVisViewportId viewportId, const OdTrVisMaterialColor &ambientLight) = 0;
446 // Called when viewport default light setting modified.
447 virtual void onViewportDefaultLightsChanged(OdTrVisViewportId viewportId, bool bDefaultLightsOn,
448 const OdTrVisLightDef *pLightsList = NULL, OdUInt32 nLightsListEntries = 0) = 0;
449
450 // Viewport lights management
451
452 // Called when light source added into viewport light sources list.
454 OdUInt32 nOverrides = 0, const OdTrVisLightDef &pOverrides = OdTrVisLightDef()) = 0;
455 // Called when light source removed from viewport light sources list.
456 virtual void onViewportLightDetached(OdTrVisViewportId viewportId, OdTrVisLightId lightId) = 0;
457
458 // Per-overlay viewport overrides
459
460 // Called when viewport needs override view parameters for specific overlay.
461 virtual void onOverlayViewParamsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, bool bOverride,
462 const OdTrVisViewParamsDef &pDef = OdTrVisViewParamsDef()) = 0;
463 // Called when viewport extents changed.
464 virtual void onOverlayExtentsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisExtentsDef &pDef) = 0;
465
466 // Viewports ordering lists
467
468 // Called when order of metafiles in viewport is changed (for obtain full list by renderer).
469 virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries) = 0;
470 // Called when order of metafiles in viewport is changed (for obtain modified part of list by renderer).
471 virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen,
472 const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen) = 0;
473 // Called when order of metafiles can be inherit from other source.
474 virtual void onMetafileOrderInheritance( OdTrVisViewportId viewportId1, OdTrVisOverlayId overlayId1, OdTrVisViewportId viewportId2 ) = 0;
475
476 // Metafiles
477
478 // Called when new metafile added (returns visualId, equal to metafileId by default).
480 // Called when exist metafile deleted.
481 virtual void onMetafileDeleted(OdTrVisMetafileId metafileId) = 0;
482 // Called when exist metafile changed.
483 //virtual void onMetafileModified(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef &pDef) = 0;
484 // Called when exist metafile visibility changed.
485 virtual void onMetafileVisibilityChanged(OdTrVisMetafileId metafileId, bool bVisibility) = 0;
486 // Called when exist metafile highlighting changed.
487 virtual void onMetafileHighlightingChanged(OdTrVisMetafileId metafileId, bool bHighlight) = 0;
488 // Called when exist metafile fading changed.
489 virtual void onMetafileFadingChanged(OdTrVisMetafileId metafileId, bool bFade) = 0;
490
491 // Lights
492
493 // Called when new light source added.
494 virtual void onLightAdded(OdTrVisLightId lightId, const OdTrVisLightDef &pDef) = 0;
495 // Called when exist light source modified.
496 virtual void onLightModified(OdTrVisLightId lightId, OdUInt32 nKindOfMod, const OdTrVisLightDef &pDef) = 0;
497 // Called when exist light source deleted.
498 virtual void onLightDeleted(OdTrVisLightId lightId) = 0;
499
500 // State branches (highlighting, hide)
501
502 // Called when new state branch added.
503 virtual void onStateBranchAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef) = 0;
504 // Called when exist state branch modified.
505 virtual void onStateBranchModified(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef,
506 bool bChildsModified, bool bMarkersModified) = 0;
507 // Called when exist state branch deleted.
508 virtual void onStateBranchDeleted(OdTrVisStateBranchId stateBranchId) = 0;
509
510 // Textures
511
512 // Called when new texture added.
513 virtual void onTextureAdded(OdTrVisTextureId textureId, const OdTrVisTextureDef &pDef) = 0;
514 // Called when exist texture deleted.
515 virtual void onTextureDeleted(OdTrVisTextureId textureId) = 0;
516
517 // Materials
518
519 // Called when new material added.
520 virtual void onMaterialAdded(OdTrVisMaterialId materialId, const OdTrVisMaterialDef &pDef) = 0;
521 // Called when exist material deleted.
522 virtual void onMaterialDeleted(OdTrVisMaterialId materialId) = 0;
523
524 // Visual Styles
525
526 // Called when new visual style added.
527 virtual void onVisualStyleAdded(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef) = 0;
528 // Called when exist visual style modified.
529 virtual void onVisualStyleModified(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef) = 0;
530 // Called when exist visual style deleted.
531 virtual void onVisualStyleDeleted(OdTrVisVisualStyleId visualStyleId) = 0;
532
533 // Layers
534
535 // Called when new layer added.
536 virtual void onLayerAdded(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef) = 0;
537 // Called when exist layer modified.
538 //virtual void onLayerModified(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef) = 0;
539 // Called when exist layer deleted.
540 virtual void onLayerDeleted(OdTrVisLayerId layerId) = 0;
541 // Called when exist layer visibility changed.
542 virtual void onLayerVisibilityChanged(OdTrVisLayerId layerId, bool bVisibility) = 0;
543 // Called when exist layer fading changed.
544 virtual void onLayerFadingChanged(OdTrVisLayerId layerId, bool bFade) = 0;
545 // Called when layer viewport-dependent properties changed.
546 virtual void onLayerVpDepPropsOverride(OdTrVisLayerId layerId, OdTrVisViewportId viewportId, bool bOverride,
547 const OdTrVisLayerProps &pProps = OdTrVisLayerProps()) = 0;
548
549 // Extension objects
550
551 // Called when new extension object added.
553 // Called when exist extension object deleted.
555 // Called to send special extension object specific data.
556 virtual void onExtensionObjectSpecificData(OdTrVisExtensionId extId, OdUInt32 nDataId, const OdTrVisPropertyDef &propDef) = 0;
557 // Called to change extension object visibility.
558 virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId extId, bool bVisibility) = 0;
559
560 // Blocks
561
562 // Called when new block added.
563 virtual void onBlockAdded(OdTrVisBlockId blockId, const OdTrVisDisplayId *pList, OdUInt32 nEntries) = 0;
564 // Called when block display list changed.
565 virtual void onBlockModified(OdTrVisBlockId blockId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen,
566 const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen) = 0;
567 // Called when exist block deleted.
568 virtual void onBlockDeleted(OdTrVisBlockId blockId) = 0;
569
570 // Groups
571
572 // Called when new group added.
573 virtual void onGroupAdded(OdTrVisGroupId groupId) = 0;
574 // Called when exist group deleted.
575 virtual void onGroupDeleted(OdTrVisGroupId groupId) = 0;
576 // Called to attach metafiles to group.
577 virtual void onGroupMetafilesAttached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles) = 0;
578 // Called to detach metafiles from group (if no metafiles specified - clear entire list of groupped metafiles).
579 virtual void onGroupMetafilesDetached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles) = 0;
580 // Called to delete all groupped metafiles from graphics scene.
581 //virtual void onGroupMetafilesDeleted(OdTrVisGroupId groupId) = 0;
582 // Called to change visibility state for all groupped metafiles.
583 virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId groupId, bool bVisibility) = 0;
584 // Called to change highlighting state for all groupped metafiles.
585 virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId groupId, bool bHighlight) = 0;
586 // Called to change fading state for all groupped metafiles.
587 virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId groupId, bool bFade) = 0;
588
589 // Properties
590
591 // Metafile-related properties.
592 // Called to attach property to metafile.
593 virtual void onMetafilePropertyAttached(OdTrVisMetafileId metafileId, const OdTrVisPropertyDef &propDef) = 0;
594 // Called to detach property from metafile.
596 // Group-related properties.
597 // Called to attach property to group.
598 virtual void onGroupPropertyAttached(OdTrVisGroupId groupId, const OdTrVisPropertyDef &propDef) = 0;
599 // Called to detach property from group.
601 // Layer-related properties.
602 // Called to attach property to layer.
603 virtual void onLayerPropertyAttached(OdTrVisLayerId layerId, const OdTrVisPropertyDef &propDef) = 0;
604 // Called to detach property from layer.
606 // VisualStyle-related properties.
607 // Called to attach property to visual style.
608 virtual void onVisualStylePropertyAttached(OdTrVisVisualStyleId visualStyleId, const OdTrVisPropertyDef &propDef) = 0;
609 // Called to detach property from visual style.
611 // Material-related properties.
612 // Called to attach property to material.
613 virtual void onMaterialPropertyAttached(OdTrVisMaterialId materialId, const OdTrVisPropertyDef &propDef) = 0;
614 // Called to detach property from material.
616 // Texture-related properties.
617 // Called to attach property to texture.
618 virtual void onTexturePropertyAttached(OdTrVisTextureId textureId, const OdTrVisPropertyDef &propDef) = 0;
619 // Called to detach property from texture.
621 // Light-related properties.
622 // Called to attach property to light source.
623 virtual void onLightPropertyAttached(OdTrVisLightId lightId, const OdTrVisPropertyDef &propDef) = 0;
624 // Called to detach property from light source.
626 // HlBranch-related properties.
627 // Called to attach property to state branch.
628 virtual void onStateBranchPropertyAttached(OdTrVisStateBranchId stateBranchId, const OdTrVisPropertyDef &propDef) = 0;
629 // Called to detach property from state branch.
631 // Viewport-related properties.
632 // Called to attach property to viewport.
633 virtual void onViewportPropertyAttached(OdTrVisViewportId viewportId, const OdTrVisPropertyDef &propDef) = 0;
634 // Called to detach property from viewport.
636 // Overlay-related properties.
637 // Called to attach property to overlay.
638 virtual void onOverlayPropertyAttached(OdTrVisOverlayId overlayId, const OdTrVisPropertyDef &propDef) = 0;
639 // Called to detach property from overlay.
641 // ExtensionObject-related properties.
642 // Called to attach property to extension object.
644 // Called to detach property from extension object.
646 // Block-related properties.
647 // Called to attach property to block.
648 virtual void onBlockPropertyAttached(OdTrVisBlockId blockId, const OdTrVisPropertyDef &propDef) = 0;
649 // Called to detach property from viewport.
651};
652
654
659{
660 protected:
662 {
663 virtual void reg(DataType /*type*/, OdTrVisId /*id*/, OdDbStub * /*pPersId*/) { }
664 virtual void reg(DataType /*type*/, OdTrVisId /*id*/, const OdGiDrawable * /*pTransId*/) { }
665 virtual void reg(DataType /*type*/, OdTrVisId /*id*/, const OdTrVisUniqueID & /*uId*/) { }
666 virtual void kill(DataType /*type*/, OdTrVisId /*id*/) { }
667 virtual OdTrVisUniqueID *get(DataType /*type*/, OdTrVisId /*id*/, bool /*bKill*/ = false) const { return NULL; }
669 public:
670 // High-level callbacks
671
672 // Called on starting vectorizer update.
673 virtual void onDeviceUpdateBegin(OdTrVisRenderClient * /*pDevice*/) { }
674 // Called on ending vectorizer update.
675 virtual void onDeviceUpdateEnd(OdTrVisRenderClient * /*pDevice*/, bool /*bRender*/ = true) { }
676 // Checks that vectorizer update started.
677 virtual bool isWithinDeviceUpdate() const { return false; }
678
679 // Called by underlying application to store frame changing information.
680 virtual void onFrameSwitchInfo(OdUInt32 /*nInterval*/) { }
681
682 // Returns set of bit flags which indicate rendition capabilities/settings
683 virtual OdUInt32 queryRenditionCaps(OdUInt32 /*requestFor*/ = 0xFFFFFFFF) const { return 0; }
684
685 // Partial update support for local renditions:
686 // Called to check does specified viewport/overlay combination support partial update query.
687 virtual bool onPartialUpdateCheckLimit(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/) { return false; }
688 // Called to setup invalid rectangles and overlays on partial update.
689 virtual void onPartialUpdateInvalidRects(OdTrVisOverlayId /*overlayId*/, const OdGsDCRectArray & /*invalidRects*/, bool /*bOverlayInvalid*/ = false) { }
690 // Called on partial update query to set entire actual visibilities list.
691 virtual void onPartialUpdateList(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, const OdTrVisDisplayId * /*pList*/, OdUInt32 /*nEntries*/) { }
692 // Can be called by client side to check that rendition supports direct rendering ability.
693 virtual bool queryPartialUpdateDirectInvocation(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, OdTrVisDirectRenderPartialUpdateInvocationPtr & /*pInvocationPtr*/) { return false; }
694 // Can be called by client side to setup direct invocation interface for partial update instead of partial update list usage.
696
697 // Query snapshot
698 virtual void querySnapshot(OdUInt8 * /*pScanlines*/, long /*minX*/, long /*minY*/, long /*nWidth*/, long /*nHeight*/) { }
699
700 // Renders viewport to selection texture. Return top object id with (x, y) position in viewport.
701 virtual void getSelectedObject(OdTrVisViewportId /*id*/, OdUInt32 /*x*/, OdUInt32 /*y*/, OdArray<OdTrVisId> & /*outIDs*/, OdTrVisGsMarker * /*outMarker*/ = NULL) { }
702
703 // Allocate new resource sharing provider compatible with rendition
705
706 // Multithread processing flags
707 virtual MtHandlerType mtDataTypeProcessing(DataType & /*type*/) const { return kMtSkip; }
708
709 // Returns Id registrator, or NULL if no registration supported
710 virtual IdRegistrator *idRegistrator() const { return NULL; }
711
712 // Returns true if metafile streams accessible directly, returns stream by Id
713 virtual bool queryMetafileStream(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, const OdTrVisDisplayId * /*pDisplayId*/,
714 OdUInt32 /*nPathLength*/, const OdTrVisMetafileContainer ** /*pStream*/) { return false; }
715 // Unlock metafile stream, queried by queryMetafileStream method
716 virtual bool unlockMetafileStream(const OdTrVisMetafileContainer * /*pStream*/) { return false; }
717
718 // Returns block metafile list in case if it is accessible.
719 virtual const OdTrVisDisplayId *queryBlockMetafilesList(OdTrVisBlockId /*blockId*/, OdUInt32 & /*numEntries*/) { return NULL; }
720
721 // Returns extension object by Id.
723
724 // Returns non-kTrVisNegativeId in case if vectorizer supports ProgramID's embedded into metafile stream
726 OdTrVisGeomType /*geomType*/ = OdTrVisGeomType_Default, OdUInt16 /*attrFlags*/ = 0, OdUInt16 /*shadingFlags*/ = 0) const
727 { return kTrVisNegativeId; }
728
729 // GsFiler support
730 virtual bool saveRenditionState(OdGsFiler * /*pFiler*/) const { return false; }
731 virtual bool loadRenditionState(OdGsFiler * /*pFiler*/, OdTrVisIdMap * /*pIdMap*/) { return false; }
732
733 // Mid-level callbacks
734
735 // Client information
736
737 // Returns rendering client settings.
738 virtual void obtainClientSettings(ClientSettings & /*clientSets*/) { }
739
740 // Surface
741
742 // Called when output render surface parameters changed.
743 virtual void onSurfaceChanged(const OdTrVisSurfaceDef & /*pDef*/) { }
744 // Called when rendering surface needs to be invalidated forcibly.
745 virtual void onSurfaceInvalidated() { }
746
747 // Overlays
748
749 // Called when new overlay added into device.
750 virtual void onOverlayAdded(OdTrVisOverlayId /*overlayId*/, const OdTrVisOverlayDef & /*pDef*/) { }
751 // Called when exist overlay removed from device.
752 virtual void onOverlayDeleted(OdTrVisOverlayId /*overlayId*/) { }
753 // Called when overlay visibility changed.
754 virtual void onOverlayVisibilityChanged(OdTrVisOverlayId /*overlayId*/, bool /*bVisibility*/) { }
755 // Called when overlay rendering order changed.
756 virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId /*overlayId*/, OdInt16 /*nRenderOrder*/) { }
757
758 // Viewports
759
760 // Called when new viewport added into device.
761 virtual void onViewportAdded(OdTrVisViewportId /*viewportId*/, const OdTrVisViewportDef & /*pDef*/) { }
762 // Called when viewport inserted in list with some index.
763 virtual void onViewportInserted(OdTrVisViewportId /*viewportId*/, int /*nIndex*/, const OdTrVisViewportDef & /*pDef*/) { }
764 // Called when viewport removed from device.
765 virtual void onViewportDeleted(OdTrVisViewportId /*viewportId*/) { }
766 // Called when viewport visibility changed.
767 virtual void onViewportVisibilityChanged(OdTrVisViewportId /*viewportId*/, bool /*bVisibility*/) { }
768
769 // Primary viewports configuration
770
771 // Called when viewport view parameters is modified.
772 virtual void onViewportViewParamsModified(OdTrVisViewportId /*viewportId*/, const OdTrVisViewParamsDef & /*pDef*/) { }
773 // Called when viewport linestyle settings is modified.
774 virtual void onViewportLineStylesModified(OdTrVisViewportId /*viewportId*/, const OdTrVisViewportLineStyleDef & /*pDef*/) { }
775 // Called when viewport fading settings is modified.
776 virtual void onViewportFadingModified(OdTrVisViewportId /*viewportId*/, const OdTrVisViewportFadingDef & /*pDef*/) { }
777 // Called when viewport lineweight settings is modified.
778 virtual void onViewportLineweightsModified(OdTrVisViewportId /*viewportId*/, const OdTrVisViewportLineweightsDef & /*pDef*/) { }
779 // Called when viewport rendering mode is modified.
780 virtual void onViewportShadingModified(OdTrVisViewportId /*viewportId*/, const OdTrVisViewportShadingDef & /*pDef*/) { }
781 // Called when viewport clipping region is modified.
782 virtual void onViewportClipModified(OdTrVisViewportId /*viewportId*/, const OdTrVisViewportClipDef & /*pDef*/,
783 bool /*bNrcClipModified*/ = true, bool /*bBorderModified*/ = true) { }
784
785 // Extended viewports configuration
786
787 // Called when background stream in viewport is changed.
789 OdTrVisProgramId /*baseProgramId*/ = kTrVisNegativeId) { }
790 // Called when viewport fog changed.
791 virtual void onViewportFogChanged(OdTrVisViewportId /*viewportId*/, const OdTrVisFogDef & /*pDef*/ = OdTrVisFogDef()) { }
792 // Called when viewport sectioning modified.
793 virtual void onViewportSectioningChanged(OdTrVisViewportId /*viewportId*/, const OdTrVisSectionDef & /*pDef*/ = OdTrVisSectionDef()) { }
794 // Called when viewport anti-aliasing setting changed.
795 virtual void onViewportAntiAliasingChanged(OdTrVisViewportId /*viewportId*/, OdUInt32 /*nAntiAliasing*/) { }
796 // Called when viewport ssao setting changed.
797 void onViewportSSAOChanged(OdTrVisViewportId viewportId, bool bEnabled) ODRX_OVERRIDE {}
798
799 // Viewport default lights configuration
800
801 // Called when viewport ambient light setting modified.
802 virtual void onViewportAmbientLightChanged(OdTrVisViewportId /*viewportId*/, const OdTrVisMaterialColor & /*ambientLight*/) { }
803 // Called when viewport default light setting modified.
804 virtual void onViewportDefaultLightsChanged(OdTrVisViewportId /*viewportId*/, bool /*bDefaultLightsOn*/,
805 const OdTrVisLightDef * /*pLightsList*/ = NULL, OdUInt32 /*nLightsListEntries*/ = 0) { }
806
807 // Viewport lights management
808
809 // Called when light source added into viewport light sources list.
810 virtual void onViewportLightAttached(OdTrVisViewportId /*viewportId*/, OdTrVisLightId /*lightId*/,
811 OdUInt32 /*nOverrides*/ = 0, const OdTrVisLightDef & /*pOverrides*/ = OdTrVisLightDef()) { }
812 // Called when light source removed from viewport light sources list.
813 virtual void onViewportLightDetached(OdTrVisViewportId /*viewportId*/, OdTrVisLightId /*lightId*/) { }
814
815 // Per-overlay viewport overrides
816
817 // Called when viewport needs override view parameters for specific overlay.
818 virtual void onOverlayViewParamsOverride(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, bool /*bOverride*/,
819 const OdTrVisViewParamsDef & /*pDef*/ = OdTrVisViewParamsDef()) { }
820 // Called when viewport extents changed.
821 virtual void onOverlayExtentsOverride(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, const OdTrVisExtentsDef & /*pDef*/) { }
822
823 // Viewports ordering lists
824
825 // Called when order of metafiles in viewport is changed.
826 virtual void onMetafileOrderChanged(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, const OdTrVisDisplayId * /*pList*/, OdUInt32 /*nEntries*/) { }
827 // Called when order of metafiles in viewport is changed (for obtain modified part of list by renderer).
828 virtual void onMetafileOrderChanged(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, OdUInt32 /*nInvalidFrom*/, OdUInt32 /*nInvalidLen*/,
829 const OdTrVisDisplayId * /*pValidFrom*/, OdUInt32 /*nValidLen*/) { }
830 // Called when order of metafiles can be inherit from other source.
831 virtual void onMetafileOrderInheritance(OdTrVisViewportId /*viewportId1*/, OdTrVisOverlayId /*overlayId1*/, OdTrVisViewportId /*viewportId2*/) { }
832
833 // Metafiles
834
835 // Called when new metafile added (returns visualId, equal to metafileId by default).
836 virtual OdTrVisDisplayId onMetafileAdded(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef & /*pDef*/) { return (OdTrVisDisplayId)metafileId; }
837 // Called when exist metafile deleted.
838 virtual void onMetafileDeleted(OdTrVisMetafileId /*metafileId*/) { }
839 // Called when exist metafile changed.
840 //virtual void onMetafileModified(OdTrVisMetafileId /*metafileId*/, const OdTrVisMetafileDef & /*pDef*/) { }
841 // Called when exist metafile visibility changed.
842 virtual void onMetafileVisibilityChanged(OdTrVisMetafileId /*metafileId*/, bool /*bVisibility*/) { }
843 // Called when exist metafile highlighting changed.
844 virtual void onMetafileHighlightingChanged(OdTrVisMetafileId /*metafileId*/, bool /*bHighlight*/) { }
845 // Called when exist metafile fading changed.
846 virtual void onMetafileFadingChanged(OdTrVisMetafileId /*metafileId*/, bool /*bFade*/) { }
847
848 // Lights
849
850 // Called when new light source added.
851 virtual void onLightAdded(OdTrVisLightId /*lightId*/, const OdTrVisLightDef & /*pDef*/) { }
852 // Called when exist light source modified.
853 virtual void onLightModified(OdTrVisLightId /*lightId*/, OdUInt32 /*nKindOfMod*/, const OdTrVisLightDef & /*pDef*/) { }
854 // Called when exist light source deleted.
855 virtual void onLightDeleted(OdTrVisLightId /*lightId*/) { }
856
857 // State branches (highlighting, hide)
858
859 // Called when new state branch added.
860 virtual void onStateBranchAdded(OdTrVisStateBranchId /*stateBranchId*/, const OdTrVisStateBranchDef & /*pDef*/) { }
861 // Called when exist state branch modified.
862 virtual void onStateBranchModified(OdTrVisStateBranchId /*stateBranchId*/, const OdTrVisStateBranchDef & /*pDef*/,
863 bool /*bChildsModified*/, bool /*bMarkersModified*/) { }
864 // Called when exist state branch deleted.
865 virtual void onStateBranchDeleted(OdTrVisStateBranchId /*stateBranchId*/) { }
866
867 // Textures
868
869 // Called when new texture added.
870 virtual void onTextureAdded(OdTrVisTextureId /*textureId*/, const OdTrVisTextureDef & /*pDef*/) { }
871 // Called when exist texture deleted.
872 virtual void onTextureDeleted(OdTrVisTextureId /*textureId*/) { }
873
874 // Materials
875
876 // Called when new material added.
877 virtual void onMaterialAdded(OdTrVisMaterialId /*materialId*/, const OdTrVisMaterialDef & /*pDef*/) { }
878 // Called when exist material deleted.
879 virtual void onMaterialDeleted(OdTrVisMaterialId /*materialId*/) { }
880
881 // Visual Styles
882
883 // Called when new visual style added.
884 virtual void onVisualStyleAdded(OdTrVisVisualStyleId /*visualStyleId*/, const OdTrVisVisualStyle & /*pDef*/) { }
885 // Called when exist visual style modified.
886 virtual void onVisualStyleModified(OdTrVisVisualStyleId /*visualStyleId*/, const OdTrVisVisualStyle & /*pDef*/) { }
887 // Called when exist visual style deleted.
888 virtual void onVisualStyleDeleted(OdTrVisVisualStyleId /*visualStyleId*/) { }
889
890 // Layers
891
892 // Called when new layer added.
893 virtual void onLayerAdded(OdTrVisLayerId /*layerId*/, const OdTrVisLayerDef & /*pDef*/) { }
894 // Called when exist layer modified.
895 //virtual void onLayerModified(OdTrVisLayerId /*layerId*/, const OdTrVisLayerDef & /*pDef*/) { }
896 // Called when exist layer deleted.
897 virtual void onLayerDeleted(OdTrVisLayerId /*layerId*/) { }
898 // Called when exist layer visibility changed.
899 virtual void onLayerVisibilityChanged(OdTrVisLayerId /*layerId*/, bool /*bVisibility*/) { }
900 // Called when exist layer fading changed.
901 virtual void onLayerFadingChanged(OdTrVisLayerId /*layerId*/, bool /*bFade*/) { }
902 // Called when layer viewport-dependent properties changed.
903 virtual void onLayerVpDepPropsOverride(OdTrVisLayerId /*layerId*/, OdTrVisViewportId /*viewportId*/, bool /*bOverride*/,
904 const OdTrVisLayerProps & /*pProps*/ = OdTrVisLayerProps()) { }
905
906 // Extension objects
907
908 // Called when new extension object added.
909 virtual void onExtensionObjectAdded(OdTrVisExtensionId /*extId*/, const OdTrVisExtensionObject* /*pObj*/) { }
910 // Called when exist extension object deleted.
912 // Called to send special extension object specific data.
913 virtual void onExtensionObjectSpecificData(OdTrVisExtensionId /*extId*/, OdUInt32 /*nDataId*/, const OdTrVisPropertyDef& /*propDef*/) { }
914 // Called to change extension object visibility.
915 virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId /*extId*/, bool /*bVisibility*/) { }
916
917 // Blocks
918
919 // Called when new block added.
920 virtual void onBlockAdded(OdTrVisBlockId /*blockId*/, const OdTrVisDisplayId * /*pList*/, OdUInt32 /*nEntries*/) { }
921 // Called when block display list changed.
922 virtual void onBlockModified(OdTrVisBlockId /*blockId*/, OdUInt32 /*nInvalidFrom*/, OdUInt32 /*nInvalidLen */ ,
923 const OdTrVisDisplayId * /*pValidFrom*/, OdUInt32 /*nValidLen*/) { }
924 // Called when exist block deleted.
925 virtual void onBlockDeleted(OdTrVisBlockId /*blockId*/) { }
926
927
928 // Groups
929
930 // Called when new group added.
931 virtual void onGroupAdded(OdTrVisGroupId /*groupId*/) { }
932 // Called when exist group deleted.
933 virtual void onGroupDeleted(OdTrVisGroupId /*groupId*/) { }
934 // Called to attach metafiles to group.
935 virtual void onGroupMetafilesAttached(OdTrVisGroupId /*groupId*/, const OdTrVisMetafileId * /*pMetafilesList*/, OdUInt32 /*nMetafiles*/) { }
936 // Called to detach metafiles from group (if no metafiles specified - clear entire list of groupped metafiles).
937 virtual void onGroupMetafilesDetached(OdTrVisGroupId /*groupId*/, const OdTrVisMetafileId * /*pMetafilesList*/, OdUInt32 /*nMetafiles*/) { }
938 // Called to delete all groupped metafiles from graphics scene.
939 //virtual void onGroupMetafilesDeleted(OdTrVisGroupId /*groupId*/) { }
940 // Called to change visibility state for all groupped metafiles.
941 virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId /*groupId*/, bool /*bVisibility*/) { }
942 // Called to change highlighting state for all groupped metafiles.
943 virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId /*groupId*/, bool /*bHighlight*/) { }
944 // Called to change fading state for all groupped metafiles.
945 virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId /*groupId*/, bool /*bFade*/) { }
946
947 // Properties
948
949 // Metafile-related properties.
950 // Called to attach property to metafile.
951 virtual void onMetafilePropertyAttached(OdTrVisMetafileId /*metafileId*/, const OdTrVisPropertyDef & /*propDef*/) { }
952 // Called to detach property from metafile.
954 // Group-related properties.
955 // Called to attach property to group.
956 virtual void onGroupPropertyAttached(OdTrVisGroupId /*groupId*/, const OdTrVisPropertyDef & /*propDef*/) { }
957 // Called to detach property from group.
959 // Layer-related properties.
960 // Called to attach property to layer.
961 virtual void onLayerPropertyAttached(OdTrVisLayerId /*layerId*/, const OdTrVisPropertyDef & /*propDef*/) { }
962 // Called to detach property from layer.
964 // VisualStyle-related properties.
965 // Called to attach property to visual style.
966 virtual void onVisualStylePropertyAttached(OdTrVisVisualStyleId /*visualStyleId*/, const OdTrVisPropertyDef & /*propDef*/) { }
967 // Called to detach property from visual style.
969 // Material-related properties.
970 // Called to attach property to material.
971 virtual void onMaterialPropertyAttached(OdTrVisMaterialId /*materialId*/, const OdTrVisPropertyDef & /*propDef*/) { }
972 // Called to detach property from material.
974 // Texture-related properties.
975 // Called to attach property to texture.
976 virtual void onTexturePropertyAttached(OdTrVisTextureId /*textureId*/, const OdTrVisPropertyDef & /*propDef*/) { }
977 // Called to detach property from texture.
979 // Light-related properties.
980 // Called to attach property to light source.
981 virtual void onLightPropertyAttached(OdTrVisLightId /*lightId*/, const OdTrVisPropertyDef & /*propDef*/) { }
982 // Called to detach property from light source.
984 // HlBranch-related properties.
985 // Called to attach property to state branch.
986 virtual void onStateBranchPropertyAttached(OdTrVisStateBranchId /*stateBranchId*/, const OdTrVisPropertyDef & /*propDef*/) { }
987 // Called to detach property from state branch.
989 // Viewport-related properties.
990 // Called to attach property to viewport.
991 virtual void onViewportPropertyAttached(OdTrVisViewportId /*viewportId*/, const OdTrVisPropertyDef & /*propDef*/) { }
992 // Called to detach property from viewport.
994 // Overlay-related properties.
995 // Called to attach property to overlay.
996 virtual void onOverlayPropertyAttached(OdTrVisOverlayId /*overlayId*/, const OdTrVisPropertyDef & /*propDef*/) { }
997 // Called to detach property from overlay.
999 // ExtensionObject-related properties.
1000 // Called to attach property to extension object.
1001 virtual void onExtensionObjectPropertyAttached(OdTrVisExtensionId /*extId*/, const OdTrVisPropertyDef & /*propDef*/) { }
1002 // Called to detach property from extension object.
1004 // Block-related properties.
1005 // Called to attach property to block.
1006 virtual void onBlockPropertyAttached(OdTrVisBlockId /*blockId*/, const OdTrVisPropertyDef & /*propDef*/) { }
1007 // Called to detach property from viewport.
1009};
1010
1015{
1016 protected:
1019 public:
1021 {
1024
1028 bool hasIdRegRedirection() const { return (m_pIdRegRedir != NULL); }
1029
1030 virtual void reg(DataType type, OdTrVisId id, OdDbStub *pPersId)
1031 {
1032 if (hasIdRegRedirection())
1033 getIdRegRedirection()->reg(type, id, pPersId);
1034 }
1035 virtual void reg(DataType type, OdTrVisId id, const OdGiDrawable *pTransId)
1036 {
1037 if (hasIdRegRedirection())
1038 getIdRegRedirection()->reg(type, id, pTransId);
1039 }
1040 virtual void reg(DataType type, OdTrVisId id, const OdTrVisUniqueID &uId)
1041 {
1042 if (hasIdRegRedirection())
1043 getIdRegRedirection()->reg(type, id, uId);
1044 }
1045 virtual void kill(DataType type, OdTrVisId id)
1046 {
1047 if (hasIdRegRedirection())
1049 }
1050 virtual OdTrVisUniqueID *get(DataType type, OdTrVisId id, bool bKill = false) const
1051 {
1052 if (hasIdRegRedirection())
1053 return getIdRegRedirection()->get(type, id, bKill);
1054 return NULL;
1055 }
1056 };
1057 public:
1059
1060 void setRedirection(OdTrVisRendition *pRedir) { m_pRedir = pRedir; }
1062 const OdTrVisRendition *getRedirection() const { return m_pRedir; }
1063 bool hasRedirection() const { return (m_pRedir != NULL); }
1064
1067 {
1069 throw OdError(eNullPtr);
1070 return m_pInformationalRedir;
1071 }
1073 {
1075 throw OdError(eNullPtr);
1076 return m_pInformationalRedir;
1077 }
1078 bool hasInformationalRedirection() const { return (m_pInformationalRedir != NULL); }
1079
1081 {
1082 setRedirection(pRedir);
1084 }
1086
1087 // High-level callbacks
1088
1089 // Called on starting vectorizer update.
1091 {
1094 }
1095 // Called on ending vectorizer update.
1096 virtual void onDeviceUpdateEnd(OdTrVisRenderClient *pDevice, bool bRender = true)
1097 {
1100 }
1101 // Checks that vectorizer update started.
1102 virtual bool isWithinDeviceUpdate() const
1103 {
1106 return false;
1107 }
1108
1109 // Called by underlying application to store frame changing information.
1110 virtual void onFrameSwitchInfo(OdUInt32 nInterval)
1111 {
1114 }
1115
1116 // Returns set of bit flags which indicate rendition capabilities/settings
1117 virtual OdUInt32 queryRenditionCaps(OdUInt32 requestFor = 0xFFFFFFFF) const
1118 {
1120 return getInformationalRedirection()->queryRenditionCaps(requestFor);
1121 return 0;
1122 }
1123
1124 // Partial update support for local renditions:
1125 // Called to check does specified viewport/overlay combination support partial update query.
1127 {
1129 return getInformationalRedirection()->onPartialUpdateCheckLimit(viewportId, overlayId);
1130 return false;
1131 }
1132 // Called to setup invalid rectangles and overlays on partial update.
1133 virtual void onPartialUpdateInvalidRects(OdTrVisOverlayId overlayId, const OdGsDCRectArray &invalidRects, bool bOverlayInvalid = false)
1134 {
1136 getInformationalRedirection()->onPartialUpdateInvalidRects(overlayId, invalidRects, bOverlayInvalid);
1137 }
1138 // Called on partial update query to set entire actual visibilities list.
1139 virtual void onPartialUpdateList(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
1140 {
1142 getInformationalRedirection()->onPartialUpdateList(viewportId, overlayId, pList, nEntries);
1143 }
1144 // Can be called by client side to check that rendition supports direct rendering ability.
1146 {
1148 getInformationalRedirection()->queryPartialUpdateDirectInvocation(viewportId, overlayId, pInvocationPtr);
1149 return false;
1150 }
1151 // Can be called by client side to setup direct invocation interface for partial update instead of partial update list usage.
1153 {
1156 }
1157
1158 // Query snapshot
1159 virtual void querySnapshot(OdUInt8 *pScanlines, long minX, long minY, long nWidth, long nHeight)
1160 {
1162 getInformationalRedirection()->querySnapshot(pScanlines, minX, minY, nWidth, nHeight);
1163 }
1164
1165 // Renders viewport to selection texture. Return top object id with (x, y) position in viewport.
1167 {
1169 getInformationalRedirection()->getSelectedObject(id, x, y, outIDs, outMarker);
1170 }
1171
1172 // Allocate new resource sharing provider compatible with rendition
1174 {
1178 }
1179
1180 // Multithread processing flags
1182 {
1185 return kMtSkip;
1186 }
1187
1188 // Returns Id registrator, or NULL if no registration supported
1190 {
1193 return NULL;
1194 }
1195
1196 // Returns true if metafile streams accessible directly, returns stream by Id
1197 virtual bool queryMetafileStream(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pDisplayId,
1198 OdUInt32 nPathLength, const OdTrVisMetafileContainer **pStream)
1199 {
1201 return getInformationalRedirection()->queryMetafileStream(viewportId, overlayId, pDisplayId, nPathLength, pStream);
1202 return false;
1203 }
1204 // Unlock metafile stream, queried by queryMetafileStream method
1206 {
1209 return false;
1210 }
1211
1212 // Returns block metafile list in case if it is accessible.
1214 {
1216 return getInformationalRedirection()->queryBlockMetafilesList(blockId, numEntries);
1217 return NULL;
1218 }
1219
1220 // Returns extension object by Id.
1222 {
1226 }
1227
1228 // Returns non-kTrVisNegativeId in case if vectorizer supports ProgramID's embedded into metafile stream
1230 OdTrVisGeomType geomType = OdTrVisGeomType_Default, OdUInt16 attrFlags = 0, OdUInt16 shadingFlags = 0) const
1231 {
1233 return getInformationalRedirection()->queryProgramId(mode, vsId, geomType, attrFlags, shadingFlags);
1234 return kTrVisNegativeId;
1235 }
1236
1237 // GsFiler support
1238 virtual bool saveRenditionState(OdGsFiler *pFiler) const
1239 {
1242 return false;
1243 }
1244 virtual bool loadRenditionState(OdGsFiler *pFiler, OdTrVisIdMap *pIdMap)
1245 {
1247 return getInformationalRedirection()->loadRenditionState(pFiler, pIdMap);
1248 return false;
1249 }
1250
1251 // Mid-level callbacks
1252
1253 // Client information
1254
1255 // Returns rendering client settings.
1256 virtual void obtainClientSettings(ClientSettings &clientSets)
1257 {
1260 }
1261
1262 // Surface
1263
1264 // Called when output render surface parameters changed.
1265 virtual void onSurfaceChanged(const OdTrVisSurfaceDef &pDef)
1266 {
1267 if (hasRedirection())
1269 }
1270 // Called when rendering surface needs to be invalidated forcibly.
1272 {
1273 if (hasRedirection())
1275 }
1276
1277 // Overlays
1278
1279 // Called when new overlay added into device.
1280 virtual void onOverlayAdded(OdTrVisOverlayId overlayId, const OdTrVisOverlayDef &pDef)
1281 {
1282 if (hasRedirection())
1283 getRedirection()->onOverlayAdded(overlayId, pDef);
1284 }
1285 // Called when exist overlay removed from device.
1286 virtual void onOverlayDeleted(OdTrVisOverlayId overlayId)
1287 {
1288 if (hasRedirection())
1289 getRedirection()->onOverlayDeleted(overlayId);
1290 }
1291 // Called when overlay visibility changed.
1292 virtual void onOverlayVisibilityChanged(OdTrVisOverlayId overlayId, bool bVisibility)
1293 {
1294 if (hasRedirection())
1295 getRedirection()->onOverlayVisibilityChanged(overlayId, bVisibility);
1296 }
1297 // Called when overlay rendering order changed.
1298 virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId overlayId, OdInt16 nRenderOrder)
1299 {
1300 if (hasRedirection())
1301 getRedirection()->onOverlayRenderOrderChanged(overlayId, nRenderOrder);
1302 }
1303
1304 // Viewports
1305
1306 // Called when new viewport added into device.
1307 virtual void onViewportAdded(OdTrVisViewportId viewportId, const OdTrVisViewportDef &pDef)
1308 {
1309 if (hasRedirection())
1310 getRedirection()->onViewportAdded(viewportId, pDef);
1311 }
1312 // Called when viewport inserted in list with some index.
1313 virtual void onViewportInserted(OdTrVisViewportId viewportId, int nIndex, const OdTrVisViewportDef &pDef)
1314 {
1315 if (hasRedirection())
1316 getRedirection()->onViewportInserted(viewportId, nIndex, pDef);
1317 }
1318 // Called when viewport removed from device.
1319 virtual void onViewportDeleted(OdTrVisViewportId viewportId)
1320 {
1321 if (hasRedirection())
1322 getRedirection()->onViewportDeleted(viewportId);
1323 }
1324 // Called when viewport visibility changed.
1325 virtual void onViewportVisibilityChanged(OdTrVisViewportId viewportId, bool bVisibility)
1326 {
1327 if (hasRedirection())
1328 getRedirection()->onViewportVisibilityChanged(viewportId, bVisibility);
1329 }
1330
1331 // Primary viewports configuration
1332
1333 // Called when viewport view parameters is modified.
1335 {
1336 if (hasRedirection())
1337 getRedirection()->onViewportViewParamsModified(viewportId, pDef);
1338 }
1339 // Called when viewport linestyle settings is modified.
1341 {
1342 if (hasRedirection())
1343 getRedirection()->onViewportLineStylesModified(viewportId, pDef);
1344 }
1345 // Called when viewport fading settings is modified.
1347 {
1348 if (hasRedirection())
1349 getRedirection()->onViewportFadingModified(viewportId, pDef);
1350 }
1351 // Called when viewport lineweight settings is modified.
1353 {
1354 if (hasRedirection())
1355 getRedirection()->onViewportLineweightsModified(viewportId, pDef);
1356 }
1357 // Called when viewport rendering mode is modified.
1359 {
1360 if (hasRedirection())
1361 getRedirection()->onViewportShadingModified(viewportId, pDef);
1362 }
1363 // Called when viewport clipping region is modified.
1365 bool bNrcClipModified = true, bool bBorderModified = true)
1366 {
1367 if (hasRedirection())
1368 getRedirection()->onViewportClipModified(viewportId, pDef, bNrcClipModified, bBorderModified);
1369 }
1370
1371 // Extended viewports configuration
1372
1373 // Called when background stream in viewport is changed.
1375 OdTrVisProgramId baseProgramId = kTrVisNegativeId)
1376 {
1377 if (hasRedirection())
1378 getRedirection()->onViewportBackgroundChanged(viewportId, pStream, baseProgramId);
1379 }
1380 // Called when viewport fog changed.
1381 virtual void onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef = OdTrVisFogDef())
1382 {
1383 if (hasRedirection())
1384 getRedirection()->onViewportFogChanged(viewportId, pDef);
1385 }
1386 // Called when viewport sectioning modified.
1388 {
1389 if (hasRedirection())
1390 getRedirection()->onViewportSectioningChanged(viewportId, pDef);
1391 }
1392 // Called when viewport anti-aliasing setting changed.
1393 virtual void onViewportAntiAliasingChanged(OdTrVisViewportId viewportId, OdUInt32 nAntiAliasing)
1394 {
1395 if (hasRedirection())
1396 getRedirection()->onViewportAntiAliasingChanged(viewportId, nAntiAliasing);
1397 }
1398
1399 // Called when viewport ssao setting changed.
1401 {
1402 if (hasRedirection())
1403 getRedirection()->onViewportSSAOChanged(viewportId, bEnabled);
1404 }
1405
1406 // Viewport default lights configuration
1407
1408 // Called when viewport ambient light setting modified.
1409 virtual void onViewportAmbientLightChanged(OdTrVisViewportId viewportId, const OdTrVisMaterialColor &ambientLight)
1410 {
1411 if (hasRedirection())
1412 getRedirection()->onViewportAmbientLightChanged(viewportId, ambientLight);
1413 }
1414 // Called when viewport default light setting modified.
1415 virtual void onViewportDefaultLightsChanged(OdTrVisViewportId viewportId, bool bDefaultLightsOn,
1416 const OdTrVisLightDef *pLightsList = NULL, OdUInt32 nLightsListEntries = 0)
1417 {
1418 if (hasRedirection())
1419 getRedirection()->onViewportDefaultLightsChanged(viewportId, bDefaultLightsOn, pLightsList, nLightsListEntries);
1420 }
1421
1422 // Viewport lights management
1423
1424 // Called when light source added into viewport light sources list.
1426 OdUInt32 nOverrides = 0, const OdTrVisLightDef &pOverrides = OdTrVisLightDef())
1427 {
1428 if (hasRedirection())
1429 getRedirection()->onViewportLightAttached(viewportId, lightId, nOverrides, pOverrides);
1430 }
1431 // Called when light source removed from viewport light sources list.
1433 {
1434 if (hasRedirection())
1435 getRedirection()->onViewportLightDetached(viewportId, lightId);
1436 }
1437
1438 // Per-overlay viewport overrides
1439
1440 // Called when viewport needs override view parameters for specific overlay.
1441 virtual void onOverlayViewParamsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, bool bOverride,
1443 {
1444 if (hasRedirection())
1445 getRedirection()->onOverlayViewParamsOverride(viewportId, overlayId, bOverride, pDef);
1446 }
1447 // Called when viewport extents changed.
1448 virtual void onOverlayExtentsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisExtentsDef &pDef)
1449 {
1450 if (hasRedirection())
1451 getRedirection()->onOverlayExtentsOverride(viewportId, overlayId, pDef);
1452 }
1453
1454 // Viewports ordering lists
1455
1456 // Called when order of metafiles in viewport is changed.
1457 virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
1458 {
1459 if (hasRedirection())
1460 getRedirection()->onMetafileOrderChanged(viewportId, overlayId, pList, nEntries);
1461 }
1462 // Called when order of metafiles in viewport is changed (for obtain modified part of list by renderer).
1463 virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen,
1464 const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)
1465 {
1466 if (hasRedirection())
1467 getRedirection()->onMetafileOrderChanged(viewportId, overlayId, nInvalidFrom, nInvalidLen, pValidFrom, nValidLen);
1468 }
1469 // Called when order of metafiles can be inherit from other source.
1470 virtual void onMetafileOrderInheritance( OdTrVisViewportId viewportId1, OdTrVisOverlayId overlayId1, OdTrVisViewportId viewportId2 )
1471 {
1472 if( hasRedirection() )
1473 getRedirection()->onMetafileOrderInheritance( viewportId1, overlayId1, viewportId2 );
1474 }
1475
1476 // Metafiles
1477
1478 // Called when new metafile added (returns visualId, equal to metafileId by default).
1480 {
1481 if (hasRedirection())
1482 return getRedirection()->onMetafileAdded(metafileId, pDef);
1483 return metafileId;
1484 }
1485 // Called when exist metafile deleted.
1486 virtual void onMetafileDeleted(OdTrVisMetafileId metafileId)
1487 {
1488 if (hasRedirection())
1489 getRedirection()->onMetafileDeleted(metafileId);
1490 }
1491 // Called when exist metafile changed.
1492 //virtual void onMetafileModified(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef &pDef)
1493 //{
1494 // if (hasRedirection())
1495 // getRedirection()->onMetafileModified(metafileId, pDef);
1496 //}
1497 // Called when exist metafile visibility changed.
1498 virtual void onMetafileVisibilityChanged(OdTrVisMetafileId metafileId, bool bVisibility)
1499 {
1500 if (hasRedirection())
1501 getRedirection()->onMetafileVisibilityChanged(metafileId, bVisibility);
1502 }
1503 // Called when exist metafile highlighting changed.
1504 virtual void onMetafileHighlightingChanged(OdTrVisMetafileId metafileId, bool bHighlight)
1505 {
1506 if (hasRedirection())
1507 getRedirection()->onMetafileHighlightingChanged(metafileId, bHighlight);
1508 }
1509 // Called when exist metafile fading changed.
1510 virtual void onMetafileFadingChanged(OdTrVisMetafileId metafileId, bool bFade)
1511 {
1512 if (hasRedirection())
1513 getRedirection()->onMetafileFadingChanged(metafileId, bFade);
1514 }
1515
1516 // Lights
1517
1518 // Called when new light source added.
1519 virtual void onLightAdded(OdTrVisLightId lightId, const OdTrVisLightDef &pDef)
1520 {
1521 if (hasRedirection())
1522 getRedirection()->onLightAdded(lightId, pDef);
1523 }
1524 // Called when exist light source modified.
1525 virtual void onLightModified(OdTrVisLightId lightId, OdUInt32 nKindOfMod, const OdTrVisLightDef &pDef)
1526 {
1527 if (hasRedirection())
1528 getRedirection()->onLightModified(lightId, nKindOfMod, pDef);
1529 }
1530 // Called when exist light source deleted.
1531 virtual void onLightDeleted(OdTrVisLightId lightId)
1532 {
1533 if (hasRedirection())
1534 getRedirection()->onLightDeleted(lightId);
1535 }
1536
1537 // State branches (highlighting, hide)
1538
1539 // Called when new state branch added.
1540 virtual void onStateBranchAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef)
1541 {
1542 if (hasRedirection())
1543 getRedirection()->onStateBranchAdded(stateBranchId, pDef);
1544 }
1545 // Called when exist state branch modified.
1547 bool bChildsModified, bool bMarkersModified)
1548 {
1549 if (hasRedirection())
1550 getRedirection()->onStateBranchModified(stateBranchId, pDef, bChildsModified, bMarkersModified);
1551 }
1552 // Called when exist state branch deleted.
1553 virtual void onStateBranchDeleted(OdTrVisStateBranchId stateBranchId)
1554 {
1555 if (hasRedirection())
1556 getRedirection()->onStateBranchDeleted(stateBranchId);
1557 }
1558
1559 // Textures
1560
1561 // Called when new texture added.
1562 virtual void onTextureAdded(OdTrVisTextureId textureId, const OdTrVisTextureDef &pDef)
1563 {
1564 if (hasRedirection())
1565 getRedirection()->onTextureAdded(textureId, pDef);
1566 }
1567 // Called when exist texture deleted.
1568 virtual void onTextureDeleted(OdTrVisTextureId textureId)
1569 {
1570 if (hasRedirection())
1571 getRedirection()->onTextureDeleted(textureId);
1572 }
1573
1574 // Materials
1575
1576 // Called when new material added.
1577 virtual void onMaterialAdded(OdTrVisMaterialId materialId, const OdTrVisMaterialDef &pDef)
1578 {
1579 if (hasRedirection())
1580 getRedirection()->onMaterialAdded(materialId, pDef);
1581 }
1582 // Called when exist material deleted.
1583 virtual void onMaterialDeleted(OdTrVisMaterialId materialId)
1584 {
1585 if (hasRedirection())
1586 getRedirection()->onMaterialDeleted(materialId);
1587 }
1588
1589 // Visual Styles
1590
1591 // Called when new visual style added.
1592 virtual void onVisualStyleAdded(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)
1593 {
1594 if (hasRedirection())
1595 getRedirection()->onVisualStyleAdded(visualStyleId, pDef);
1596 }
1597 // Called when exist visual style modified.
1598 virtual void onVisualStyleModified(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)
1599 {
1600 if (hasRedirection())
1601 getRedirection()->onVisualStyleModified(visualStyleId, pDef);
1602 }
1603 // Called when exist visual style deleted.
1604 virtual void onVisualStyleDeleted(OdTrVisVisualStyleId visualStyleId)
1605 {
1606 if (hasRedirection())
1607 getRedirection()->onVisualStyleDeleted(visualStyleId);
1608 }
1609
1610 // Layers
1611
1612 // Called when new layer added.
1613 virtual void onLayerAdded(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)
1614 {
1615 if (hasRedirection())
1616 getRedirection()->onLayerAdded(layerId, pDef);
1617 }
1618 // Called when exist layer modified.
1619 //virtual void onLayerModified(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)
1620 //{
1621 // if (hasRedirection())
1622 // getRedirection()->onLayerModified(layerId, pDef);
1623 //}
1624 // Called when exist layer deleted.
1625 virtual void onLayerDeleted(OdTrVisLayerId layerId)
1626 {
1627 if (hasRedirection())
1628 getRedirection()->onLayerDeleted(layerId);
1629 }
1630 // Called when exist layer visibility changed.
1631 virtual void onLayerVisibilityChanged(OdTrVisLayerId layerId, bool bVisibility)
1632 {
1633 if (hasRedirection())
1634 getRedirection()->onLayerVisibilityChanged(layerId, bVisibility);
1635 }
1636 // Called when exist layer fading changed.
1637 virtual void onLayerFadingChanged(OdTrVisLayerId layerId, bool bFade)
1638 {
1639 if (hasRedirection())
1640 getRedirection()->onLayerFadingChanged(layerId, bFade);
1641 }
1642 // Called when layer viewport-dependent properties changed.
1643 virtual void onLayerVpDepPropsOverride(OdTrVisLayerId layerId, OdTrVisViewportId viewportId, bool bOverride,
1644 const OdTrVisLayerProps &pProps = OdTrVisLayerProps())
1645 {
1646 if (hasRedirection())
1647 getRedirection()->onLayerVpDepPropsOverride(layerId, viewportId, bOverride, pProps);
1648 }
1649
1650 // Extension objects
1651
1652 // Called when new extension object added.
1654 {
1655 if (hasRedirection())
1656 getRedirection()->onExtensionObjectAdded(extId, pObj);
1657 }
1658 // Called when exist extension object deleted.
1660 {
1661 if (hasRedirection())
1663 }
1664 // Called to send special extension object specific data.
1666 {
1667 if (hasRedirection())
1668 getRedirection()->onExtensionObjectSpecificData(extId, nDataId, propDef);
1669 }
1670 // Called to change extension object visibility.
1671 virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId extId, bool bVisibility)
1672 {
1673 if (hasRedirection())
1675 }
1676
1677 // Blocks
1678
1679 // Called when new block added.
1680 virtual void onBlockAdded(OdTrVisBlockId blockId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
1681 {
1682 if (hasRedirection())
1683 getRedirection()->onBlockAdded(blockId, pList, nEntries);
1684 }
1685 // Called when block display list changed.
1686 virtual void onBlockModified(OdTrVisBlockId blockId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen,
1687 const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)
1688 {
1689 if (hasRedirection())
1690 getRedirection()->onBlockModified(blockId, nInvalidFrom, nInvalidLen, pValidFrom, nValidLen);
1691 }
1692 // Called when exist block deleted.
1693 virtual void onBlockDeleted(OdTrVisBlockId blockId)
1694 {
1695 if (hasRedirection())
1696 getRedirection()->onBlockDeleted(blockId);
1697 }
1698
1699 // Groups
1700
1701 // Called when new group added.
1702 virtual void onGroupAdded(OdTrVisGroupId groupId)
1703 {
1704 if (hasRedirection())
1705 getRedirection()->onGroupAdded(groupId);
1706 }
1707 // Called when exist group deleted.
1708 virtual void onGroupDeleted(OdTrVisGroupId groupId)
1709 {
1710 if (hasRedirection())
1711 getRedirection()->onGroupDeleted(groupId);
1712 }
1713 // Called to attach metafiles to group.
1714 virtual void onGroupMetafilesAttached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)
1715 {
1716 if (hasRedirection())
1717 getRedirection()->onGroupMetafilesAttached(groupId, pMetafilesList, nMetafiles);
1718 }
1719 // Called to detach metafiles from group (if no metafiles specified - clear entire list of groupped metafiles).
1720 virtual void onGroupMetafilesDetached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)
1721 {
1722 if (hasRedirection())
1723 getRedirection()->onGroupMetafilesDetached(groupId, pMetafilesList, nMetafiles);
1724 }
1725 // Called to delete all groupped metafiles from graphics scene.
1726 //virtual void onGroupMetafilesDeleted(OdTrVisGroupId groupId)
1727 //{
1728 // if (hasRedirection())
1729 // getRedirection()->onGroupMetafilesDeleted(groupId);
1730 //}
1731 // Called to change visibility state for all groupped metafiles.
1732 virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId groupId, bool bVisibility)
1733 {
1734 if (hasRedirection())
1735 getRedirection()->onGroupMetafilesVisibilityChanged(groupId, bVisibility);
1736 }
1737 // Called to change highlighting state for all groupped metafiles.
1738 virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId groupId, bool bHighlight)
1739 {
1740 if (hasRedirection())
1742 }
1743 // Called to change fading state for all groupped metafiles.
1744 virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId groupId, bool bFade)
1745 {
1746 if (hasRedirection())
1748 }
1749
1750 // Properties
1751
1752 // Metafile-related properties.
1753 // Called to attach property to metafile.
1754 virtual void onMetafilePropertyAttached(OdTrVisMetafileId metafileId, const OdTrVisPropertyDef &propDef)
1755 {
1756 if (hasRedirection())
1757 getRedirection()->onMetafilePropertyAttached(metafileId, propDef);
1758 }
1759 // Called to detach property from metafile.
1761 {
1762 if (hasRedirection())
1763 getRedirection()->onMetafilePropertyDetached(metafileId, propType);
1764 }
1765 // Group-related properties.
1766 // Called to attach property to group.
1767 virtual void onGroupPropertyAttached(OdTrVisGroupId groupId, const OdTrVisPropertyDef &propDef)
1768 {
1769 if (hasRedirection())
1770 getRedirection()->onGroupPropertyAttached(groupId, propDef);
1771 }
1772 // Called to detach property from group.
1774 {
1775 if (hasRedirection())
1776 getRedirection()->onGroupPropertyDetached(groupId, propType);
1777 }
1778 // Layer-related properties.
1779 // Called to attach property to layer.
1780 virtual void onLayerPropertyAttached(OdTrVisLayerId layerId, const OdTrVisPropertyDef &propDef)
1781 {
1782 if (hasRedirection())
1783 getRedirection()->onLayerPropertyAttached(layerId, propDef);
1784 }
1785 // Called to detach property from layer.
1787 {
1788 if (hasRedirection())
1789 getRedirection()->onLayerPropertyDetached(layerId, propType);
1790 }
1791 // VisualStyle-related properties.
1792 // Called to attach property to visual style.
1794 {
1795 if (hasRedirection())
1796 getRedirection()->onVisualStylePropertyAttached(visualStyleId, propDef);
1797 }
1798 // Called to detach property from visual style.
1800 {
1801 if (hasRedirection())
1802 getRedirection()->onVisualStylePropertyDetached(visualStyleId, propType);
1803 }
1804 // Material-related properties.
1805 // Called to attach property to material.
1806 virtual void onMaterialPropertyAttached(OdTrVisMaterialId materialId, const OdTrVisPropertyDef &propDef)
1807 {
1808 if (hasRedirection())
1809 getRedirection()->onMaterialPropertyAttached(materialId, propDef);
1810 }
1811 // Called to detach property from material.
1813 {
1814 if (hasRedirection())
1815 getRedirection()->onMaterialPropertyDetached(materialId, propType);
1816 }
1817 // Texture-related properties.
1818 // Called to attach property to texture.
1819 virtual void onTexturePropertyAttached(OdTrVisTextureId textureId, const OdTrVisPropertyDef &propDef)
1820 {
1821 if (hasRedirection())
1822 getRedirection()->onTexturePropertyAttached(textureId, propDef);
1823 }
1824 // Called to detach property from texture.
1826 {
1827 if (hasRedirection())
1828 getRedirection()->onTexturePropertyDetached(textureId, propType);
1829 }
1830 // Light-related properties.
1831 // Called to attach property to light source.
1832 virtual void onLightPropertyAttached(OdTrVisLightId lightId, const OdTrVisPropertyDef &propDef)
1833 {
1834 if (hasRedirection())
1835 getRedirection()->onLightPropertyAttached(lightId, propDef);
1836 }
1837 // Called to detach property from light source.
1839 {
1840 if (hasRedirection())
1841 getRedirection()->onLightPropertyDetached(lightId, propType);
1842 }
1843 // StateBranch-related properties.
1844 // Called to attach property to state branch.
1846 {
1847 if (hasRedirection())
1848 getRedirection()->onStateBranchPropertyAttached(stateBranchId, propDef);
1849 }
1850 // Called to detach property from state branch.
1852 {
1853 if (hasRedirection())
1854 getRedirection()->onStateBranchPropertyDetached(stateBranchId, propType);
1855 }
1856 // Viewport-related properties.
1857 // Called to attach property to viewport.
1858 virtual void onViewportPropertyAttached(OdTrVisViewportId viewportId, const OdTrVisPropertyDef &propDef)
1859 {
1860 if (hasRedirection())
1861 getRedirection()->onViewportPropertyAttached(viewportId, propDef);
1862 }
1863 // Called to detach property from viewport.
1865 {
1866 if (hasRedirection())
1867 getRedirection()->onViewportPropertyDetached(viewportId, propType);
1868 }
1869 // Overlay-related properties.
1870 // Called to attach property to overlay.
1871 virtual void onOverlayPropertyAttached(OdTrVisOverlayId overlayId, const OdTrVisPropertyDef &propDef)
1872 {
1873 if (hasRedirection())
1874 getRedirection()->onOverlayPropertyAttached(overlayId, propDef);
1875 }
1876 // Called to detach property from overlay.
1878 {
1879 if (hasRedirection())
1880 getRedirection()->onOverlayPropertyDetached(overlayId, propType);
1881 }
1882 // ExtensionObject-related properties.
1883 // Called to attach property to extension object.
1885 {
1886 if (hasRedirection())
1888 }
1889 // Called to detach property from extension object.
1891 {
1892 if (hasRedirection())
1894 }
1895 // Block-related properties.
1896 // Called to attach property to block.
1897 virtual void onBlockPropertyAttached(OdTrVisBlockId blockId, const OdTrVisPropertyDef &propDef)
1898 {
1899 if (hasRedirection())
1900 getRedirection()->onBlockPropertyAttached(blockId, propDef);
1901 }
1902 // Called to detach property from viewport.
1904 {
1905 if (hasRedirection())
1906 getRedirection()->onBlockPropertyDetached(blockId, propType);
1907 }
1908};
1909
1914{
1915 protected:
1919 public:
1921 bool bReentrant = true, bool bRender = true)
1922 : m_pRendition(pRendition), m_pRenderClient(pDevice), m_bRender(bRender)
1923 { if (pRendition)
1924 { if (pRendition->isWithinDeviceUpdate())
1925 { if (!bReentrant)
1926 throw OdError(eAlreadyActive);
1927 m_pRendition = NULL;
1928 } else
1929 pRendition->onDeviceUpdateBegin(pDevice);
1930 }
1931 }
1932 bool isReentered() const { return m_pRendition == NULL; }
1934 { if (m_pRendition)
1936 }
1937};
1938
1939#include "TD_PackPop.h"
1940
1941#endif // ODTRVISRENDITION
false
Definition: DimVarDefs.h:165
unsigned int OdUInt32
short OdInt16
unsigned short OdUInt16
unsigned char OdUInt8
#define ODRX_OVERRIDE
#define SETBIT(flags, bit, value)
Definition: OdaDefs.h:516
#define GETBIT(flags, bit)
Definition: OdaDefs.h:517
const OdTrVisId kTrVisNegativeId
Definition: TrVisDefs.h:128
OdSmartPtr< OdTrVisExtensionObject > OdTrVisExtensionObjectPtr
OdTrVisGeomType
@ OdTrVisGeomType_Default
OdSmartPtr< OdTrVisRendition > OdTrVisRenditionPtr
OdSmartPtr< OdTrVisSharingProviderClient > OdTrVisSharingProviderClientPtr
RenderMode
Definition: Gs.h:148
virtual void onStateBranchModified(OdTrVisStateBranchId, const OdTrVisStateBranchDef &, bool, bool)
virtual void onTexturePropertyDetached(OdTrVisTextureId, OdTrVisPropertyDef::PropertyType)
virtual void onVisualStylePropertyAttached(OdTrVisVisualStyleId, const OdTrVisPropertyDef &)
virtual void onPartialUpdateDirectInvocation(const OdTrVisDirectRenderPartialUpdateInvocation *, OdTrVisRenderDataDirectAccessor *)
virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId, bool)
virtual void onLightPropertyDetached(OdTrVisLightId, OdTrVisPropertyDef::PropertyType)
virtual void onViewportLightDetached(OdTrVisViewportId, OdTrVisLightId)
virtual void onViewportDeleted(OdTrVisViewportId)
virtual void onMetafilePropertyDetached(OdTrVisMetafileId, OdTrVisPropertyDef::PropertyType)
virtual void onBlockPropertyAttached(OdTrVisBlockId, const OdTrVisPropertyDef &)
virtual void onViewportClipModified(OdTrVisViewportId, const OdTrVisViewportClipDef &, bool=true, bool=true)
virtual void onOverlayExtentsOverride(OdTrVisViewportId, OdTrVisOverlayId, const OdTrVisExtentsDef &)
virtual void onMetafileVisibilityChanged(OdTrVisMetafileId, bool)
virtual void onVisualStyleModified(OdTrVisVisualStyleId, const OdTrVisVisualStyle &)
virtual void onViewportAdded(OdTrVisViewportId, const OdTrVisViewportDef &)
virtual void onTextureAdded(OdTrVisTextureId, const OdTrVisTextureDef &)
virtual void onBlockPropertyDetached(OdTrVisBlockId, OdTrVisPropertyDef::PropertyType)
virtual bool unlockMetafileStream(const OdTrVisMetafileContainer *)
virtual void onViewportLightAttached(OdTrVisViewportId, OdTrVisLightId, OdUInt32=0, const OdTrVisLightDef &=OdTrVisLightDef())
virtual void onLightPropertyAttached(OdTrVisLightId, const OdTrVisPropertyDef &)
virtual void onViewportLineStylesModified(OdTrVisViewportId, const OdTrVisViewportLineStyleDef &)
virtual MtHandlerType mtDataTypeProcessing(DataType &) const
virtual bool queryPartialUpdateDirectInvocation(OdTrVisViewportId, OdTrVisOverlayId, OdTrVisDirectRenderPartialUpdateInvocationPtr &)
virtual void onMetafileOrderChanged(OdTrVisViewportId, OdTrVisOverlayId, const OdTrVisDisplayId *, OdUInt32)
virtual OdTrVisDisplayId onMetafileAdded(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef &)
virtual void onExtensionObjectDeleted(OdTrVisExtensionId)
virtual void onExtensionObjectSpecificData(OdTrVisExtensionId, OdUInt32, const OdTrVisPropertyDef &)
virtual void onMaterialDeleted(OdTrVisMaterialId)
virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId, bool)
virtual void onLayerVisibilityChanged(OdTrVisLayerId, bool)
virtual void onOverlayPropertyDetached(OdTrVisOverlayId, OdTrVisPropertyDef::PropertyType)
virtual void onViewportViewParamsModified(OdTrVisViewportId, const OdTrVisViewParamsDef &)
virtual void onStateBranchPropertyAttached(OdTrVisStateBranchId, const OdTrVisPropertyDef &)
virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId, bool)
virtual void onVisualStyleDeleted(OdTrVisVisualStyleId)
virtual void onLightAdded(OdTrVisLightId, const OdTrVisLightDef &)
virtual void onLayerPropertyAttached(OdTrVisLayerId, const OdTrVisPropertyDef &)
virtual void onViewportBackgroundChanged(OdTrVisViewportId, OdTrVisFlatMetafileContainerPtr, OdTrVisProgramId=kTrVisNegativeId)
virtual void onDeviceUpdateBegin(OdTrVisRenderClient *)
void onViewportSSAOChanged(OdTrVisViewportId viewportId, bool bEnabled) ODRX_OVERRIDE
virtual void onFrameSwitchInfo(OdUInt32)
virtual void onLayerDeleted(OdTrVisLayerId)
virtual void onOverlayViewParamsOverride(OdTrVisViewportId, OdTrVisOverlayId, bool, const OdTrVisViewParamsDef &=OdTrVisViewParamsDef())
virtual const OdTrVisDisplayId * queryBlockMetafilesList(OdTrVisBlockId, OdUInt32 &)
virtual void onViewportAmbientLightChanged(OdTrVisViewportId, const OdTrVisMaterialColor &)
virtual void onMaterialPropertyAttached(OdTrVisMaterialId, const OdTrVisPropertyDef &)
virtual void onLightModified(OdTrVisLightId, OdUInt32, const OdTrVisLightDef &)
virtual void onOverlayPropertyAttached(OdTrVisOverlayId, const OdTrVisPropertyDef &)
virtual void onGroupPropertyDetached(OdTrVisGroupId, OdTrVisPropertyDef::PropertyType)
virtual void onDeviceUpdateEnd(OdTrVisRenderClient *, bool=true)
virtual void onBlockModified(OdTrVisBlockId, OdUInt32, OdUInt32, const OdTrVisDisplayId *, OdUInt32)
virtual void onViewportSectioningChanged(OdTrVisViewportId, const OdTrVisSectionDef &=OdTrVisSectionDef())
virtual void onMetafileHighlightingChanged(OdTrVisMetafileId, bool)
virtual void onViewportAntiAliasingChanged(OdTrVisViewportId, OdUInt32)
virtual IdRegistrator * idRegistrator() const
virtual void onGroupDeleted(OdTrVisGroupId)
virtual OdTrVisProgramId queryProgramId(OdGsView::RenderMode, OdTrVisVisualStyleId=kTrVisNegativeId, OdTrVisGeomType=OdTrVisGeomType_Default, OdUInt16=0, OdUInt16=0) const
virtual void onSurfaceInvalidated()
virtual void onOverlayDeleted(OdTrVisOverlayId)
virtual void onGroupPropertyAttached(OdTrVisGroupId, const OdTrVisPropertyDef &)
virtual void onOverlayAdded(OdTrVisOverlayId, const OdTrVisOverlayDef &)
virtual void getSelectedObject(OdTrVisViewportId, OdUInt32, OdUInt32, OdArray< OdTrVisId > &, OdTrVisGsMarker *=NULL)
virtual void onVisualStyleAdded(OdTrVisVisualStyleId, const OdTrVisVisualStyle &)
virtual void onOverlayVisibilityChanged(OdTrVisOverlayId, bool)
virtual void querySnapshot(OdUInt8 *, long, long, long, long)
virtual void onPartialUpdateList(OdTrVisViewportId, OdTrVisOverlayId, const OdTrVisDisplayId *, OdUInt32)
virtual OdTrVisExtensionObjectPtr queryExtensionObject(OdTrVisExtensionId)
virtual void onStateBranchDeleted(OdTrVisStateBranchId)
virtual void onLayerPropertyDetached(OdTrVisLayerId, OdTrVisPropertyDef::PropertyType)
virtual void obtainClientSettings(ClientSettings &)
virtual void onGroupMetafilesDetached(OdTrVisGroupId, const OdTrVisMetafileId *, OdUInt32)
virtual void onBlockDeleted(OdTrVisBlockId)
virtual void onGroupMetafilesAttached(OdTrVisGroupId, const OdTrVisMetafileId *, OdUInt32)
virtual void onExtensionObjectPropertyAttached(OdTrVisExtensionId, const OdTrVisPropertyDef &)
virtual void onBlockAdded(OdTrVisBlockId, const OdTrVisDisplayId *, OdUInt32)
virtual void onStateBranchPropertyDetached(OdTrVisStateBranchId, OdTrVisPropertyDef::PropertyType)
virtual void onMetafileOrderChanged(OdTrVisViewportId, OdTrVisOverlayId, OdUInt32, OdUInt32, const OdTrVisDisplayId *, OdUInt32)
virtual void onMetafilePropertyAttached(OdTrVisMetafileId, const OdTrVisPropertyDef &)
virtual void onGroupAdded(OdTrVisGroupId)
virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId, bool)
virtual void onLayerAdded(OdTrVisLayerId, const OdTrVisLayerDef &)
virtual void onStateBranchAdded(OdTrVisStateBranchId, const OdTrVisStateBranchDef &)
virtual void onMetafileFadingChanged(OdTrVisMetafileId, bool)
virtual void onTexturePropertyAttached(OdTrVisTextureId, const OdTrVisPropertyDef &)
virtual void onViewportFogChanged(OdTrVisViewportId, const OdTrVisFogDef &=OdTrVisFogDef())
virtual void onViewportPropertyAttached(OdTrVisViewportId, const OdTrVisPropertyDef &)
virtual void onTextureDeleted(OdTrVisTextureId)
virtual bool onPartialUpdateCheckLimit(OdTrVisViewportId, OdTrVisOverlayId)
virtual void onViewportDefaultLightsChanged(OdTrVisViewportId, bool, const OdTrVisLightDef *=NULL, OdUInt32=0)
virtual void onLayerFadingChanged(OdTrVisLayerId, bool)
virtual OdUInt32 queryRenditionCaps(OdUInt32=0xFFFFFFFF) const
virtual void onMaterialPropertyDetached(OdTrVisMaterialId, OdTrVisPropertyDef::PropertyType)
virtual void onViewportVisibilityChanged(OdTrVisViewportId, bool)
virtual void onViewportShadingModified(OdTrVisViewportId, const OdTrVisViewportShadingDef &)
virtual void onViewportPropertyDetached(OdTrVisViewportId, OdTrVisPropertyDef::PropertyType)
virtual void onViewportLineweightsModified(OdTrVisViewportId, const OdTrVisViewportLineweightsDef &)
virtual void onPartialUpdateInvalidRects(OdTrVisOverlayId, const OdGsDCRectArray &, bool=false)
virtual bool loadRenditionState(OdGsFiler *, OdTrVisIdMap *)
virtual void onLightDeleted(OdTrVisLightId)
virtual void onExtensionObjectPropertyDetached(OdTrVisExtensionId, OdTrVisPropertyDef::PropertyType)
virtual void onLayerVpDepPropsOverride(OdTrVisLayerId, OdTrVisViewportId, bool, const OdTrVisLayerProps &=OdTrVisLayerProps())
virtual void onExtensionObjectAdded(OdTrVisExtensionId, const OdTrVisExtensionObject *)
virtual void onSurfaceChanged(const OdTrVisSurfaceDef &)
virtual void onViewportInserted(OdTrVisViewportId, int, const OdTrVisViewportDef &)
virtual void onMetafileDeleted(OdTrVisMetafileId)
virtual bool saveRenditionState(OdGsFiler *) const
virtual bool isWithinDeviceUpdate() const
virtual void onMaterialAdded(OdTrVisMaterialId, const OdTrVisMaterialDef &)
virtual bool queryMetafileStream(OdTrVisViewportId, OdTrVisOverlayId, const OdTrVisDisplayId *, OdUInt32, const OdTrVisMetafileContainer **)
virtual OdTrVisSharingProviderClientPtr createSharingProvider()
OdTrVisRenditionDef::IdRegistratorStub m_IdRegistratorStub
virtual void onViewportFadingModified(OdTrVisViewportId, const OdTrVisViewportFadingDef &)
virtual void onVisualStylePropertyDetached(OdTrVisVisualStyleId, OdTrVisPropertyDef::PropertyType)
virtual void onMetafileOrderInheritance(OdTrVisViewportId, OdTrVisOverlayId, OdTrVisViewportId)
virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId, OdInt16)
OdTrVisRenditionDeviceUpdateScopes(OdTrVisRendition *pRendition, OdTrVisRenderClient *pDevice, bool bReentrant=true, bool bRender=true)
OdTrVisRenderClient * m_pRenderClient
virtual void onMaterialAdded(OdTrVisMaterialId materialId, const OdTrVisMaterialDef &pDef)=0
virtual void onLayerDeleted(OdTrVisLayerId layerId)=0
virtual void onMetafileHighlightingChanged(OdTrVisMetafileId metafileId, bool bHighlight)=0
virtual void onVisualStyleDeleted(OdTrVisVisualStyleId visualStyleId)=0
virtual void onGroupMetafilesAttached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)=0
virtual void onViewportVisibilityChanged(OdTrVisViewportId viewportId, bool bVisibility)=0
virtual void onDeviceUpdateBegin(OdTrVisRenderClient *pDevice)=0
virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId extId, bool bVisibility)=0
virtual void onOverlayExtentsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisExtentsDef &pDef)=0
virtual void onVisualStylePropertyAttached(OdTrVisVisualStyleId visualStyleId, const OdTrVisPropertyDef &propDef)=0
virtual void onDeviceUpdateEnd(OdTrVisRenderClient *pDevice, bool bRender=true)=0
virtual void onExtensionObjectDeleted(OdTrVisExtensionId extId)=0
ODRX_USING_HEAP_OPERATORS(OdRxObject)
virtual void querySnapshot(OdUInt8 *pScanlines, long minX, long minY, long nWidth, long nHeight)=0
virtual void onOverlayAdded(OdTrVisOverlayId overlayId, const OdTrVisOverlayDef &pDef)=0
virtual void onViewportLightAttached(OdTrVisViewportId viewportId, OdTrVisLightId lightId, OdUInt32 nOverrides=0, const OdTrVisLightDef &pOverrides=OdTrVisLightDef())=0
virtual void getSelectedObject(OdTrVisViewportId id, OdUInt32 x, OdUInt32 y, OdArray< OdTrVisId > &outIDs, OdTrVisGsMarker *outMarker=NULL)=0
static const double kDisplayMultiDrawOrderMarker
virtual void onLayerAdded(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)=0
virtual void onViewportSectioningChanged(OdTrVisViewportId viewportId, const OdTrVisSectionDef &pDef=OdTrVisSectionDef())=0
virtual void onLayerVisibilityChanged(OdTrVisLayerId layerId, bool bVisibility)=0
virtual void onStateBranchPropertyDetached(OdTrVisStateBranchId stateBranchId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onMaterialDeleted(OdTrVisMaterialId materialId)=0
virtual void onExtensionObjectSpecificData(OdTrVisExtensionId extId, OdUInt32 nDataId, const OdTrVisPropertyDef &propDef)=0
virtual IdRegistrator * idRegistrator() const =0
virtual void onVisualStyleAdded(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)=0
virtual void onLightDeleted(OdTrVisLightId lightId)=0
virtual bool loadRenditionState(OdGsFiler *pFiler, OdTrVisIdMap *pIdMap)=0
virtual void onStateBranchDeleted(OdTrVisStateBranchId stateBranchId)=0
virtual bool onPartialUpdateCheckLimit(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId)=0
virtual void onLayerPropertyDetached(OdTrVisLayerId layerId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onPartialUpdateList(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)=0
virtual void onOverlayViewParamsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, bool bOverride, const OdTrVisViewParamsDef &pDef=OdTrVisViewParamsDef())=0
virtual void onLayerVpDepPropsOverride(OdTrVisLayerId layerId, OdTrVisViewportId viewportId, bool bOverride, const OdTrVisLayerProps &pProps=OdTrVisLayerProps())=0
virtual OdUInt32 queryRenditionCaps(OdUInt32 requestFor=0xFFFFFFFF) const =0
virtual void onBlockPropertyDetached(OdTrVisBlockId blockId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onLightPropertyAttached(OdTrVisLightId lightId, const OdTrVisPropertyDef &propDef)=0
virtual void onStateBranchAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef)=0
virtual void onMetafileDeleted(OdTrVisMetafileId metafileId)=0
virtual void onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef=OdTrVisFogDef())=0
virtual void onExtensionObjectPropertyDetached(OdTrVisExtensionId extId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onLightModified(OdTrVisLightId lightId, OdUInt32 nKindOfMod, const OdTrVisLightDef &pDef)=0
virtual void onViewportSSAOChanged(OdTrVisViewportId viewportId, bool bEnabled)=0
virtual bool queryPartialUpdateDirectInvocation(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdTrVisDirectRenderPartialUpdateInvocationPtr &pInvocationPtr)=0
virtual void onViewportViewParamsModified(OdTrVisViewportId viewportId, const OdTrVisViewParamsDef &pDef)=0
virtual void onExtensionObjectAdded(OdTrVisExtensionId extId, const OdTrVisExtensionObject *pObj)=0
virtual void onMetafileOrderInheritance(OdTrVisViewportId viewportId1, OdTrVisOverlayId overlayId1, OdTrVisViewportId viewportId2)=0
bool isSupportSnapshotQueries() const
virtual void onLightPropertyDetached(OdTrVisLightId lightId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onViewportLightDetached(OdTrVisViewportId viewportId, OdTrVisLightId lightId)=0
virtual void onViewportDefaultLightsChanged(OdTrVisViewportId viewportId, bool bDefaultLightsOn, const OdTrVisLightDef *pLightsList=NULL, OdUInt32 nLightsListEntries=0)=0
bool updateClientDependentSectionOnly() const
virtual void onViewportLineStylesModified(OdTrVisViewportId viewportId, const OdTrVisViewportLineStyleDef &pDef)=0
virtual void onMetafileVisibilityChanged(OdTrVisMetafileId metafileId, bool bVisibility)=0
bool isSupportGPUSelection() const
virtual void onViewportPropertyAttached(OdTrVisViewportId viewportId, const OdTrVisPropertyDef &propDef)=0
virtual void onViewportBackgroundChanged(OdTrVisViewportId viewportId, OdTrVisFlatMetafileContainerPtr pStream, OdTrVisProgramId baseProgramId=kTrVisNegativeId)=0
virtual void onTextureDeleted(OdTrVisTextureId textureId)=0
virtual void onGroupMetafilesDetached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)=0
virtual void onOverlayPropertyAttached(OdTrVisOverlayId overlayId, const OdTrVisPropertyDef &propDef)=0
virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen, const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)=0
virtual void onOverlayPropertyDetached(OdTrVisOverlayId overlayId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void obtainClientSettings(ClientSettings &clientSets)=0
bool isSupportOverlayBuffers() const
virtual void onBlockDeleted(OdTrVisBlockId blockId)=0
virtual void onBlockPropertyAttached(OdTrVisBlockId blockId, const OdTrVisPropertyDef &propDef)=0
virtual void onViewportAntiAliasingChanged(OdTrVisViewportId viewportId, OdUInt32 nAntiAliasing)=0
virtual void onGroupDeleted(OdTrVisGroupId groupId)=0
bool isSupportCompositeMetafiles() const
virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId groupId, bool bFade)=0
virtual MtHandlerType mtDataTypeProcessing(DataType &type) const =0
virtual OdTrVisSharingProviderClientPtr createSharingProvider()=0
virtual void onStateBranchModified(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef, bool bChildsModified, bool bMarkersModified)=0
virtual void onMaterialPropertyAttached(OdTrVisMaterialId materialId, const OdTrVisPropertyDef &propDef)=0
virtual void onExtensionObjectPropertyAttached(OdTrVisExtensionId extId, const OdTrVisPropertyDef &propDef)=0
virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)=0
virtual void onTexturePropertyAttached(OdTrVisTextureId textureId, const OdTrVisPropertyDef &propDef)=0
virtual void onLayerPropertyAttached(OdTrVisLayerId layerId, const OdTrVisPropertyDef &propDef)=0
virtual void onVisualStylePropertyDetached(OdTrVisVisualStyleId visualStyleId, OdTrVisPropertyDef::PropertyType propType)=0
virtual bool isWithinDeviceUpdate() const =0
virtual void onViewportClipModified(OdTrVisViewportId viewportId, const OdTrVisViewportClipDef &pDef, bool bNrcClipModified=true, bool bBorderModified=true)=0
virtual bool unlockMetafileStream(const OdTrVisMetafileContainer *pStream)=0
virtual void onVisualStyleModified(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)=0
virtual void onViewportShadingModified(OdTrVisViewportId viewportId, const OdTrVisViewportShadingDef &pDef)=0
virtual void onPartialUpdateDirectInvocation(const OdTrVisDirectRenderPartialUpdateInvocation *pInvocation, OdTrVisRenderDataDirectAccessor *pAccessor)=0
bool isSupportGsStateSaving() const
virtual OdTrVisProgramId queryProgramId(OdGsView::RenderMode mode, OdTrVisVisualStyleId vsId=kTrVisNegativeId, OdTrVisGeomType geomType=OdTrVisGeomType_Default, OdUInt16 attrFlags=0, OdUInt16 shadingFlags=0) const =0
virtual OdTrVisDisplayId onMetafileAdded(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef &pDef)=0
virtual void onViewportLineweightsModified(OdTrVisViewportId viewportId, const OdTrVisViewportLineweightsDef &pDef)=0
virtual bool saveRenditionState(OdGsFiler *pFiler) const =0
virtual OdTrVisExtensionObjectPtr queryExtensionObject(OdTrVisExtensionId extId)=0
virtual void onFrameSwitchInfo(OdUInt32 nInterval)=0
virtual void onGroupPropertyAttached(OdTrVisGroupId groupId, const OdTrVisPropertyDef &propDef)=0
virtual void onOverlayVisibilityChanged(OdTrVisOverlayId overlayId, bool bVisibility)=0
virtual void onBlockAdded(OdTrVisBlockId blockId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)=0
bool updateShareableSectionOnly() const
virtual void onMetafilePropertyDetached(OdTrVisMetafileId metafileId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onViewportInserted(OdTrVisViewportId viewportId, int nIndex, const OdTrVisViewportDef &pDef)=0
virtual void onLightAdded(OdTrVisLightId lightId, const OdTrVisLightDef &pDef)=0
virtual void onViewportFadingModified(OdTrVisViewportId viewportId, const OdTrVisViewportFadingDef &pDef)=0
virtual void onMaterialPropertyDetached(OdTrVisMaterialId materialId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onViewportDeleted(OdTrVisViewportId viewportId)=0
virtual void onSurfaceInvalidated()=0
virtual void onOverlayDeleted(OdTrVisOverlayId overlayId)=0
virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId overlayId, OdInt16 nRenderOrder)=0
virtual void onPartialUpdateInvalidRects(OdTrVisOverlayId overlayId, const OdGsDCRectArray &invalidRects, bool bOverlayInvalid=false)=0
virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId groupId, bool bHighlight)=0
virtual void onSurfaceChanged(const OdTrVisSurfaceDef &pDef)=0
virtual void onGroupAdded(OdTrVisGroupId groupId)=0
virtual void onMetafileFadingChanged(OdTrVisMetafileId metafileId, bool bFade)=0
virtual bool queryMetafileStream(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pDisplayId, OdUInt32 nPathLength, const OdTrVisMetafileContainer **pStream)=0
virtual void onTextureAdded(OdTrVisTextureId textureId, const OdTrVisTextureDef &pDef)=0
virtual void onTexturePropertyDetached(OdTrVisTextureId textureId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onMetafilePropertyAttached(OdTrVisMetafileId metafileId, const OdTrVisPropertyDef &propDef)=0
virtual void onGroupPropertyDetached(OdTrVisGroupId groupId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onViewportAmbientLightChanged(OdTrVisViewportId viewportId, const OdTrVisMaterialColor &ambientLight)=0
bool isSupportVisualStyles() const
virtual void onViewportPropertyDetached(OdTrVisViewportId viewportId, OdTrVisPropertyDef::PropertyType propType)=0
virtual void onBlockModified(OdTrVisBlockId blockId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen, const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)=0
virtual const OdTrVisDisplayId * queryBlockMetafilesList(OdTrVisBlockId blockId, OdUInt32 &numEntries)=0
virtual void onLayerFadingChanged(OdTrVisLayerId layerId, bool bFade)=0
virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId groupId, bool bVisibility)=0
virtual void onStateBranchPropertyAttached(OdTrVisStateBranchId stateBranchId, const OdTrVisPropertyDef &propDef)=0
virtual void onViewportAdded(OdTrVisViewportId viewportId, const OdTrVisViewportDef &pDef)=0
bool isSupportPartialUpdate() const
virtual OdTrVisSharingProviderClientPtr createSharingProvider()
virtual void onViewportInserted(OdTrVisViewportId viewportId, int nIndex, const OdTrVisViewportDef &pDef)
virtual void onGroupPropertyAttached(OdTrVisGroupId groupId, const OdTrVisPropertyDef &propDef)
virtual void onStateBranchAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef)
virtual void onMetafileDeleted(OdTrVisMetafileId metafileId)
virtual void onSurfaceInvalidated()
const OdTrVisRendition * getRedirection() const
virtual void onLayerPropertyAttached(OdTrVisLayerId layerId, const OdTrVisPropertyDef &propDef)
OdTrVisRendition * getRedirection()
OdTrVisRendition * getInformationalRedirection()
virtual void onExtensionObjectPropertyDetached(OdTrVisExtensionId extId, OdTrVisPropertyDef::PropertyType propType)
virtual bool loadRenditionState(OdGsFiler *pFiler, OdTrVisIdMap *pIdMap)
virtual void onBlockAdded(OdTrVisBlockId blockId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
virtual void getSelectedObject(OdTrVisViewportId id, OdUInt32 x, OdUInt32 y, OdArray< OdTrVisId > &outIDs, OdTrVisGsMarker *outMarker=NULL)
virtual void onLayerFadingChanged(OdTrVisLayerId layerId, bool bFade)
virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen, const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)
virtual void onViewportLineweightsModified(OdTrVisViewportId viewportId, const OdTrVisViewportLineweightsDef &pDef)
virtual void onTexturePropertyAttached(OdTrVisTextureId textureId, const OdTrVisPropertyDef &propDef)
virtual void onViewportVisibilityChanged(OdTrVisViewportId viewportId, bool bVisibility)
bool hasRedirection() const
virtual void onViewportLineStylesModified(OdTrVisViewportId viewportId, const OdTrVisViewportLineStyleDef &pDef)
virtual void onMetafileHighlightingChanged(OdTrVisMetafileId metafileId, bool bHighlight)
virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId groupId, bool bHighlight)
virtual bool queryMetafileStream(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pDisplayId, OdUInt32 nPathLength, const OdTrVisMetafileContainer **pStream)
virtual void onViewportViewParamsModified(OdTrVisViewportId viewportId, const OdTrVisViewParamsDef &pDef)
virtual void onViewportShadingModified(OdTrVisViewportId viewportId, const OdTrVisViewportShadingDef &pDef)
virtual void onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef=OdTrVisFogDef())
virtual void onTextureAdded(OdTrVisTextureId textureId, const OdTrVisTextureDef &pDef)
virtual void onStateBranchPropertyDetached(OdTrVisStateBranchId stateBranchId, OdTrVisPropertyDef::PropertyType propType)
virtual void onViewportSectioningChanged(OdTrVisViewportId viewportId, const OdTrVisSectionDef &pDef=OdTrVisSectionDef())
virtual bool unlockMetafileStream(const OdTrVisMetafileContainer *pStream)
virtual void onBlockPropertyDetached(OdTrVisBlockId blockId, OdTrVisPropertyDef::PropertyType propType)
void setRedirection(OdTrVisRendition *pRedir)
virtual void onGroupMetafilesDetached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)
virtual void onVisualStyleDeleted(OdTrVisVisualStyleId visualStyleId)
virtual void onMaterialAdded(OdTrVisMaterialId materialId, const OdTrVisMaterialDef &pDef)
virtual void onViewportClipModified(OdTrVisViewportId viewportId, const OdTrVisViewportClipDef &pDef, bool bNrcClipModified=true, bool bBorderModified=true)
virtual void onViewportFadingModified(OdTrVisViewportId viewportId, const OdTrVisViewportFadingDef &pDef)
virtual bool queryPartialUpdateDirectInvocation(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdTrVisDirectRenderPartialUpdateInvocationPtr &pInvocationPtr)
virtual void onOverlayViewParamsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, bool bOverride, const OdTrVisViewParamsDef &pDef=OdTrVisViewParamsDef())
virtual void onTextureDeleted(OdTrVisTextureId textureId)
virtual void onGroupAdded(OdTrVisGroupId groupId)
virtual void onExtensionObjectAdded(OdTrVisExtensionId extId, const OdTrVisExtensionObject *pObj)
virtual void onExtensionObjectDeleted(OdTrVisExtensionId extId)
virtual void onLightAdded(OdTrVisLightId lightId, const OdTrVisLightDef &pDef)
virtual void onGroupMetafilesAttached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)
virtual void onViewportDeleted(OdTrVisViewportId viewportId)
virtual bool onPartialUpdateCheckLimit(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId)
virtual void onStateBranchPropertyAttached(OdTrVisStateBranchId stateBranchId, const OdTrVisPropertyDef &propDef)
virtual IdRegistrator * idRegistrator() const
virtual void onOverlayPropertyAttached(OdTrVisOverlayId overlayId, const OdTrVisPropertyDef &propDef)
virtual void onViewportLightDetached(OdTrVisViewportId viewportId, OdTrVisLightId lightId)
virtual void onOverlayPropertyDetached(OdTrVisOverlayId overlayId, OdTrVisPropertyDef::PropertyType propType)
virtual void onViewportPropertyDetached(OdTrVisViewportId viewportId, OdTrVisPropertyDef::PropertyType propType)
virtual void onOverlayExtentsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisExtentsDef &pDef)
void setRedirections(OdTrVisRendition *pRedir)
virtual void onLayerPropertyDetached(OdTrVisLayerId layerId, OdTrVisPropertyDef::PropertyType propType)
virtual void onViewportAntiAliasingChanged(OdTrVisViewportId viewportId, OdUInt32 nAntiAliasing)
virtual void onLightPropertyAttached(OdTrVisLightId lightId, const OdTrVisPropertyDef &propDef)
virtual void onMetafileOrderInheritance(OdTrVisViewportId viewportId1, OdTrVisOverlayId overlayId1, OdTrVisViewportId viewportId2)
virtual void onLayerDeleted(OdTrVisLayerId layerId)
virtual void onBlockPropertyAttached(OdTrVisBlockId blockId, const OdTrVisPropertyDef &propDef)
virtual void onMaterialPropertyDetached(OdTrVisMaterialId materialId, OdTrVisPropertyDef::PropertyType propType)
bool hasInformationalRedirection() const
virtual void onLightModified(OdTrVisLightId lightId, OdUInt32 nKindOfMod, const OdTrVisLightDef &pDef)
OdTrVisRendition * m_pInformationalRedir
virtual void onDeviceUpdateBegin(OdTrVisRenderClient *pDevice)
virtual void onPartialUpdateList(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
virtual void onViewportBackgroundChanged(OdTrVisViewportId viewportId, OdTrVisFlatMetafileContainerPtr pStream, OdTrVisProgramId baseProgramId=kTrVisNegativeId)
virtual void onOverlayAdded(OdTrVisOverlayId overlayId, const OdTrVisOverlayDef &pDef)
virtual void onViewportPropertyAttached(OdTrVisViewportId viewportId, const OdTrVisPropertyDef &propDef)
virtual void onStateBranchDeleted(OdTrVisStateBranchId stateBranchId)
virtual OdTrVisProgramId queryProgramId(OdGsView::RenderMode mode, OdTrVisVisualStyleId vsId=kTrVisNegativeId, OdTrVisGeomType geomType=OdTrVisGeomType_Default, OdUInt16 attrFlags=0, OdUInt16 shadingFlags=0) const
virtual void onPartialUpdateDirectInvocation(const OdTrVisDirectRenderPartialUpdateInvocation *pInvocation, OdTrVisRenderDataDirectAccessor *pAccessor)
virtual void onViewportAmbientLightChanged(OdTrVisViewportId viewportId, const OdTrVisMaterialColor &ambientLight)
virtual void onBlockDeleted(OdTrVisBlockId blockId)
virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId groupId, bool bVisibility)
virtual bool saveRenditionState(OdGsFiler *pFiler) const
void setInformationalRedirection(OdTrVisRendition *pRedir)
virtual void onTexturePropertyDetached(OdTrVisTextureId textureId, OdTrVisPropertyDef::PropertyType propType)
virtual void onVisualStylePropertyDetached(OdTrVisVisualStyleId visualStyleId, OdTrVisPropertyDef::PropertyType propType)
virtual void onViewportLightAttached(OdTrVisViewportId viewportId, OdTrVisLightId lightId, OdUInt32 nOverrides=0, const OdTrVisLightDef &pOverrides=OdTrVisLightDef())
virtual void onMaterialPropertyAttached(OdTrVisMaterialId materialId, const OdTrVisPropertyDef &propDef)
virtual void onMetafilePropertyAttached(OdTrVisMetafileId metafileId, const OdTrVisPropertyDef &propDef)
virtual void onFrameSwitchInfo(OdUInt32 nInterval)
virtual void onLightDeleted(OdTrVisLightId lightId)
virtual void onLayerVisibilityChanged(OdTrVisLayerId layerId, bool bVisibility)
virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId overlayId, OdInt16 nRenderOrder)
virtual void onLayerAdded(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)
virtual void onMetafileFadingChanged(OdTrVisMetafileId metafileId, bool bFade)
virtual void querySnapshot(OdUInt8 *pScanlines, long minX, long minY, long nWidth, long nHeight)
virtual void onSurfaceChanged(const OdTrVisSurfaceDef &pDef)
virtual const OdTrVisDisplayId * queryBlockMetafilesList(OdTrVisBlockId blockId, OdUInt32 &numEntries)
virtual void onViewportDefaultLightsChanged(OdTrVisViewportId viewportId, bool bDefaultLightsOn, const OdTrVisLightDef *pLightsList=NULL, OdUInt32 nLightsListEntries=0)
OdTrVisRendition * m_pRedir
virtual void onStateBranchModified(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef, bool bChildsModified, bool bMarkersModified)
virtual void onLightPropertyDetached(OdTrVisLightId lightId, OdTrVisPropertyDef::PropertyType propType)
virtual void onExtensionObjectPropertyAttached(OdTrVisExtensionId extId, const OdTrVisPropertyDef &propDef)
virtual void onVisualStyleAdded(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)
virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId extId, bool bVisibility)
void onViewportSSAOChanged(OdTrVisViewportId viewportId, bool bEnabled) ODRX_OVERRIDE
virtual void onLayerVpDepPropsOverride(OdTrVisLayerId layerId, OdTrVisViewportId viewportId, bool bOverride, const OdTrVisLayerProps &pProps=OdTrVisLayerProps())
virtual OdUInt32 queryRenditionCaps(OdUInt32 requestFor=0xFFFFFFFF) const
virtual void onVisualStyleModified(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)
virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId groupId, bool bFade)
virtual void onMaterialDeleted(OdTrVisMaterialId materialId)
virtual void onDeviceUpdateEnd(OdTrVisRenderClient *pDevice, bool bRender=true)
bool hasRedirections() const
virtual void obtainClientSettings(ClientSettings &clientSets)
virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
virtual void onBlockModified(OdTrVisBlockId blockId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen, const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)
virtual void onGroupPropertyDetached(OdTrVisGroupId groupId, OdTrVisPropertyDef::PropertyType propType)
virtual void onExtensionObjectSpecificData(OdTrVisExtensionId extId, OdUInt32 nDataId, const OdTrVisPropertyDef &propDef)
virtual OdTrVisDisplayId onMetafileAdded(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef &pDef)
virtual void onMetafilePropertyDetached(OdTrVisMetafileId metafileId, OdTrVisPropertyDef::PropertyType propType)
virtual OdTrVisExtensionObjectPtr queryExtensionObject(OdTrVisExtensionId extId)
virtual MtHandlerType mtDataTypeProcessing(DataType &type) const
virtual void onGroupDeleted(OdTrVisGroupId groupId)
virtual void onVisualStylePropertyAttached(OdTrVisVisualStyleId visualStyleId, const OdTrVisPropertyDef &propDef)
virtual void onMetafileVisibilityChanged(OdTrVisMetafileId metafileId, bool bVisibility)
const OdTrVisRendition * getInformationalRedirection() const
virtual void onViewportAdded(OdTrVisViewportId viewportId, const OdTrVisViewportDef &pDef)
virtual bool isWithinDeviceUpdate() const
virtual void onPartialUpdateInvalidRects(OdTrVisOverlayId overlayId, const OdGsDCRectArray &invalidRects, bool bOverlayInvalid=false)
virtual void onOverlayVisibilityChanged(OdTrVisOverlayId overlayId, bool bVisibility)
virtual void onOverlayDeleted(OdTrVisOverlayId overlayId)
GLuint GLsizei GLsizei GLint GLenum * type
Definition: gles2_ext.h:274
GLfloat x
Definition: gles2_ext.h:314
GLfloat GLfloat y
Definition: gles2_ext.h:316
OdTrVisInfoString m_glRenderer
OdTrVisInfoString m_glSLVersion
OdTrVisInfoString m_glVersion
OdTrVisInfoString m_glVendor
OdTrVisInfoString m_glExtensions
void setSupportNonPow2TexturesWrapping(bool bSet)
bool overridenLutPaletteState(bool bDeviceSetting) const
void setSupportNonPow2Textures(bool bSet)
bool overridenLutMonochromeState(bool bDeviceSetting) const
virtual OdTrVisUniqueID * get(DataType type, OdTrVisId id, bool bKill=false) const =0
virtual void reg(DataType type, OdTrVisId id, const OdGiDrawable *pTransId)=0
virtual void kill(DataType type, OdTrVisId id)=0
void reg(DataType type, OdTrVisId id, OdDbStub *pPersId, const void *pTransId)
virtual void reg(DataType type, OdTrVisId id, const OdTrVisUniqueID &uId)=0
virtual void reg(DataType type, OdTrVisId id, OdDbStub *pPersId)=0
static DataType decode(MtHandlerType handler, OdUInt32 nElem)
static DataType fromGenericDataType(OdUInt32 nDt)
static MtHandlerType decode(MtHandlerType handler)
static MtHandlerType encode(DataType mutex1, DataType mutex2=(DataType) 0, DataType mutex3=(DataType) 0, DataType mutex4=(DataType) 0)
static OdUInt32 toGenericDataType(DataType dt)
virtual void reg(DataType, OdTrVisId, OdDbStub *)
virtual void kill(DataType, OdTrVisId)
virtual OdTrVisUniqueID * get(DataType, OdTrVisId, bool=false) const
virtual void reg(DataType, OdTrVisId, const OdGiDrawable *)
virtual void reg(DataType, OdTrVisId, const OdTrVisUniqueID &)
void setIdRegRedirection(IdRegistrator *pRedir)
virtual void reg(DataType type, OdTrVisId id, const OdTrVisUniqueID &uId)
virtual void reg(DataType type, OdTrVisId id, OdDbStub *pPersId)
virtual void kill(DataType type, OdTrVisId id)
virtual OdTrVisUniqueID * get(DataType type, OdTrVisId id, bool bKill=false) const
const IdRegistrator * getIdRegRedirection() const
virtual void reg(DataType type, OdTrVisId id, const OdGiDrawable *pTransId)