CFx SDK Documentation 2026 SP0
Loading...
Searching...
No Matches
TrVisRendition.h
Go to the documentation of this file.
1
2// Copyright (C) 2002-2024, 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-2024 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 "TrVisBackgroundDef.h"
41#include "TrVisFogDef.h"
42#include "TrVisSectionDef.h"
43#include "TrVisStateBranchDef.h"
44#include "TrVisVisualStyle.h"
45#include "TrVisLayerDef.h"
46#include "TrVisPropertyDef.h"
47
48#include "Ge/GeExtents3d.h"
49#include "Gs/GsDCRectArray.h"
50
53
54class OdTrVisUniqueID;
55class OdGiDrawable;
56
57class OdGsFiler;
58class OdTrVisIdMap;
59
63class OdTrVisRendition : public OdRxObject
64{
65 public:
66 // Core rendition data types
89 // Mt handling types
91 {
92 kMtSkip = 0, // Skip data
93 kMtRedirect, // Redirect data without handling
94 kMtGlobal, // Redirect under global mutex
95 kMtCompete, // Redirect under specified mutex
96 kMtRecord, // Record till completion (placed under own recorder mutex)
97 kMtComplex // Redirect under complex set of mutexes (up to 4)
98 };
99 struct MtComplex
100 { // It's recommended to set mutexes in strict order to avoid deadlocks.
101 static inline MtHandlerType encode(DataType mutex1, DataType mutex2 = (DataType)0, DataType mutex3 = (DataType)0, DataType mutex4 = (DataType)0)
102 { return (MtHandlerType)(kMtComplex + (mutex1 << 6) + (mutex2 << 12) + (mutex3 << 18) + (mutex4 << 24)); }
103 static inline MtHandlerType decode(MtHandlerType handler) { return (MtHandlerType)(handler & 0x3F); }
104 static inline DataType decode(MtHandlerType handler, OdUInt32 nElem) { return (DataType)((handler >> (6 * nElem)) & 0x3F); }
105 static inline OdUInt32 toGenericDataType(DataType dt) { return dt >> 1; }
106 static inline DataType fromGenericDataType(OdUInt32 nDt) { return (DataType)((nDt) ? (nDt << 1) : 1); }
107 };
108 // Special DisplayId codes, provide fast access to renderer functionality directly from display list
110 {
111 kDisplayCodeZero = 0x00, // Empty display code
112 kDisplayCodeHighlight = 0x01, // Execute highlighting procedure
113 kDisplayCodeUnhighlight = 0x02, // Execute unhighlighting procedure
114 kDisplayCodePushMatrix = 0x03, // Execute push transformation matrix procedure
115 kDisplayCodePopMatrix = 0x04, // Execute pop transformation matrix procedure
116 kDisplayCodeFade = 0x05, // Execute fading procedure
117 kDisplayCodeUnfade = 0x06, // Execute unfading procedure
118 kDisplayCodeHlMarkers = 0x07, // Setup highlight markers
119 kDisplayCodeVsMarkers = 0x08, // Setup visibility markers
120 kDisplayCodeTfMarkers = 0x09, // Setup transformation markers
121 kDisplayCodeDrawOrder = 0x0A, // Provide drawing order for upcoming geometry
122 kDisplayCodeDepthIval = 0x0B, // Modify drawing order interval
123 kDisplayCodeExploded = 0x0C, // Initiates exploded union geometry rendering
124 kDisplayCodeNonExploded = 0x0D, // Stops exploded union geometry rendering
125 kDisplayCodeSelStyle = 0x0E, // Setup selection style
126 kDisplayCodeSelectionID = 0x0F, // Entity id for selection
127
128 kDisplayCodeRange = 0x10 // We reserve first 16 codes for special procedures
129 // Note: Currently we invoked all codes in reserved range. But, before extending range we should better think how to
130 // compress exist codes. As we know smallest page size is 4k for modern systems (0x1000). This "faulting" page
131 // always present at 0 address to check invalid dereferences. But to be more correct we shouldn't lean onto
132 // this and keep display codes range minimal as this is possible to be safe on even most exotic OS.
133 };
134 static const double kDisplayMultiDrawOrderMarker; // Marker for kDisplayCodeDrawOrder which means multi draw order (union stream)
135 // Rendition flags
137 {
138 kSupportPartialUpdate = (1 << 0), // isSupportPartialUpdate
139 kSupportSnapshotQueries = (1 << 1), // isSupportSnapshotQueries
140 kSupportCompositeMetafiles = (1 << 2), // isSupportCompositeMetafiles
141 kSupportVisualStyles = (1 << 3), // isSupportVisualStyles
142 kSupportGsStateSaving = (1 << 4), // isSupportGsStateSaving
143 kSupportOverlayBuffers = (1 << 5), // isSupportOverlayBuffers
144 kSupportGPUSelection = (1 << 6), // isSupportGPUSelection
145 kUpdateClientSectionOnly = (1 << 7), // updateClientDependentSectionOnly
146 kUpdateShareableSectionOnly = (1 << 8), // updateShareableSectionOnly
147 };
148 public:
150 {
151 // Register persistent resource
152 virtual void reg(DataType type, OdTrVisId id, OdDbStub *pPersId) = 0;
153 // Register transient resource
154 virtual void reg(DataType type, OdTrVisId id, const OdGiDrawable *pTransId) = 0;
155 // Register persistent or transient resource
156 void reg(DataType type, OdTrVisId id, OdDbStub *pPersId, const void *pTransId)
157 { if (pPersId) reg(type, id, pPersId); else reg(type, id, reinterpret_cast<const OdGiDrawable*>(pTransId)); }
158 // Copy resource registration
159 virtual void reg(DataType type, OdTrVisId id, const OdTrVisUniqueID &uId) = 0;
160 // Remove resource registration
161 virtual void kill(DataType type, OdTrVisId id) = 0;
162 // Access resource registration
163 virtual OdTrVisUniqueID *get(DataType type, OdTrVisId id, bool bKill = false) const = 0;
164 };
165 public:
166 // Client information
168 {
170 OdTrVisInfoString m_glRenderer; // OpenGL renderer name
173 OdTrVisInfoString m_glExtensions; // List of extensions
174 };
175 // Client settings
177 {
178 bool m_bObtained; // True if settings obtained from client.
179 // Client information
181 // Flags
182 enum Flags
183 {
184 // Texture settings
185 kNonPow2Textures = (1 << 0), // True if support non power of two textures.
186 kNonPow2Wrapping = (1 << 1), // True if support all non power of two textures wrapping modes.
187 kSupportsBGR = (1 << 2), // True if support BGR textures format.
188 kSupportsBGRA = (1 << 3), // True if support BGRA textures format.
189 kRequireBGR = (1 << 4), // True if support only BGR/BGRA textures format.
190 kOverrideLut = (1 << 5), // True if client override Lut device settings.
191 kLutMonochrome = (1 << 6), // True if client prefer Lut monochrome textures.
192 kLutPalette = (1 << 7), // True if client prefer Lut 4-8bpp textures.
193 kCubeMapping = (1 << 8), // True if support cube textures.
194 // Performance/quality options
195 kShadeByFragment = (1 << 9), // Fragment lighting mostly not influence onto final performance, so we can
196 // force per-fragment lighting for visual styles, which disable it.
197 // Data precision
198 kSupportDblAttrs = (1 << 10), // Support double precision attributes (vertex coordinates, depths, etc.)
199 kSupportUintClrs = (1 << 11), // Support UInt8 color data attributes.
200 kSupportHalfNorm = (1 << 12), // Support compressed normal data attributes.
201 kSupportIndex32 = (1 << 13), // Support 32-bit index arrays.
202 kSupportIndex8 = (1 << 14) // Support 8-bit index arrays.
203 };
204 OdUInt32 m_uFlags; // Client flags.
205 // Texture limits
206 OdUInt32 m_nMaxTextureSize; // Maximal texture size
207 OdUInt32 m_nTextureAlignment; // Required default texture alignment
208 // Lineweights
209 float m_nMaxLineWidth; // Maximal line width
210 float m_nMaxPointSize; // Maximal point size
211 // System limits
212 OdUInt32 m_nMaxTextures; // Maximal number of textures
213 OdUInt32 m_nMaxLights; // Maximal number of lights
214
217 , m_ciInfo()
218 , m_uFlags(0)
219 , m_nMaxTextureSize(2048)
221 , m_nMaxLineWidth(1.0f)
222 , m_nMaxPointSize(1.0f)
223 , m_nMaxTextures(8)
224 , m_nMaxLights(4)
225 {
226 }
227
228 // Flag accessors
229
230 // Textures
231
234
237
238 bool isSupportBGR() const { return GETBIT(m_uFlags, kSupportsBGR); }
239 void setSupportBGR(bool bSet) { SETBIT(m_uFlags, kSupportsBGR, bSet); }
240
241 bool isSupportBGRA() const { return GETBIT(m_uFlags, kSupportsBGRA); }
242 void setSupportBGRA(bool bSet) { SETBIT(m_uFlags, kSupportsBGRA, bSet); }
243
244 bool isRequireBGR() const { return GETBIT(m_uFlags, kRequireBGR); }
245 void setRequireBGR(bool bSet) { SETBIT(m_uFlags, kRequireBGR, bSet); }
246
247 bool isLutOverride() const { return GETBIT(m_uFlags, kOverrideLut); }
248 void setLutOverride(bool bSet) { SETBIT(m_uFlags, kOverrideLut, bSet); }
249
251 void setLutMonochrome(bool bSet) { SETBIT(m_uFlags, kLutMonochrome, bSet); }
252 bool overridenLutMonochromeState(bool bDeviceSetting) const
253 { return (isLutOverride()) ? isLutMonochrome() : bDeviceSetting; }
254
255 bool isLutPalette() const { return GETBIT(m_uFlags, kLutPalette); }
256 void setLutPalette(bool bSet) { SETBIT(m_uFlags, kLutPalette, bSet); }
257 bool overridenLutPaletteState(bool bDeviceSetting) const
258 { return (isLutOverride()) ? isLutPalette() : bDeviceSetting; }
259
261 void setSupportCubeMaps(bool bSet) { SETBIT(m_uFlags, kCubeMapping, bSet); }
262
263 // Performance/quality options
264
267
268 // Data precision
269
272
275
278
281
284 };
285 public:
287
290
291 // High-level callbacks
292
293 // Called on starting vectorizer update.
294 virtual void onDeviceUpdateBegin(OdTrVisRenderClient *pDevice) = 0;
295 // Called on ending vectorizer update.
296 virtual void onDeviceUpdateEnd(OdTrVisRenderClient *pDevice, bool bRender = true) = 0;
297 // Checks that vectorizer update started.
298 virtual bool isWithinDeviceUpdate() const = 0;
299
300 // Called by underlying application to store frame changing information.
301 virtual void onFrameSwitchInfo(OdUInt32 nInterval) = 0;
302
303 // Returns set of bit flags which indicate rendition capabilities/settings
304 virtual OdUInt32 queryRenditionCaps(OdUInt32 requestFor = 0xFFFFFFFF) const = 0;
305 // Rendition capabilities as separate methods
306 // Called to check does rendition supports partial update (have sense for local renditions only).
308 // Check does rendition support snapshot queries
310 // Check does rendition supports composite metafiles
312 // Check does rendition supports visual styles
314 // Check does rendition supports GsFiler-compatible state saving/loading
316 // Check does rendition supports multiple overlapping rendering buffers
318 // Check does rendition supports GPU selection
320 // Update client-dependent section only
322 // Update shareable section only
324
325 // Partial update support for local renditions:
326 // Called to check does specified viewport/overlay combination support partial update query.
327 virtual bool onPartialUpdateCheckLimit(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId) = 0;
328 // Called to setup invalid rectangles and overlays on partial update.
329 virtual void onPartialUpdateInvalidRects(OdTrVisOverlayId overlayId, const OdGsDCRectArray &invalidRects, bool bOverlayInvalid = false) = 0;
330 // Called on partial update query to set entire actual visibilities list.
331 virtual void onPartialUpdateList(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries) = 0;
332 // Can be called by client side to check that rendition supports direct rendering ability.
334 // Can be called by client side to setup direct invocation interface for partial update instead of partial update list usage.
336
337 // Query snapshot
338 virtual void querySnapshot(OdUInt8 *pScanlines, long minX, long minY, long nWidth, long nHeight) = 0;
339
348 virtual void getSelectedObject(OdTrVisViewportId id, const OdGePoint2d* aPtDc, int numPoints, OdArray<OdTrVisId> &outIDs, OdTrVisGsMarker *outMarker = NULL) = 0;
349
350 // Allocate new resource sharing provider compatible with rendition
352 // Extract local rendition-specific host service.
354
355 // Multithread processing flags
357
358 // Returns Id registrator, or NULL if no registration supported
359 virtual IdRegistrator *idRegistrator() const = 0;
360
361 // Returns true if metafile streams accessible directly, returns stream by Id
362 virtual bool queryMetafileStream(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pDisplayId,
363 OdUInt32 nPathLength, const OdTrVisMetafileContainer **pStream) = 0;
364 // Unlock metafile stream, queried by queryMetafileStream method
365 virtual bool unlockMetafileStream(const OdTrVisMetafileContainer *pStream) = 0;
366
367 // Returns block metafile list in case if it is accessible.
368 virtual const OdTrVisDisplayId *queryBlockMetafilesList(OdTrVisBlockId blockId, OdUInt32 &numEntries) = 0;
369
370 // Returns extension object by Id.
372
373 // Returns non-kTrVisNegativeId in case if vectorizer supports ProgramID's embedded into metafile stream
375 OdTrVisGeomType geomType = OdTrVisGeomType_Default, OdUInt16 attrFlags = 0, OdUInt16 shadingFlags = 0) const = 0;
376
377 // GsFiler support
378 virtual bool saveRenditionState(OdGsFiler *pFiler) const = 0;
379 virtual bool loadRenditionState(OdGsFiler *pFiler, OdTrVisIdMap *pIdMap) = 0;
380
381 // Mid-level callbacks
382
383 // Client information
384
385 // Returns rendering client settings.
386 virtual void obtainClientSettings(ClientSettings &clientSets) = 0;
387
388 // Surface
389
390 // Called when output render surface parameters changed.
391 virtual void onSurfaceChanged(const OdTrVisSurfaceDef &pDef) = 0;
392 // Called when rendering surface needs to be invalidated forcibly.
393 virtual void onSurfaceInvalidated() = 0;
394
395 // Overlays
396
397 // Called when new overlay added into device.
398 virtual void onOverlayAdded(OdTrVisOverlayId overlayId, const OdTrVisOverlayDef &pDef) = 0;
399 // Called when exist overlay removed from device.
400 virtual void onOverlayDeleted(OdTrVisOverlayId overlayId) = 0;
401 // Called when overlay visibility changed.
402 virtual void onOverlayVisibilityChanged(OdTrVisOverlayId overlayId, bool bVisibility) = 0;
403 // Called when overlay rendering order changed.
404 virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId overlayId, OdInt16 nRenderOrder) = 0;
405
406 // Viewports
407
408 // Called when new viewport added into device.
409 virtual void onViewportAdded(OdTrVisViewportId viewportId, const OdTrVisViewportDef &pDef) = 0;
410 // Called when viewport inserted in list with some index.
411 virtual void onViewportInserted(OdTrVisViewportId viewportId, int nIndex, const OdTrVisViewportDef &pDef) = 0;
412 // Called when viewport removed from device.
413 virtual void onViewportDeleted(OdTrVisViewportId viewportId) = 0;
414 // Called when viewport visibility changed.
415 virtual void onViewportVisibilityChanged(OdTrVisViewportId viewportId, bool bVisibility) = 0;
416
417 // Primary viewports configuration
418
419 // Called when viewport view parameters is modified.
420 virtual void onViewportViewParamsModified(OdTrVisViewportId viewportId, const OdTrVisViewParamsDef &pDef) = 0;
421 // Called when viewport linestyle settings is modified.
423 // Called when viewport fading settings is modified.
424 virtual void onViewportFadingModified(OdTrVisViewportId viewportId, const OdTrVisViewportFadingDef &pDef) = 0;
425 // Called when viewport lineweight settings is modified.
427 // Called when viewport rendering mode is modified.
429 // Called when viewport clipping region is modified.
431 bool bNrcClipModified = true, bool bBorderModified = true) = 0;
432
433 // Extended viewports configuration
434
435 // Called when background stream in viewport is changed.
436 virtual void onViewportBackgroundChanged(OdTrVisViewportId viewportId, const OdTrVisBackgroundDef &pDef) = 0;
437 // Called when viewport fog changed.
438 virtual void onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef) = 0;
439 // Called when viewport sectioning modified.
440 virtual void onViewportSectioningChanged(OdTrVisViewportId viewportId, const OdTrVisSectionDef &pDef) = 0;
441 // Called when viewport anti-aliasing setting changed.
442 virtual void onViewportAntiAliasingChanged(OdTrVisViewportId viewportId, OdUInt32 nAntiAliasing) = 0;
443 // Called when viewport ssao setting changed.
444 virtual void onViewportSSAOChanged(OdTrVisViewportId viewportId, bool bEnabled) = 0;
445
446 // Viewport default lights configuration
447
448 // Called when viewport ambient light setting modified.
449 virtual void onViewportAmbientLightChanged(OdTrVisViewportId viewportId, const OdTrVisMaterialColor &ambientLight) = 0;
450 // Called when viewport default light setting modified.
451 virtual void onViewportDefaultLightsChanged(OdTrVisViewportId viewportId, bool bDefaultLightsOn,
452 const OdTrVisLightDef *pLightsList = NULL, OdUInt32 nLightsListEntries = 0) = 0;
453
454 // Viewport lights management
455
456 // Called when light source added into viewport light sources list.
458 OdUInt32 nOverrides = 0, const OdTrVisLightDef &pOverrides = OdTrVisLightDef()) = 0;
459 // Called when light source removed from viewport light sources list.
460 virtual void onViewportLightDetached(OdTrVisViewportId viewportId, OdTrVisLightId lightId) = 0;
461
462 // Per-overlay viewport overrides
463
464 // Called when viewport needs override view parameters for specific overlay.
465 virtual void onOverlayViewParamsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, bool bOverride,
466 const OdTrVisViewParamsDef &pDef = OdTrVisViewParamsDef()) = 0;
467 // Called when viewport extents changed.
468 virtual void onOverlayExtentsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisExtentsDef &pDef) = 0;
469
470 // Viewports ordering lists
471
472 // Called when order of metafiles in viewport is changed (for obtain full list by renderer).
473 virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries) = 0;
474 // Called when order of metafiles in viewport is changed (for obtain modified part of list by renderer).
475 virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen,
476 const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen) = 0;
477 // Called when order of metafiles can be inherit from other source.
478 virtual void onMetafileOrderInheritance( OdTrVisViewportId viewportId1, OdTrVisOverlayId overlayId1, OdTrVisViewportId viewportId2 ) = 0;
479
480 // Metafiles
481
482 // Called when new metafile added (returns visualId, equal to metafileId by default).
484 // Called when exist metafile deleted.
485 virtual void onMetafileDeleted(OdTrVisMetafileId metafileId) = 0;
486 // Called when exist metafile changed.
487 //virtual void onMetafileModified(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef &pDef) = 0;
488 // Called when exist metafile extents updated (affected by transformation state branches).
489 virtual void onMetafileExtentsUpdated(OdTrVisMetafileId metafileId, const OdGeExtents3d &extents) = 0;
490 // Called when exist metafile visibility changed.
491 virtual void onMetafileVisibilityChanged(OdTrVisMetafileId metafileId, bool bVisibility) = 0;
492 // Called when exist metafile highlighting changed.
493 virtual void onMetafileHighlightingChanged(OdTrVisMetafileId metafileId, bool bHighlight) = 0;
494 // Called when exist metafile fading changed.
495 virtual void onMetafileFadingChanged(OdTrVisMetafileId metafileId, bool bFade) = 0;
496
497 // Lights
498
499 // Called when new light source added.
500 virtual void onLightAdded(OdTrVisLightId lightId, const OdTrVisLightDef &pDef) = 0;
501 // Called when exist light source modified.
502 virtual void onLightModified(OdTrVisLightId lightId, OdUInt32 nKindOfMod, const OdTrVisLightDef &pDef) = 0;
503 // Called when exist light source deleted.
504 virtual void onLightDeleted(OdTrVisLightId lightId) = 0;
505
506 // State branches (highlighting, hide, transform)
507
508 // Called when new state branch added.
509 virtual void onStateBranchAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef) = 0;
510 // Called when exist state branch modified.
511 virtual void onStateBranchModified(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef,
512 bool bChildsModified, bool bMarkersModified) = 0;
513 // Called when exist state branch deleted.
514 virtual void onStateBranchDeleted(OdTrVisStateBranchId stateBranchId) = 0;
515 // Called to attach additional data to range of state branch markers.
517 const OdTrVisPropertyDef &propDef) = 0;
518 // Called to detach additional data from state branch markers range.
520
521 // Textures
522
523 // Called when new texture added.
524 virtual void onTextureAdded(OdTrVisTextureId textureId, const OdTrVisTextureDef &pDef) = 0;
525 // Called when exist texture deleted.
526 virtual void onTextureDeleted(OdTrVisTextureId textureId) = 0;
527 // Called when texture flags modified.
528 virtual void onTextureFlagsModified(OdTrVisTextureId textureId, OdUInt32 newFlags) = 0;
529
530 // Materials
531
532 // Called when new material added.
533 virtual void onMaterialAdded(OdTrVisMaterialId materialId, const OdTrVisMaterialDef &pDef) = 0;
534 // Called when exist material deleted.
535 virtual void onMaterialDeleted(OdTrVisMaterialId materialId) = 0;
536 // Called when new material reflection plane added.
537 virtual void onMaterialRefPlaneAdded(OdTrVisRefPlaneId refPlaneId, const OdTrVisRefPlaneDef &pDef) = 0;
538 // Called when exist material reflection plane deleted.
539 virtual void onMaterialRefPlaneDeleted(OdTrVisRefPlaneId refPlaneId) = 0;
540
541 // Visual Styles
542
543 // Called when new visual style added.
544 virtual void onVisualStyleAdded(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef) = 0;
545 // Called when exist visual style modified.
546 virtual void onVisualStyleModified(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef) = 0;
547 // Called when exist visual style deleted.
548 virtual void onVisualStyleDeleted(OdTrVisVisualStyleId visualStyleId) = 0;
549
550 // Layers
551
552 // Called when new layer added.
553 virtual void onLayerAdded(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef) = 0;
554 // Called when exist layer modified.
555 //virtual void onLayerModified(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef) = 0;
556 // Called when exist layer deleted.
557 virtual void onLayerDeleted(OdTrVisLayerId layerId) = 0;
558 // Called when exist layer visibility changed.
559 virtual void onLayerVisibilityChanged(OdTrVisLayerId layerId, bool bVisibility) = 0;
560 // Called when exist layer fading changed.
561 virtual void onLayerFadingChanged(OdTrVisLayerId layerId, bool bFade) = 0;
562 // Called when layer viewport-dependent properties changed.
563 virtual void onLayerVpDepPropsOverride(OdTrVisLayerId layerId, OdTrVisViewportId viewportId, bool bOverride,
564 const OdTrVisLayerProps &pProps = OdTrVisLayerProps()) = 0;
565
566 // Extension objects
567
568 // Called when new extension object added.
570 // Called when exist extension object deleted.
572 // Called to send special extension object specific data.
573 virtual void onExtensionObjectSpecificData(OdTrVisExtensionId extId, OdUInt32 nDataId, const OdTrVisPropertyDef &propDef) = 0;
574 // Called to change extension object visibility.
575 virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId extId, bool bVisibility) = 0;
576
577 // Blocks
578
579 // Called when new block added.
580 virtual void onBlockAdded(OdTrVisBlockId blockId, const OdTrVisDisplayId *pList, OdUInt32 nEntries) = 0;
581 // Called when block display list changed.
582 virtual void onBlockModified(OdTrVisBlockId blockId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen,
583 const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen) = 0;
584 // Called when exist block deleted.
585 virtual void onBlockDeleted(OdTrVisBlockId blockId) = 0;
586
587 // Groups
588
589 // Called when new group added.
590 virtual void onGroupAdded(OdTrVisGroupId groupId) = 0;
591 // Called when exist group deleted.
592 virtual void onGroupDeleted(OdTrVisGroupId groupId) = 0;
593 // Called to attach metafiles to group.
594 virtual void onGroupMetafilesAttached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles) = 0;
595 // Called to detach metafiles from group (if no metafiles specified - clear entire list of groupped metafiles).
596 virtual void onGroupMetafilesDetached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles) = 0;
597 // Called to delete all groupped metafiles from graphics scene.
598 //virtual void onGroupMetafilesDeleted(OdTrVisGroupId groupId) = 0;
599 // Called to change visibility state for all groupped metafiles.
600 virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId groupId, bool bVisibility) = 0;
601 // Called to change highlighting state for all groupped metafiles.
602 virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId groupId, bool bHighlight) = 0;
603 // Called to change fading state for all groupped metafiles.
604 virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId groupId, bool bFade) = 0;
605
606 // Properties
607
608 // Metafile-related properties.
609 // Called to attach property to metafile.
610 virtual void onMetafilePropertyAttached(OdTrVisMetafileId metafileId, const OdTrVisPropertyDef &propDef) = 0;
611 // Called to detach property from metafile.
613 // Group-related properties.
614 // Called to attach property to group.
615 virtual void onGroupPropertyAttached(OdTrVisGroupId groupId, const OdTrVisPropertyDef &propDef) = 0;
616 // Called to detach property from group.
618 // Layer-related properties.
619 // Called to attach property to layer.
620 virtual void onLayerPropertyAttached(OdTrVisLayerId layerId, const OdTrVisPropertyDef &propDef) = 0;
621 // Called to detach property from layer.
623 // VisualStyle-related properties.
624 // Called to attach property to visual style.
625 virtual void onVisualStylePropertyAttached(OdTrVisVisualStyleId visualStyleId, const OdTrVisPropertyDef &propDef) = 0;
626 // Called to detach property from visual style.
628 // Material-related properties.
629 // Called to attach property to material.
630 virtual void onMaterialPropertyAttached(OdTrVisMaterialId materialId, const OdTrVisPropertyDef &propDef) = 0;
631 // Called to detach property from material.
633 // Texture-related properties.
634 // Called to attach property to texture.
635 virtual void onTexturePropertyAttached(OdTrVisTextureId textureId, const OdTrVisPropertyDef &propDef) = 0;
636 // Called to detach property from texture.
638 // Light-related properties.
639 // Called to attach property to light source.
640 virtual void onLightPropertyAttached(OdTrVisLightId lightId, const OdTrVisPropertyDef &propDef) = 0;
641 // Called to detach property from light source.
643 // HlBranch-related properties.
644 // Called to attach property to state branch.
645 virtual void onStateBranchPropertyAttached(OdTrVisStateBranchId stateBranchId, const OdTrVisPropertyDef &propDef) = 0;
646 // Called to detach property from state branch.
648 // Viewport-related properties.
649 // Called to attach property to viewport.
650 virtual void onViewportPropertyAttached(OdTrVisViewportId viewportId, const OdTrVisPropertyDef &propDef) = 0;
651 // Called to detach property from viewport.
653 // Overlay-related properties.
654 // Called to attach property to overlay.
655 virtual void onOverlayPropertyAttached(OdTrVisOverlayId overlayId, const OdTrVisPropertyDef &propDef) = 0;
656 // Called to detach property from overlay.
658 // ExtensionObject-related properties.
659 // Called to attach property to extension object.
661 // Called to detach property from extension object.
663 // Block-related properties.
664 // Called to attach property to block.
665 virtual void onBlockPropertyAttached(OdTrVisBlockId blockId, const OdTrVisPropertyDef &propDef) = 0;
666 // Called to detach property from viewport.
668};
669
671
676{
677 protected:
679 {
680 virtual void reg(DataType /*type*/, OdTrVisId /*id*/, OdDbStub * /*pPersId*/) { }
681 virtual void reg(DataType /*type*/, OdTrVisId /*id*/, const OdGiDrawable * /*pTransId*/) { }
682 virtual void reg(DataType /*type*/, OdTrVisId /*id*/, const OdTrVisUniqueID & /*uId*/) { }
683 virtual void kill(DataType /*type*/, OdTrVisId /*id*/) { }
684 virtual OdTrVisUniqueID *get(DataType /*type*/, OdTrVisId /*id*/, bool /*bKill*/ = false) const { return NULL; }
686 public:
687 // High-level callbacks
688
689 // Called on starting vectorizer update.
690 virtual void onDeviceUpdateBegin(OdTrVisRenderClient * /*pDevice*/) { }
691 // Called on ending vectorizer update.
692 virtual void onDeviceUpdateEnd(OdTrVisRenderClient * /*pDevice*/, bool /*bRender*/ = true) { }
693 // Checks that vectorizer update started.
694 virtual bool isWithinDeviceUpdate() const { return false; }
695
696 // Called by underlying application to store frame changing information.
697 virtual void onFrameSwitchInfo(OdUInt32 /*nInterval*/) { }
698
699 // Returns set of bit flags which indicate rendition capabilities/settings
700 virtual OdUInt32 queryRenditionCaps(OdUInt32 /*requestFor*/ = 0xFFFFFFFF) const { return 0; }
701
702 // Partial update support for local renditions:
703 // Called to check does specified viewport/overlay combination support partial update query.
704 virtual bool onPartialUpdateCheckLimit(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/) { return false; }
705 // Called to setup invalid rectangles and overlays on partial update.
706 virtual void onPartialUpdateInvalidRects(OdTrVisOverlayId /*overlayId*/, const OdGsDCRectArray & /*invalidRects*/, bool /*bOverlayInvalid*/ = false) { }
707 // Called on partial update query to set entire actual visibilities list.
708 virtual void onPartialUpdateList(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, const OdTrVisDisplayId * /*pList*/, OdUInt32 /*nEntries*/) { }
709 // Can be called by client side to check that rendition supports direct rendering ability.
710 virtual bool queryPartialUpdateDirectInvocation(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, OdTrVisDirectRenderPartialUpdateInvocationPtr & /*pInvocationPtr*/) { return false; }
711 // Can be called by client side to setup direct invocation interface for partial update instead of partial update list usage.
713
714 // Query snapshot
715 virtual void querySnapshot(OdUInt8 * /*pScanlines*/, long /*minX*/, long /*minY*/, long /*nWidth*/, long /*nHeight*/) { }
716
717 // Renders viewport to selection texture. Return top object id with (x, y) position in viewport.
718 virtual void getSelectedObject(OdTrVisViewportId /*id*/, const OdGePoint2d* /*aPtDc*/, int /*numPoints*/, OdArray<OdTrVisId> & /*outIDs*/, OdTrVisGsMarker * /*outMarker*/ = NULL) ODRX_OVERRIDE { }
719
720 // Allocate new resource sharing provider compatible with rendition
722 // Extract local rendition-specific host service.
723 virtual OdTrRndLocalRenditionHost *localRenditionHost() { return nullptr; }
724
725 // Multithread processing flags
726 virtual MtHandlerType mtDataTypeProcessing(DataType & /*type*/) const { return kMtSkip; }
727
728 // Returns Id registrator, or NULL if no registration supported
729 virtual IdRegistrator *idRegistrator() const { return NULL; }
730
731 // Returns true if metafile streams accessible directly, returns stream by Id
732 virtual bool queryMetafileStream(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, const OdTrVisDisplayId * /*pDisplayId*/,
733 OdUInt32 /*nPathLength*/, const OdTrVisMetafileContainer ** /*pStream*/) { return false; }
734 // Unlock metafile stream, queried by queryMetafileStream method
735 virtual bool unlockMetafileStream(const OdTrVisMetafileContainer * /*pStream*/) { return false; }
736
737 // Returns block metafile list in case if it is accessible.
738 virtual const OdTrVisDisplayId *queryBlockMetafilesList(OdTrVisBlockId /*blockId*/, OdUInt32 & /*numEntries*/) { return NULL; }
739
740 // Returns extension object by Id.
742
743 // Returns non-kTrVisNegativeId in case if vectorizer supports ProgramID's embedded into metafile stream
745 OdTrVisGeomType /*geomType*/ = OdTrVisGeomType_Default, OdUInt16 /*attrFlags*/ = 0, OdUInt16 /*shadingFlags*/ = 0) const
746 { return kTrVisNegativeId; }
747
748 // GsFiler support
749 virtual bool saveRenditionState(OdGsFiler * /*pFiler*/) const { return false; }
750 virtual bool loadRenditionState(OdGsFiler * /*pFiler*/, OdTrVisIdMap * /*pIdMap*/) { return false; }
751
752 // Mid-level callbacks
753
754 // Client information
755
756 // Returns rendering client settings.
757 virtual void obtainClientSettings(ClientSettings & /*clientSets*/) { }
758
759 // Surface
760
761 // Called when output render surface parameters changed.
762 virtual void onSurfaceChanged(const OdTrVisSurfaceDef & /*pDef*/) { }
763 // Called when rendering surface needs to be invalidated forcibly.
764 virtual void onSurfaceInvalidated() { }
765
766 // Overlays
767
768 // Called when new overlay added into device.
769 virtual void onOverlayAdded(OdTrVisOverlayId /*overlayId*/, const OdTrVisOverlayDef & /*pDef*/) { }
770 // Called when exist overlay removed from device.
771 virtual void onOverlayDeleted(OdTrVisOverlayId /*overlayId*/) { }
772 // Called when overlay visibility changed.
773 virtual void onOverlayVisibilityChanged(OdTrVisOverlayId /*overlayId*/, bool /*bVisibility*/) { }
774 // Called when overlay rendering order changed.
775 virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId /*overlayId*/, OdInt16 /*nRenderOrder*/) { }
776
777 // Viewports
778
779 // Called when new viewport added into device.
780 virtual void onViewportAdded(OdTrVisViewportId /*viewportId*/, const OdTrVisViewportDef & /*pDef*/) { }
781 // Called when viewport inserted in list with some index.
782 virtual void onViewportInserted(OdTrVisViewportId /*viewportId*/, int /*nIndex*/, const OdTrVisViewportDef & /*pDef*/) { }
783 // Called when viewport removed from device.
784 virtual void onViewportDeleted(OdTrVisViewportId /*viewportId*/) { }
785 // Called when viewport visibility changed.
786 virtual void onViewportVisibilityChanged(OdTrVisViewportId /*viewportId*/, bool /*bVisibility*/) { }
787
788 // Primary viewports configuration
789
790 // Called when viewport view parameters is modified.
791 virtual void onViewportViewParamsModified(OdTrVisViewportId /*viewportId*/, const OdTrVisViewParamsDef & /*pDef*/) { }
792 // Called when viewport linestyle settings is modified.
793 virtual void onViewportLineStylesModified(OdTrVisViewportId /*viewportId*/, const OdTrVisViewportLineStyleDef & /*pDef*/) { }
794 // Called when viewport fading settings is modified.
795 virtual void onViewportFadingModified(OdTrVisViewportId /*viewportId*/, const OdTrVisViewportFadingDef & /*pDef*/) { }
796 // Called when viewport lineweight settings is modified.
797 virtual void onViewportLineweightsModified(OdTrVisViewportId /*viewportId*/, const OdTrVisViewportLineweightsDef & /*pDef*/) { }
798 // Called when viewport rendering mode is modified.
799 virtual void onViewportShadingModified(OdTrVisViewportId /*viewportId*/, const OdTrVisViewportShadingDef & /*pDef*/) { }
800 // Called when viewport clipping region is modified.
801 virtual void onViewportClipModified(OdTrVisViewportId /*viewportId*/, const OdTrVisViewportClipDef & /*pDef*/,
802 bool /*bNrcClipModified*/ = true, bool /*bBorderModified*/ = true) { }
803
804 // Extended viewports configuration
805
806 // Called when background stream in viewport is changed.
807 virtual void onViewportBackgroundChanged(OdTrVisViewportId /*viewportId*/, const OdTrVisBackgroundDef & /*pDef*/) { }
808 // Called when viewport fog changed.
809 virtual void onViewportFogChanged(OdTrVisViewportId /*viewportId*/, const OdTrVisFogDef & /*pDef*/) { }
810 // Called when viewport sectioning modified.
811 virtual void onViewportSectioningChanged(OdTrVisViewportId /*viewportId*/, const OdTrVisSectionDef & /*pDef*/) { }
812 // Called when viewport anti-aliasing setting changed.
813 virtual void onViewportAntiAliasingChanged(OdTrVisViewportId /*viewportId*/, OdUInt32 /*nAntiAliasing*/) { }
814 // Called when viewport ssao setting changed.
815 void onViewportSSAOChanged(OdTrVisViewportId viewportId, bool bEnabled) ODRX_OVERRIDE {}
816
817 // Viewport default lights configuration
818
819 // Called when viewport ambient light setting modified.
820 virtual void onViewportAmbientLightChanged(OdTrVisViewportId /*viewportId*/, const OdTrVisMaterialColor & /*ambientLight*/) { }
821 // Called when viewport default light setting modified.
822 virtual void onViewportDefaultLightsChanged(OdTrVisViewportId /*viewportId*/, bool /*bDefaultLightsOn*/,
823 const OdTrVisLightDef * /*pLightsList*/ = NULL, OdUInt32 /*nLightsListEntries*/ = 0) { }
824
825 // Viewport lights management
826
827 // Called when light source added into viewport light sources list.
828 virtual void onViewportLightAttached(OdTrVisViewportId /*viewportId*/, OdTrVisLightId /*lightId*/,
829 OdUInt32 /*nOverrides*/ = 0, const OdTrVisLightDef & /*pOverrides*/ = OdTrVisLightDef()) { }
830 // Called when light source removed from viewport light sources list.
831 virtual void onViewportLightDetached(OdTrVisViewportId /*viewportId*/, OdTrVisLightId /*lightId*/) { }
832
833 // Per-overlay viewport overrides
834
835 // Called when viewport needs override view parameters for specific overlay.
836 virtual void onOverlayViewParamsOverride(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, bool /*bOverride*/,
837 const OdTrVisViewParamsDef & /*pDef*/ = OdTrVisViewParamsDef()) { }
838 // Called when viewport extents changed.
839 virtual void onOverlayExtentsOverride(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, const OdTrVisExtentsDef & /*pDef*/) { }
840
841 // Viewports ordering lists
842
843 // Called when order of metafiles in viewport is changed.
844 virtual void onMetafileOrderChanged(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, const OdTrVisDisplayId * /*pList*/, OdUInt32 /*nEntries*/) { }
845 // Called when order of metafiles in viewport is changed (for obtain modified part of list by renderer).
846 virtual void onMetafileOrderChanged(OdTrVisViewportId /*viewportId*/, OdTrVisOverlayId /*overlayId*/, OdUInt32 /*nInvalidFrom*/, OdUInt32 /*nInvalidLen*/,
847 const OdTrVisDisplayId * /*pValidFrom*/, OdUInt32 /*nValidLen*/) { }
848 // Called when order of metafiles can be inherit from other source.
849 virtual void onMetafileOrderInheritance(OdTrVisViewportId /*viewportId1*/, OdTrVisOverlayId /*overlayId1*/, OdTrVisViewportId /*viewportId2*/) { }
850
851 // Metafiles
852
853 // Called when new metafile added (returns visualId, equal to metafileId by default).
854 virtual OdTrVisDisplayId onMetafileAdded(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef & /*pDef*/) { return (OdTrVisDisplayId)metafileId; }
855 // Called when exist metafile deleted.
856 virtual void onMetafileDeleted(OdTrVisMetafileId /*metafileId*/) { }
857 // Called when exist metafile changed.
858 //virtual void onMetafileModified(OdTrVisMetafileId /*metafileId*/, const OdTrVisMetafileDef & /*pDef*/) { }
859 // Called when exist metafile extents updated (affected by transformation state branches).
860 virtual void onMetafileExtentsUpdated(OdTrVisMetafileId /*metafileId*/, const OdGeExtents3d & /*extents*/) { }
861 // Called when exist metafile visibility changed.
862 virtual void onMetafileVisibilityChanged(OdTrVisMetafileId /*metafileId*/, bool /*bVisibility*/) { }
863 // Called when exist metafile highlighting changed.
864 virtual void onMetafileHighlightingChanged(OdTrVisMetafileId /*metafileId*/, bool /*bHighlight*/) { }
865 // Called when exist metafile fading changed.
866 virtual void onMetafileFadingChanged(OdTrVisMetafileId /*metafileId*/, bool /*bFade*/) { }
867
868 // Lights
869
870 // Called when new light source added.
871 virtual void onLightAdded(OdTrVisLightId /*lightId*/, const OdTrVisLightDef & /*pDef*/) { }
872 // Called when exist light source modified.
873 virtual void onLightModified(OdTrVisLightId /*lightId*/, OdUInt32 /*nKindOfMod*/, const OdTrVisLightDef & /*pDef*/) { }
874 // Called when exist light source deleted.
875 virtual void onLightDeleted(OdTrVisLightId /*lightId*/) { }
876
877 // State branches (highlighting, hide, transform)
878
879 // Called when new state branch added.
880 virtual void onStateBranchAdded(OdTrVisStateBranchId /*stateBranchId*/, const OdTrVisStateBranchDef & /*pDef*/) { }
881 // Called when exist state branch modified.
882 virtual void onStateBranchModified(OdTrVisStateBranchId /*stateBranchId*/, const OdTrVisStateBranchDef & /*pDef*/,
883 bool /*bChildsModified*/, bool /*bMarkersModified*/) { }
884 // Called when exist state branch deleted.
885 virtual void onStateBranchDeleted(OdTrVisStateBranchId /*stateBranchId*/) { }
886 // Called to attach additional data to range of state branch markers.
888 const OdTrVisPropertyDef & /*propDef*/) { }
889 // Called to detach additional data from state branch markers range.
891
892 // Textures
893
894 // Called when new texture added.
895 virtual void onTextureAdded(OdTrVisTextureId /*textureId*/, const OdTrVisTextureDef & /*pDef*/) { }
896 // Called when exist texture deleted.
897 virtual void onTextureDeleted(OdTrVisTextureId /*textureId*/) { }
898 // Called when texture flags modified.
899 virtual void onTextureFlagsModified(OdTrVisTextureId /*textureId*/, OdUInt32 /*newFlags*/) { }
900
901 // Materials
902
903 // Called when new material added.
904 virtual void onMaterialAdded(OdTrVisMaterialId /*materialId*/, const OdTrVisMaterialDef & /*pDef*/) { }
905 // Called when exist material deleted.
906 virtual void onMaterialDeleted(OdTrVisMaterialId /*materialId*/) { }
907 // Called when new material reflection plane added.
908 virtual void onMaterialRefPlaneAdded(OdTrVisRefPlaneId /*refPlaneId*/, const OdTrVisRefPlaneDef & /*pDef*/) { }
909 // Called when exist material reflection plane deleted.
910 virtual void onMaterialRefPlaneDeleted(OdTrVisRefPlaneId /*refPlaneId*/) { }
911
912 // Visual Styles
913
914 // Called when new visual style added.
915 virtual void onVisualStyleAdded(OdTrVisVisualStyleId /*visualStyleId*/, const OdTrVisVisualStyle & /*pDef*/) { }
916 // Called when exist visual style modified.
917 virtual void onVisualStyleModified(OdTrVisVisualStyleId /*visualStyleId*/, const OdTrVisVisualStyle & /*pDef*/) { }
918 // Called when exist visual style deleted.
919 virtual void onVisualStyleDeleted(OdTrVisVisualStyleId /*visualStyleId*/) { }
920
921 // Layers
922
923 // Called when new layer added.
924 virtual void onLayerAdded(OdTrVisLayerId /*layerId*/, const OdTrVisLayerDef & /*pDef*/) { }
925 // Called when exist layer modified.
926 //virtual void onLayerModified(OdTrVisLayerId /*layerId*/, const OdTrVisLayerDef & /*pDef*/) { }
927 // Called when exist layer deleted.
928 virtual void onLayerDeleted(OdTrVisLayerId /*layerId*/) { }
929 // Called when exist layer visibility changed.
930 virtual void onLayerVisibilityChanged(OdTrVisLayerId /*layerId*/, bool /*bVisibility*/) { }
931 // Called when exist layer fading changed.
932 virtual void onLayerFadingChanged(OdTrVisLayerId /*layerId*/, bool /*bFade*/) { }
933 // Called when layer viewport-dependent properties changed.
934 virtual void onLayerVpDepPropsOverride(OdTrVisLayerId /*layerId*/, OdTrVisViewportId /*viewportId*/, bool /*bOverride*/,
935 const OdTrVisLayerProps & /*pProps*/ = OdTrVisLayerProps()) { }
936
937 // Extension objects
938
939 // Called when new extension object added.
940 virtual void onExtensionObjectAdded(OdTrVisExtensionId /*extId*/, const OdTrVisExtensionObject* /*pObj*/) { }
941 // Called when exist extension object deleted.
943 // Called to send special extension object specific data.
944 virtual void onExtensionObjectSpecificData(OdTrVisExtensionId /*extId*/, OdUInt32 /*nDataId*/, const OdTrVisPropertyDef& /*propDef*/) { }
945 // Called to change extension object visibility.
946 virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId /*extId*/, bool /*bVisibility*/) { }
947
948 // Blocks
949
950 // Called when new block added.
951 virtual void onBlockAdded(OdTrVisBlockId /*blockId*/, const OdTrVisDisplayId * /*pList*/, OdUInt32 /*nEntries*/) { }
952 // Called when block display list changed.
953 virtual void onBlockModified(OdTrVisBlockId /*blockId*/, OdUInt32 /*nInvalidFrom*/, OdUInt32 /*nInvalidLen */ ,
954 const OdTrVisDisplayId * /*pValidFrom*/, OdUInt32 /*nValidLen*/) { }
955 // Called when exist block deleted.
956 virtual void onBlockDeleted(OdTrVisBlockId /*blockId*/) { }
957
958
959 // Groups
960
961 // Called when new group added.
962 virtual void onGroupAdded(OdTrVisGroupId /*groupId*/) { }
963 // Called when exist group deleted.
964 virtual void onGroupDeleted(OdTrVisGroupId /*groupId*/) { }
965 // Called to attach metafiles to group.
966 virtual void onGroupMetafilesAttached(OdTrVisGroupId /*groupId*/, const OdTrVisMetafileId * /*pMetafilesList*/, OdUInt32 /*nMetafiles*/) { }
967 // Called to detach metafiles from group (if no metafiles specified - clear entire list of groupped metafiles).
968 virtual void onGroupMetafilesDetached(OdTrVisGroupId /*groupId*/, const OdTrVisMetafileId * /*pMetafilesList*/, OdUInt32 /*nMetafiles*/) { }
969 // Called to delete all groupped metafiles from graphics scene.
970 //virtual void onGroupMetafilesDeleted(OdTrVisGroupId /*groupId*/) { }
971 // Called to change visibility state for all groupped metafiles.
972 virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId /*groupId*/, bool /*bVisibility*/) { }
973 // Called to change highlighting state for all groupped metafiles.
974 virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId /*groupId*/, bool /*bHighlight*/) { }
975 // Called to change fading state for all groupped metafiles.
976 virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId /*groupId*/, bool /*bFade*/) { }
977
978 // Properties
979
980 // Metafile-related properties.
981 // Called to attach property to metafile.
982 virtual void onMetafilePropertyAttached(OdTrVisMetafileId /*metafileId*/, const OdTrVisPropertyDef & /*propDef*/) { }
983 // Called to detach property from metafile.
985 // Group-related properties.
986 // Called to attach property to group.
987 virtual void onGroupPropertyAttached(OdTrVisGroupId /*groupId*/, const OdTrVisPropertyDef & /*propDef*/) { }
988 // Called to detach property from group.
990 // Layer-related properties.
991 // Called to attach property to layer.
992 virtual void onLayerPropertyAttached(OdTrVisLayerId /*layerId*/, const OdTrVisPropertyDef & /*propDef*/) { }
993 // Called to detach property from layer.
995 // VisualStyle-related properties.
996 // Called to attach property to visual style.
997 virtual void onVisualStylePropertyAttached(OdTrVisVisualStyleId /*visualStyleId*/, const OdTrVisPropertyDef & /*propDef*/) { }
998 // Called to detach property from visual style.
1000 // Material-related properties.
1001 // Called to attach property to material.
1002 virtual void onMaterialPropertyAttached(OdTrVisMaterialId /*materialId*/, const OdTrVisPropertyDef & /*propDef*/) { }
1003 // Called to detach property from material.
1005 // Texture-related properties.
1006 // Called to attach property to texture.
1007 virtual void onTexturePropertyAttached(OdTrVisTextureId /*textureId*/, const OdTrVisPropertyDef & /*propDef*/) { }
1008 // Called to detach property from texture.
1010 // Light-related properties.
1011 // Called to attach property to light source.
1012 virtual void onLightPropertyAttached(OdTrVisLightId /*lightId*/, const OdTrVisPropertyDef & /*propDef*/) { }
1013 // Called to detach property from light source.
1015 // HlBranch-related properties.
1016 // Called to attach property to state branch.
1017 virtual void onStateBranchPropertyAttached(OdTrVisStateBranchId /*stateBranchId*/, const OdTrVisPropertyDef & /*propDef*/) { }
1018 // Called to detach property from state branch.
1020 // Viewport-related properties.
1021 // Called to attach property to viewport.
1022 virtual void onViewportPropertyAttached(OdTrVisViewportId /*viewportId*/, const OdTrVisPropertyDef & /*propDef*/) { }
1023 // Called to detach property from viewport.
1025 // Overlay-related properties.
1026 // Called to attach property to overlay.
1027 virtual void onOverlayPropertyAttached(OdTrVisOverlayId /*overlayId*/, const OdTrVisPropertyDef & /*propDef*/) { }
1028 // Called to detach property from overlay.
1030 // ExtensionObject-related properties.
1031 // Called to attach property to extension object.
1032 virtual void onExtensionObjectPropertyAttached(OdTrVisExtensionId /*extId*/, const OdTrVisPropertyDef & /*propDef*/) { }
1033 // Called to detach property from extension object.
1035 // Block-related properties.
1036 // Called to attach property to block.
1037 virtual void onBlockPropertyAttached(OdTrVisBlockId /*blockId*/, const OdTrVisPropertyDef & /*propDef*/) { }
1038 // Called to detach property from viewport.
1040};
1041
1046{
1047 protected:
1050 public:
1052 {
1055
1059 bool hasIdRegRedirection() const { return (m_pIdRegRedir != NULL); }
1060
1061 virtual void reg(DataType type, OdTrVisId id, OdDbStub *pPersId)
1062 {
1063 if (hasIdRegRedirection())
1064 getIdRegRedirection()->reg(type, id, pPersId);
1065 }
1066 virtual void reg(DataType type, OdTrVisId id, const OdGiDrawable *pTransId)
1067 {
1068 if (hasIdRegRedirection())
1069 getIdRegRedirection()->reg(type, id, pTransId);
1070 }
1071 virtual void reg(DataType type, OdTrVisId id, const OdTrVisUniqueID &uId)
1072 {
1073 if (hasIdRegRedirection())
1074 getIdRegRedirection()->reg(type, id, uId);
1075 }
1076 virtual void kill(DataType type, OdTrVisId id)
1077 {
1078 if (hasIdRegRedirection())
1080 }
1081 virtual OdTrVisUniqueID *get(DataType type, OdTrVisId id, bool bKill = false) const
1082 {
1083 if (hasIdRegRedirection())
1084 return getIdRegRedirection()->get(type, id, bKill);
1085 return NULL;
1086 }
1087 };
1088 public:
1090
1091 void setRedirection(OdTrVisRendition *pRedir) { m_pRedir = pRedir; }
1093 const OdTrVisRendition *getRedirection() const { return m_pRedir; }
1094 bool hasRedirection() const { return (m_pRedir != NULL); }
1095
1098 {
1100 throw OdError(eNullPtr);
1101 return m_pInformationalRedir;
1102 }
1104 {
1106 throw OdError(eNullPtr);
1107 return m_pInformationalRedir;
1108 }
1109 bool hasInformationalRedirection() const { return (m_pInformationalRedir != NULL); }
1110
1112 {
1113 setRedirection(pRedir);
1115 }
1117
1118 // High-level callbacks
1119
1120 // Called on starting vectorizer update.
1126 // Called on ending vectorizer update.
1127 virtual void onDeviceUpdateEnd(OdTrVisRenderClient *pDevice, bool bRender = true)
1128 {
1131 }
1132 // Checks that vectorizer update started.
1133 virtual bool isWithinDeviceUpdate() const
1134 {
1137 return false;
1138 }
1139
1140 // Called by underlying application to store frame changing information.
1141 virtual void onFrameSwitchInfo(OdUInt32 nInterval)
1142 {
1145 }
1146
1147 // Returns set of bit flags which indicate rendition capabilities/settings
1148 virtual OdUInt32 queryRenditionCaps(OdUInt32 requestFor = 0xFFFFFFFF) const
1149 {
1151 return getInformationalRedirection()->queryRenditionCaps(requestFor);
1152 return 0;
1153 }
1154
1155 // Partial update support for local renditions:
1156 // Called to check does specified viewport/overlay combination support partial update query.
1158 {
1160 return getInformationalRedirection()->onPartialUpdateCheckLimit(viewportId, overlayId);
1161 return false;
1162 }
1163 // Called to setup invalid rectangles and overlays on partial update.
1164 virtual void onPartialUpdateInvalidRects(OdTrVisOverlayId overlayId, const OdGsDCRectArray &invalidRects, bool bOverlayInvalid = false)
1165 {
1167 getInformationalRedirection()->onPartialUpdateInvalidRects(overlayId, invalidRects, bOverlayInvalid);
1168 }
1169 // Called on partial update query to set entire actual visibilities list.
1170 virtual void onPartialUpdateList(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
1171 {
1173 getInformationalRedirection()->onPartialUpdateList(viewportId, overlayId, pList, nEntries);
1174 }
1175 // Can be called by client side to check that rendition supports direct rendering ability.
1177 {
1179 getInformationalRedirection()->queryPartialUpdateDirectInvocation(viewportId, overlayId, pInvocationPtr);
1180 return false;
1181 }
1182 // Can be called by client side to setup direct invocation interface for partial update instead of partial update list usage.
1188
1189 // Query snapshot
1190 virtual void querySnapshot(OdUInt8 *pScanlines, long minX, long minY, long nWidth, long nHeight)
1191 {
1193 getInformationalRedirection()->querySnapshot(pScanlines, minX, minY, nWidth, nHeight);
1194 }
1195
1196 // Renders viewport to selection texture. Return top object id inside rect(aPtDc[0], aPtDc[1]) in viewport.
1197 virtual void getSelectedObject(OdTrVisViewportId id, const OdGePoint2d* aPtDc, int numPoints, OdArray<OdTrVisId> &outIDs, OdTrVisGsMarker *outMarker = NULL) ODRX_OVERRIDE
1198 {
1200 getInformationalRedirection()->getSelectedObject(id, aPtDc, numPoints, outIDs, outMarker);
1201 }
1202
1203 // Allocate new resource sharing provider compatible with rendition
1210 // Extract local rendition-specific host service.
1212 {
1215 return nullptr;
1216 }
1217
1218 // Multithread processing flags
1225
1226 // Returns Id registrator, or NULL if no registration supported
1228 {
1231 return NULL;
1232 }
1233
1234 // Returns true if metafile streams accessible directly, returns stream by Id
1235 virtual bool queryMetafileStream(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pDisplayId,
1236 OdUInt32 nPathLength, const OdTrVisMetafileContainer **pStream)
1237 {
1239 return getInformationalRedirection()->queryMetafileStream(viewportId, overlayId, pDisplayId, nPathLength, pStream);
1240 return false;
1241 }
1242 // Unlock metafile stream, queried by queryMetafileStream method
1244 {
1247 return false;
1248 }
1249
1250 // Returns block metafile list in case if it is accessible.
1252 {
1254 return getInformationalRedirection()->queryBlockMetafilesList(blockId, numEntries);
1255 return NULL;
1256 }
1257
1258 // Returns extension object by Id.
1265
1266 // Returns non-kTrVisNegativeId in case if vectorizer supports ProgramID's embedded into metafile stream
1268 OdTrVisGeomType geomType = OdTrVisGeomType_Default, OdUInt16 attrFlags = 0, OdUInt16 shadingFlags = 0) const
1269 {
1271 return getInformationalRedirection()->queryProgramId(mode, vsId, geomType, attrFlags, shadingFlags);
1272 return kTrVisNegativeId;
1273 }
1274
1275 // GsFiler support
1276 virtual bool saveRenditionState(OdGsFiler *pFiler) const
1277 {
1280 return false;
1281 }
1282 virtual bool loadRenditionState(OdGsFiler *pFiler, OdTrVisIdMap *pIdMap)
1283 {
1285 return getInformationalRedirection()->loadRenditionState(pFiler, pIdMap);
1286 return false;
1287 }
1288
1289 // Mid-level callbacks
1290
1291 // Client information
1292
1293 // Returns rendering client settings.
1294 virtual void obtainClientSettings(ClientSettings &clientSets)
1295 {
1298 }
1299
1300 // Surface
1301
1302 // Called when output render surface parameters changed.
1303 virtual void onSurfaceChanged(const OdTrVisSurfaceDef &pDef)
1304 {
1305 if (hasRedirection())
1307 }
1308 // Called when rendering surface needs to be invalidated forcibly.
1310 {
1311 if (hasRedirection())
1313 }
1314
1315 // Overlays
1316
1317 // Called when new overlay added into device.
1318 virtual void onOverlayAdded(OdTrVisOverlayId overlayId, const OdTrVisOverlayDef &pDef)
1319 {
1320 if (hasRedirection())
1321 getRedirection()->onOverlayAdded(overlayId, pDef);
1322 }
1323 // Called when exist overlay removed from device.
1324 virtual void onOverlayDeleted(OdTrVisOverlayId overlayId)
1325 {
1326 if (hasRedirection())
1327 getRedirection()->onOverlayDeleted(overlayId);
1328 }
1329 // Called when overlay visibility changed.
1330 virtual void onOverlayVisibilityChanged(OdTrVisOverlayId overlayId, bool bVisibility)
1331 {
1332 if (hasRedirection())
1333 getRedirection()->onOverlayVisibilityChanged(overlayId, bVisibility);
1334 }
1335 // Called when overlay rendering order changed.
1336 virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId overlayId, OdInt16 nRenderOrder)
1337 {
1338 if (hasRedirection())
1339 getRedirection()->onOverlayRenderOrderChanged(overlayId, nRenderOrder);
1340 }
1341
1342 // Viewports
1343
1344 // Called when new viewport added into device.
1345 virtual void onViewportAdded(OdTrVisViewportId viewportId, const OdTrVisViewportDef &pDef)
1346 {
1347 if (hasRedirection())
1348 getRedirection()->onViewportAdded(viewportId, pDef);
1349 }
1350 // Called when viewport inserted in list with some index.
1351 virtual void onViewportInserted(OdTrVisViewportId viewportId, int nIndex, const OdTrVisViewportDef &pDef)
1352 {
1353 if (hasRedirection())
1354 getRedirection()->onViewportInserted(viewportId, nIndex, pDef);
1355 }
1356 // Called when viewport removed from device.
1357 virtual void onViewportDeleted(OdTrVisViewportId viewportId)
1358 {
1359 if (hasRedirection())
1360 getRedirection()->onViewportDeleted(viewportId);
1361 }
1362 // Called when viewport visibility changed.
1363 virtual void onViewportVisibilityChanged(OdTrVisViewportId viewportId, bool bVisibility)
1364 {
1365 if (hasRedirection())
1366 getRedirection()->onViewportVisibilityChanged(viewportId, bVisibility);
1367 }
1368
1369 // Primary viewports configuration
1370
1371 // Called when viewport view parameters is modified.
1373 {
1374 if (hasRedirection())
1375 getRedirection()->onViewportViewParamsModified(viewportId, pDef);
1376 }
1377 // Called when viewport linestyle settings is modified.
1379 {
1380 if (hasRedirection())
1381 getRedirection()->onViewportLineStylesModified(viewportId, pDef);
1382 }
1383 // Called when viewport fading settings is modified.
1385 {
1386 if (hasRedirection())
1387 getRedirection()->onViewportFadingModified(viewportId, pDef);
1388 }
1389 // Called when viewport lineweight settings is modified.
1391 {
1392 if (hasRedirection())
1393 getRedirection()->onViewportLineweightsModified(viewportId, pDef);
1394 }
1395 // Called when viewport rendering mode is modified.
1397 {
1398 if (hasRedirection())
1399 getRedirection()->onViewportShadingModified(viewportId, pDef);
1400 }
1401 // Called when viewport clipping region is modified.
1403 bool bNrcClipModified = true, bool bBorderModified = true)
1404 {
1405 if (hasRedirection())
1406 getRedirection()->onViewportClipModified(viewportId, pDef, bNrcClipModified, bBorderModified);
1407 }
1408
1409 // Extended viewports configuration
1410
1411 // Called when background stream in viewport is changed.
1413 {
1414 if (hasRedirection())
1415 getRedirection()->onViewportBackgroundChanged(viewportId, pDef);
1416 }
1417 // Called when viewport fog changed.
1418 virtual void onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef)
1419 {
1420 if (hasRedirection())
1421 getRedirection()->onViewportFogChanged(viewportId, pDef);
1422 }
1423 // Called when viewport sectioning modified.
1425 {
1426 if (hasRedirection())
1427 getRedirection()->onViewportSectioningChanged(viewportId, pDef);
1428 }
1429 // Called when viewport anti-aliasing setting changed.
1430 virtual void onViewportAntiAliasingChanged(OdTrVisViewportId viewportId, OdUInt32 nAntiAliasing)
1431 {
1432 if (hasRedirection())
1433 getRedirection()->onViewportAntiAliasingChanged(viewportId, nAntiAliasing);
1434 }
1435
1436 // Called when viewport ssao setting changed.
1438 {
1439 if (hasRedirection())
1440 getRedirection()->onViewportSSAOChanged(viewportId, bEnabled);
1441 }
1442
1443 // Viewport default lights configuration
1444
1445 // Called when viewport ambient light setting modified.
1446 virtual void onViewportAmbientLightChanged(OdTrVisViewportId viewportId, const OdTrVisMaterialColor &ambientLight)
1447 {
1448 if (hasRedirection())
1449 getRedirection()->onViewportAmbientLightChanged(viewportId, ambientLight);
1450 }
1451 // Called when viewport default light setting modified.
1452 virtual void onViewportDefaultLightsChanged(OdTrVisViewportId viewportId, bool bDefaultLightsOn,
1453 const OdTrVisLightDef *pLightsList = NULL, OdUInt32 nLightsListEntries = 0)
1454 {
1455 if (hasRedirection())
1456 getRedirection()->onViewportDefaultLightsChanged(viewportId, bDefaultLightsOn, pLightsList, nLightsListEntries);
1457 }
1458
1459 // Viewport lights management
1460
1461 // Called when light source added into viewport light sources list.
1463 OdUInt32 nOverrides = 0, const OdTrVisLightDef &pOverrides = OdTrVisLightDef())
1464 {
1465 if (hasRedirection())
1466 getRedirection()->onViewportLightAttached(viewportId, lightId, nOverrides, pOverrides);
1467 }
1468 // Called when light source removed from viewport light sources list.
1470 {
1471 if (hasRedirection())
1472 getRedirection()->onViewportLightDetached(viewportId, lightId);
1473 }
1474
1475 // Per-overlay viewport overrides
1476
1477 // Called when viewport needs override view parameters for specific overlay.
1478 virtual void onOverlayViewParamsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, bool bOverride,
1480 {
1481 if (hasRedirection())
1482 getRedirection()->onOverlayViewParamsOverride(viewportId, overlayId, bOverride, pDef);
1483 }
1484 // Called when viewport extents changed.
1485 virtual void onOverlayExtentsOverride(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisExtentsDef &pDef)
1486 {
1487 if (hasRedirection())
1488 getRedirection()->onOverlayExtentsOverride(viewportId, overlayId, pDef);
1489 }
1490
1491 // Viewports ordering lists
1492
1493 // Called when order of metafiles in viewport is changed.
1494 virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
1495 {
1496 if (hasRedirection())
1497 getRedirection()->onMetafileOrderChanged(viewportId, overlayId, pList, nEntries);
1498 }
1499 // Called when order of metafiles in viewport is changed (for obtain modified part of list by renderer).
1500 virtual void onMetafileOrderChanged(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen,
1501 const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)
1502 {
1503 if (hasRedirection())
1504 getRedirection()->onMetafileOrderChanged(viewportId, overlayId, nInvalidFrom, nInvalidLen, pValidFrom, nValidLen);
1505 }
1506 // Called when order of metafiles can be inherit from other source.
1507 virtual void onMetafileOrderInheritance( OdTrVisViewportId viewportId1, OdTrVisOverlayId overlayId1, OdTrVisViewportId viewportId2 )
1508 {
1509 if( hasRedirection() )
1510 getRedirection()->onMetafileOrderInheritance( viewportId1, overlayId1, viewportId2 );
1511 }
1512
1513 // Metafiles
1514
1515 // Called when new metafile added (returns visualId, equal to metafileId by default).
1517 {
1518 if (hasRedirection())
1519 return getRedirection()->onMetafileAdded(metafileId, pDef);
1520 return metafileId;
1521 }
1522 // Called when exist metafile deleted.
1523 virtual void onMetafileDeleted(OdTrVisMetafileId metafileId)
1524 {
1525 if (hasRedirection())
1526 getRedirection()->onMetafileDeleted(metafileId);
1527 }
1528 // Called when exist metafile changed.
1529 //virtual void onMetafileModified(OdTrVisMetafileId metafileId, const OdTrVisMetafileDef &pDef)
1530 //{
1531 // if (hasRedirection())
1532 // getRedirection()->onMetafileModified(metafileId, pDef);
1533 //}
1534 // Called when exist metafile extents updated (affected by transformation state branches).
1535 virtual void onMetafileExtentsUpdated(OdTrVisMetafileId metafileId, const OdGeExtents3d &extents)
1536 {
1537 if (hasRedirection())
1538 getRedirection()->onMetafileExtentsUpdated(metafileId, extents);
1539 }
1540 // Called when exist metafile visibility changed.
1541 virtual void onMetafileVisibilityChanged(OdTrVisMetafileId metafileId, bool bVisibility)
1542 {
1543 if (hasRedirection())
1544 getRedirection()->onMetafileVisibilityChanged(metafileId, bVisibility);
1545 }
1546 // Called when exist metafile highlighting changed.
1547 virtual void onMetafileHighlightingChanged(OdTrVisMetafileId metafileId, bool bHighlight)
1548 {
1549 if (hasRedirection())
1550 getRedirection()->onMetafileHighlightingChanged(metafileId, bHighlight);
1551 }
1552 // Called when exist metafile fading changed.
1553 virtual void onMetafileFadingChanged(OdTrVisMetafileId metafileId, bool bFade)
1554 {
1555 if (hasRedirection())
1556 getRedirection()->onMetafileFadingChanged(metafileId, bFade);
1557 }
1558
1559 // Lights
1560
1561 // Called when new light source added.
1562 virtual void onLightAdded(OdTrVisLightId lightId, const OdTrVisLightDef &pDef)
1563 {
1564 if (hasRedirection())
1565 getRedirection()->onLightAdded(lightId, pDef);
1566 }
1567 // Called when exist light source modified.
1568 virtual void onLightModified(OdTrVisLightId lightId, OdUInt32 nKindOfMod, const OdTrVisLightDef &pDef)
1569 {
1570 if (hasRedirection())
1571 getRedirection()->onLightModified(lightId, nKindOfMod, pDef);
1572 }
1573 // Called when exist light source deleted.
1574 virtual void onLightDeleted(OdTrVisLightId lightId)
1575 {
1576 if (hasRedirection())
1577 getRedirection()->onLightDeleted(lightId);
1578 }
1579
1580 // State branches (highlighting, hide, transform)
1581
1582 // Called when new state branch added.
1583 virtual void onStateBranchAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchDef &pDef)
1584 {
1585 if (hasRedirection())
1586 getRedirection()->onStateBranchAdded(stateBranchId, pDef);
1587 }
1588 // Called when exist state branch modified.
1590 bool bChildsModified, bool bMarkersModified)
1591 {
1592 if (hasRedirection())
1593 getRedirection()->onStateBranchModified(stateBranchId, pDef, bChildsModified, bMarkersModified);
1594 }
1595 // Called when exist state branch deleted.
1596 virtual void onStateBranchDeleted(OdTrVisStateBranchId stateBranchId)
1597 {
1598 if (hasRedirection())
1599 getRedirection()->onStateBranchDeleted(stateBranchId);
1600 }
1601 // Called to attach additional data to range of state branch markers.
1603 const OdTrVisPropertyDef &propDef)
1604 {
1605 if (hasRedirection())
1606 getRedirection()->onStateBranchMarkersRangeDataAdded(stateBranchId, range, propDef);
1607 }
1608 // Called to detach additional data from state branch markers range.
1614
1615 // Textures
1616
1617 // Called when new texture added.
1618 virtual void onTextureAdded(OdTrVisTextureId textureId, const OdTrVisTextureDef &pDef)
1619 {
1620 if (hasRedirection())
1621 getRedirection()->onTextureAdded(textureId, pDef);
1622 }
1623 // Called when exist texture deleted.
1624 virtual void onTextureDeleted(OdTrVisTextureId textureId)
1625 {
1626 if (hasRedirection())
1627 getRedirection()->onTextureDeleted(textureId);
1628 }
1629 // Called when texture flags modified.
1630 virtual void onTextureFlagsModified(OdTrVisTextureId textureId, OdUInt32 newFlags)
1631 {
1632 if (hasRedirection())
1633 getRedirection()->onTextureFlagsModified(textureId, newFlags);
1634 }
1635
1636
1637 // Materials
1638
1639 // Called when new material added.
1640 virtual void onMaterialAdded(OdTrVisMaterialId materialId, const OdTrVisMaterialDef &pDef)
1641 {
1642 if (hasRedirection())
1643 getRedirection()->onMaterialAdded(materialId, pDef);
1644 }
1645 // Called when exist material deleted.
1646 virtual void onMaterialDeleted(OdTrVisMaterialId materialId)
1647 {
1648 if (hasRedirection())
1649 getRedirection()->onMaterialDeleted(materialId);
1650 }
1651 // Called when new material reflection plane added.
1653 {
1654 if (hasRedirection())
1655 getRedirection()->onMaterialRefPlaneAdded(refPlaneId, pDef);
1656 }
1657 // Called when exist material reflection plane deleted.
1659 {
1660 if (hasRedirection())
1662 }
1663
1664 // Visual Styles
1665
1666 // Called when new visual style added.
1667 virtual void onVisualStyleAdded(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)
1668 {
1669 if (hasRedirection())
1670 getRedirection()->onVisualStyleAdded(visualStyleId, pDef);
1671 }
1672 // Called when exist visual style modified.
1673 virtual void onVisualStyleModified(OdTrVisVisualStyleId visualStyleId, const OdTrVisVisualStyle &pDef)
1674 {
1675 if (hasRedirection())
1676 getRedirection()->onVisualStyleModified(visualStyleId, pDef);
1677 }
1678 // Called when exist visual style deleted.
1679 virtual void onVisualStyleDeleted(OdTrVisVisualStyleId visualStyleId)
1680 {
1681 if (hasRedirection())
1682 getRedirection()->onVisualStyleDeleted(visualStyleId);
1683 }
1684
1685 // Layers
1686
1687 // Called when new layer added.
1688 virtual void onLayerAdded(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)
1689 {
1690 if (hasRedirection())
1691 getRedirection()->onLayerAdded(layerId, pDef);
1692 }
1693 // Called when exist layer modified.
1694 //virtual void onLayerModified(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)
1695 //{
1696 // if (hasRedirection())
1697 // getRedirection()->onLayerModified(layerId, pDef);
1698 //}
1699 // Called when exist layer deleted.
1700 virtual void onLayerDeleted(OdTrVisLayerId layerId)
1701 {
1702 if (hasRedirection())
1703 getRedirection()->onLayerDeleted(layerId);
1704 }
1705 // Called when exist layer visibility changed.
1706 virtual void onLayerVisibilityChanged(OdTrVisLayerId layerId, bool bVisibility)
1707 {
1708 if (hasRedirection())
1709 getRedirection()->onLayerVisibilityChanged(layerId, bVisibility);
1710 }
1711 // Called when exist layer fading changed.
1712 virtual void onLayerFadingChanged(OdTrVisLayerId layerId, bool bFade)
1713 {
1714 if (hasRedirection())
1715 getRedirection()->onLayerFadingChanged(layerId, bFade);
1716 }
1717 // Called when layer viewport-dependent properties changed.
1718 virtual void onLayerVpDepPropsOverride(OdTrVisLayerId layerId, OdTrVisViewportId viewportId, bool bOverride,
1719 const OdTrVisLayerProps &pProps = OdTrVisLayerProps())
1720 {
1721 if (hasRedirection())
1722 getRedirection()->onLayerVpDepPropsOverride(layerId, viewportId, bOverride, pProps);
1723 }
1724
1725 // Extension objects
1726
1727 // Called when new extension object added.
1729 {
1730 if (hasRedirection())
1731 getRedirection()->onExtensionObjectAdded(extId, pObj);
1732 }
1733 // Called when exist extension object deleted.
1735 {
1736 if (hasRedirection())
1738 }
1739 // Called to send special extension object specific data.
1741 {
1742 if (hasRedirection())
1743 getRedirection()->onExtensionObjectSpecificData(extId, nDataId, propDef);
1744 }
1745 // Called to change extension object visibility.
1746 virtual void onExtensionObjectVisibilityChanged(OdTrVisExtensionId extId, bool bVisibility)
1747 {
1748 if (hasRedirection())
1750 }
1751
1752 // Blocks
1753
1754 // Called when new block added.
1755 virtual void onBlockAdded(OdTrVisBlockId blockId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
1756 {
1757 if (hasRedirection())
1758 getRedirection()->onBlockAdded(blockId, pList, nEntries);
1759 }
1760 // Called when block display list changed.
1761 virtual void onBlockModified(OdTrVisBlockId blockId, OdUInt32 nInvalidFrom, OdUInt32 nInvalidLen,
1762 const OdTrVisDisplayId *pValidFrom, OdUInt32 nValidLen)
1763 {
1764 if (hasRedirection())
1765 getRedirection()->onBlockModified(blockId, nInvalidFrom, nInvalidLen, pValidFrom, nValidLen);
1766 }
1767 // Called when exist block deleted.
1768 virtual void onBlockDeleted(OdTrVisBlockId blockId)
1769 {
1770 if (hasRedirection())
1771 getRedirection()->onBlockDeleted(blockId);
1772 }
1773
1774 // Groups
1775
1776 // Called when new group added.
1777 virtual void onGroupAdded(OdTrVisGroupId groupId)
1778 {
1779 if (hasRedirection())
1780 getRedirection()->onGroupAdded(groupId);
1781 }
1782 // Called when exist group deleted.
1783 virtual void onGroupDeleted(OdTrVisGroupId groupId)
1784 {
1785 if (hasRedirection())
1786 getRedirection()->onGroupDeleted(groupId);
1787 }
1788 // Called to attach metafiles to group.
1789 virtual void onGroupMetafilesAttached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)
1790 {
1791 if (hasRedirection())
1792 getRedirection()->onGroupMetafilesAttached(groupId, pMetafilesList, nMetafiles);
1793 }
1794 // Called to detach metafiles from group (if no metafiles specified - clear entire list of groupped metafiles).
1795 virtual void onGroupMetafilesDetached(OdTrVisGroupId groupId, const OdTrVisMetafileId *pMetafilesList, OdUInt32 nMetafiles)
1796 {
1797 if (hasRedirection())
1798 getRedirection()->onGroupMetafilesDetached(groupId, pMetafilesList, nMetafiles);
1799 }
1800 // Called to delete all groupped metafiles from graphics scene.
1801 //virtual void onGroupMetafilesDeleted(OdTrVisGroupId groupId)
1802 //{
1803 // if (hasRedirection())
1804 // getRedirection()->onGroupMetafilesDeleted(groupId);
1805 //}
1806 // Called to change visibility state for all groupped metafiles.
1807 virtual void onGroupMetafilesVisibilityChanged(OdTrVisGroupId groupId, bool bVisibility)
1808 {
1809 if (hasRedirection())
1810 getRedirection()->onGroupMetafilesVisibilityChanged(groupId, bVisibility);
1811 }
1812 // Called to change highlighting state for all groupped metafiles.
1813 virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId groupId, bool bHighlight)
1814 {
1815 if (hasRedirection())
1817 }
1818 // Called to change fading state for all groupped metafiles.
1819 virtual void onGroupMetafilesFadingChanged(OdTrVisGroupId groupId, bool bFade)
1820 {
1821 if (hasRedirection())
1823 }
1824
1825 // Properties
1826
1827 // Metafile-related properties.
1828 // Called to attach property to metafile.
1829 virtual void onMetafilePropertyAttached(OdTrVisMetafileId metafileId, const OdTrVisPropertyDef &propDef)
1830 {
1831 if (hasRedirection())
1832 getRedirection()->onMetafilePropertyAttached(metafileId, propDef);
1833 }
1834 // Called to detach property from metafile.
1836 {
1837 if (hasRedirection())
1838 getRedirection()->onMetafilePropertyDetached(metafileId, propType);
1839 }
1840 // Group-related properties.
1841 // Called to attach property to group.
1842 virtual void onGroupPropertyAttached(OdTrVisGroupId groupId, const OdTrVisPropertyDef &propDef)
1843 {
1844 if (hasRedirection())
1845 getRedirection()->onGroupPropertyAttached(groupId, propDef);
1846 }
1847 // Called to detach property from group.
1849 {
1850 if (hasRedirection())
1851 getRedirection()->onGroupPropertyDetached(groupId, propType);
1852 }
1853 // Layer-related properties.
1854 // Called to attach property to layer.
1855 virtual void onLayerPropertyAttached(OdTrVisLayerId layerId, const OdTrVisPropertyDef &propDef)
1856 {
1857 if (hasRedirection())
1858 getRedirection()->onLayerPropertyAttached(layerId, propDef);
1859 }
1860 // Called to detach property from layer.
1862 {
1863 if (hasRedirection())
1864 getRedirection()->onLayerPropertyDetached(layerId, propType);
1865 }
1866 // VisualStyle-related properties.
1867 // Called to attach property to visual style.
1869 {
1870 if (hasRedirection())
1871 getRedirection()->onVisualStylePropertyAttached(visualStyleId, propDef);
1872 }
1873 // Called to detach property from visual style.
1875 {
1876 if (hasRedirection())
1877 getRedirection()->onVisualStylePropertyDetached(visualStyleId, propType);
1878 }
1879 // Material-related properties.
1880 // Called to attach property to material.
1881 virtual void onMaterialPropertyAttached(OdTrVisMaterialId materialId, const OdTrVisPropertyDef &propDef)
1882 {
1883 if (hasRedirection())
1884 getRedirection()->onMaterialPropertyAttached(materialId, propDef);
1885 }
1886 // Called to detach property from material.
1888 {
1889 if (hasRedirection())
1890 getRedirection()->onMaterialPropertyDetached(materialId, propType);
1891 }
1892 // Texture-related properties.
1893 // Called to attach property to texture.
1894 virtual void onTexturePropertyAttached(OdTrVisTextureId textureId, const OdTrVisPropertyDef &propDef)
1895 {
1896 if (hasRedirection())
1897 getRedirection()->onTexturePropertyAttached(textureId, propDef);
1898 }
1899 // Called to detach property from texture.
1901 {
1902 if (hasRedirection())
1903 getRedirection()->onTexturePropertyDetached(textureId, propType);
1904 }
1905 // Light-related properties.
1906 // Called to attach property to light source.
1907 virtual void onLightPropertyAttached(OdTrVisLightId lightId, const OdTrVisPropertyDef &propDef)
1908 {
1909 if (hasRedirection())
1910 getRedirection()->onLightPropertyAttached(lightId, propDef);
1911 }
1912 // Called to detach property from light source.
1914 {
1915 if (hasRedirection())
1916 getRedirection()->onLightPropertyDetached(lightId, propType);
1917 }
1918 // StateBranch-related properties.
1919 // Called to attach property to state branch.
1921 {
1922 if (hasRedirection())
1923 getRedirection()->onStateBranchPropertyAttached(stateBranchId, propDef);
1924 }
1925 // Called to detach property from state branch.
1927 {
1928 if (hasRedirection())
1929 getRedirection()->onStateBranchPropertyDetached(stateBranchId, propType);
1930 }
1931 // Viewport-related properties.
1932 // Called to attach property to viewport.
1933 virtual void onViewportPropertyAttached(OdTrVisViewportId viewportId, const OdTrVisPropertyDef &propDef)
1934 {
1935 if (hasRedirection())
1936 getRedirection()->onViewportPropertyAttached(viewportId, propDef);
1937 }
1938 // Called to detach property from viewport.
1940 {
1941 if (hasRedirection())
1942 getRedirection()->onViewportPropertyDetached(viewportId, propType);
1943 }
1944 // Overlay-related properties.
1945 // Called to attach property to overlay.
1946 virtual void onOverlayPropertyAttached(OdTrVisOverlayId overlayId, const OdTrVisPropertyDef &propDef)
1947 {
1948 if (hasRedirection())
1949 getRedirection()->onOverlayPropertyAttached(overlayId, propDef);
1950 }
1951 // Called to detach property from overlay.
1953 {
1954 if (hasRedirection())
1955 getRedirection()->onOverlayPropertyDetached(overlayId, propType);
1956 }
1957 // ExtensionObject-related properties.
1958 // Called to attach property to extension object.
1960 {
1961 if (hasRedirection())
1963 }
1964 // Called to detach property from extension object.
1970 // Block-related properties.
1971 // Called to attach property to block.
1972 virtual void onBlockPropertyAttached(OdTrVisBlockId blockId, const OdTrVisPropertyDef &propDef)
1973 {
1974 if (hasRedirection())
1975 getRedirection()->onBlockPropertyAttached(blockId, propDef);
1976 }
1977 // Called to detach property from viewport.
1979 {
1980 if (hasRedirection())
1981 getRedirection()->onBlockPropertyDetached(blockId, propType);
1982 }
1983};
1984
1989{
1990 protected:
1994 public:
1996 bool bReentrant = true, bool bRender = true)
1997 : m_pRendition(pRendition), m_pRenderClient(pDevice), m_bRender(bRender)
1998 { if (pRendition)
1999 { if (pRendition->isWithinDeviceUpdate())
2000 { if (!bReentrant)
2001 throw OdError(eAlreadyActive);
2002 m_pRendition = NULL;
2003 } else
2004 pRendition->onDeviceUpdateBegin(pDevice);
2005 }
2006 }
2007 bool isReentered() const { return m_pRendition == NULL; }
2012};
2013
2014#include "TD_PackPop.h"
2015
2016#endif // ODTRVISRENDITION
false
Definition DimVarDefs.h:165
OdArray< OdGsDCRect, OdMemoryAllocator< OdGsDCRect > > OdGsDCRectArray
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:135
OdUInt64 OdTrVisGsMarker
Definition TrVisDefs.h:87
OdTrVisId OdTrVisVisualStyleId
Definition TrVisDefs.h:120
OdTrVisId OdTrVisGroupId
Definition TrVisDefs.h:126
OdTrVisId OdTrVisOverlayId
Definition TrVisDefs.h:124
OdTrVisId OdTrVisRefPlaneId
Definition TrVisDefs.h:110
OdTrVisId OdTrVisViewportId
Definition TrVisDefs.h:103
OdTrVisId OdTrVisProgramId
Definition TrVisDefs.h:112
OdTrVisId OdTrVisMaterialId
Definition TrVisDefs.h:109
OdTrVisId OdTrVisExtensionId
Definition TrVisDefs.h:128
OdTrVisId OdTrVisLayerId
Definition TrVisDefs.h:122
OdTrVisId OdTrVisStateBranchId
Definition TrVisDefs.h:118
OdTrVisId OdTrVisDisplayId
Definition TrVisDefs.h:114
OdTrVisId OdTrVisTextureId
Definition TrVisDefs.h:108
OdTrVisId OdTrVisBlockId
Definition TrVisDefs.h:130
OdTrVisId OdTrVisLightId
Definition TrVisDefs.h:116
OdTrVisId OdTrVisMetafileId
Definition TrVisDefs.h:105
OdUInt64 OdTrVisId
Definition TrVisDefs.h:101
OdSmartPtr< OdTrVisExtensionObject > OdTrVisExtensionObjectPtr
@ OdTrVisGeomType_Default
OdSmartPtr< OdTrVisRendition > OdTrVisRenditionPtr
OdSmartPtr< OdTrVisDirectRenderPartialUpdateInvocation > OdTrVisDirectRenderPartialUpdateInvocationPtr
OdSmartPtr< OdTrVisSharingProviderClient > OdTrVisSharingProviderClientPtr
RenderMode
Definition Gs.h:149
virtual void onStateBranchModified(OdTrVisStateBranchId, const OdTrVisStateBranchDef &, bool, bool)
virtual void onStateBranchMarkersRangeDataRemoved(OdTrVisStateBranchId, const OdTrVisStateBranchMarkersRange &)
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 onTextureFlagsModified(OdTrVisTextureId, OdUInt32)
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 onViewportBackgroundChanged(OdTrVisViewportId, const OdTrVisBackgroundDef &)
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 onMaterialRefPlaneDeleted(OdTrVisRefPlaneId)
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 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 onMetafileHighlightingChanged(OdTrVisMetafileId, bool)
virtual void onViewportAntiAliasingChanged(OdTrVisViewportId, OdUInt32)
virtual OdTrRndLocalRenditionHost * localRenditionHost()
virtual void onMetafileExtentsUpdated(OdTrVisMetafileId, const OdGeExtents3d &)
virtual IdRegistrator * idRegistrator() const
virtual void onGroupDeleted(OdTrVisGroupId)
virtual void onMaterialRefPlaneAdded(OdTrVisRefPlaneId, const OdTrVisRefPlaneDef &)
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 onViewportSectioningChanged(OdTrVisViewportId, const OdTrVisSectionDef &)
virtual void onOverlayAdded(OdTrVisOverlayId, const OdTrVisOverlayDef &)
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 onStateBranchMarkersRangeDataAdded(OdTrVisStateBranchId, const OdTrVisStateBranchMarkersRange &, const OdTrVisPropertyDef &)
virtual void onMetafileFadingChanged(OdTrVisMetafileId, bool)
virtual void onTexturePropertyAttached(OdTrVisTextureId, const OdTrVisPropertyDef &)
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 getSelectedObject(OdTrVisViewportId, const OdGePoint2d *, int, OdArray< OdTrVisId > &, OdTrVisGsMarker *=NULL) ODRX_OVERRIDE
virtual void onViewportFogChanged(OdTrVisViewportId, const OdTrVisFogDef &)
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, const OdGePoint2d *aPtDc, int numPoints, OdArray< OdTrVisId > &outIDs, OdTrVisGsMarker *outMarker=NULL)=0
virtual OdTrRndLocalRenditionHost * localRenditionHost()=0
static const double kDisplayMultiDrawOrderMarker
virtual void onMaterialRefPlaneDeleted(OdTrVisRefPlaneId refPlaneId)=0
virtual void onLayerAdded(OdTrVisLayerId layerId, const OdTrVisLayerDef &pDef)=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 onStateBranchMarkersRangeDataRemoved(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchMarkersRange &range)=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 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 onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef)=0
virtual void onMetafileVisibilityChanged(OdTrVisMetafileId metafileId, bool bVisibility)=0
bool isSupportGPUSelection() const
virtual void onViewportPropertyAttached(OdTrVisViewportId viewportId, const OdTrVisPropertyDef &propDef)=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 onViewportBackgroundChanged(OdTrVisViewportId viewportId, const OdTrVisBackgroundDef &pDef)=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 void onMaterialRefPlaneAdded(OdTrVisRefPlaneId refPlaneId, const OdTrVisRefPlaneDef &pDef)=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 onMetafileExtentsUpdated(OdTrVisMetafileId metafileId, const OdGeExtents3d &extents)=0
virtual void onSurfaceInvalidated()=0
virtual void onOverlayDeleted(OdTrVisOverlayId overlayId)=0
virtual void onTextureFlagsModified(OdTrVisTextureId textureId, OdUInt32 newFlags)=0
virtual void onOverlayRenderOrderChanged(OdTrVisOverlayId overlayId, OdInt16 nRenderOrder)=0
virtual void onViewportSectioningChanged(OdTrVisViewportId viewportId, const OdTrVisSectionDef &pDef)=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
virtual void onStateBranchMarkersRangeDataAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchMarkersRange &range, const OdTrVisPropertyDef &propDef)=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 onMaterialRefPlaneDeleted(OdTrVisRefPlaneId refPlaneId)
virtual void onMetafileDeleted(OdTrVisMetafileId metafileId)
virtual void onSurfaceInvalidated()
const OdTrVisRendition * getRedirection() const
virtual void onLayerPropertyAttached(OdTrVisLayerId layerId, const OdTrVisPropertyDef &propDef)
OdTrVisRendition * getRedirection()
virtual OdTrRndLocalRenditionHost * localRenditionHost()
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 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)
virtual void onViewportLineStylesModified(OdTrVisViewportId viewportId, const OdTrVisViewportLineStyleDef &pDef)
virtual void onMetafileHighlightingChanged(OdTrVisMetafileId metafileId, bool bHighlight)
virtual void onStateBranchMarkersRangeDataAdded(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchMarkersRange &range, const OdTrVisPropertyDef &propDef)
virtual void onGroupMetafilesHighlightingChanged(OdTrVisGroupId groupId, bool bHighlight)
virtual bool queryMetafileStream(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pDisplayId, OdUInt32 nPathLength, const OdTrVisMetafileContainer **pStream)
virtual void onMetafileExtentsUpdated(OdTrVisMetafileId metafileId, const OdGeExtents3d &extents)
virtual void onViewportViewParamsModified(OdTrVisViewportId viewportId, const OdTrVisViewParamsDef &pDef)
virtual void onViewportShadingModified(OdTrVisViewportId viewportId, const OdTrVisViewportShadingDef &pDef)
virtual void onTextureAdded(OdTrVisTextureId textureId, const OdTrVisTextureDef &pDef)
virtual void onStateBranchPropertyDetached(OdTrVisStateBranchId stateBranchId, OdTrVisPropertyDef::PropertyType propType)
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 onTextureFlagsModified(OdTrVisTextureId textureId, OdUInt32 newFlags)
virtual void onPartialUpdateList(OdTrVisViewportId viewportId, OdTrVisOverlayId overlayId, const OdTrVisDisplayId *pList, OdUInt32 nEntries)
virtual void onViewportBackgroundChanged(OdTrVisViewportId viewportId, const OdTrVisBackgroundDef &pDef)
virtual void onMaterialRefPlaneAdded(OdTrVisRefPlaneId refPlaneId, const OdTrVisRefPlaneDef &pDef)
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 onViewportSectioningChanged(OdTrVisViewportId viewportId, const OdTrVisSectionDef &pDef)
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 getSelectedObject(OdTrVisViewportId id, const OdGePoint2d *aPtDc, int numPoints, OdArray< OdTrVisId > &outIDs, OdTrVisGsMarker *outMarker=NULL) ODRX_OVERRIDE
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)
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 onStateBranchMarkersRangeDataRemoved(OdTrVisStateBranchId stateBranchId, const OdTrVisStateBranchMarkersRange &range)
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)
virtual void onViewportFogChanged(OdTrVisViewportId viewportId, const OdTrVisFogDef &pDef)
GLuint GLsizei GLsizei GLint GLenum * type
Definition gles2_ext.h:274
GLenum GLint * range
Definition gles2_ext.h:563
OdTrVisInfoString m_glSLVersion
OdTrVisInfoString m_glExtensions
void setSupportNonPow2TexturesWrapping(bool bSet)
bool overridenLutPaletteState(bool bDeviceSetting) const
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)