24#ifndef ODGSBASEVECTORIZEDEVICE_INC
25#define ODGSBASEVECTORIZEDEVICE_INC
97 kInvalid = kFirstFlag << 0,
98 kSortRenderTypes = kFirstFlag << 1,
99 kSpatialIndexDisabled = kFirstFlag << 2,
100 kDynamicHighlight = kFirstFlag << 3,
101 kDynamicSubhighlight = kFirstFlag << 4,
102 kSupportBlocks = kFirstFlag << 5,
103 kSupportOverlays = kFirstFlag << 6,
104 kSupportComposition = kFirstFlag << 7,
105 kEnableComposition = kFirstFlag << 8,
106 kMtDisplay = kFirstFlag << 9,
107 kUseSectionGeometryMap = kFirstFlag << 10,
108 kUseVpLtypeScaleMult = kFirstFlag << 11,
109 kUseVpFilterFunction = kFirstFlag << 12,
110 kCullingVolumeEnabled = kFirstFlag << 13,
111 kDisplayOffLayers = kFirstFlag << 14,
112 kSupportInteractiveView = kFirstFlag << 15,
113 kHighlightTwoPass = kFirstFlag << 16,
114 kSupportSelectionStyles = kFirstFlag << 17,
115 kSuppressHide = kFirstFlag << 18,
117 kLastFlag = kSuppressHide
382 bool enableLayerVisibilityPerView =
false);
535 bool sortRenderTypes()
const;
536 void setSortRenderTypes(
bool flag);
547 bool supportOverlays()
const;
554 void setSupportOverlays(
bool bFlag);
584 bool isSpatialIndexDisabled()
const;
590 void disableSpatialIndex(
bool bSet);
597 bool isCullingVolumeEnabled()
const;
603 void enableCullingVolume(
bool bSet);
610 bool supportHighlightTwoPass()
const;
616 void setSupportHighlightTwoPass(
bool bOn);
623 bool isMtDisplay()
const;
630 bool supportDynamicHighlight()
const;
637 bool supportDynamicSubhighlight()
const;
644 bool supportSelectionStyles()
const;
651 bool supportBlocks()
const;
660 bool supportComposition()
const;
669 bool compositionEnabled()
const;
677 void enableComposition(
bool bSet);
684 bool isDisplayOffLayersEnabled()
const;
690 void enableDisplayOffLayers(
bool bSet);
701 return m_slotManager.
contains(acgiId);
822 friend class DisplayScheduler;
823 friend class OdGsNodeContext;
837 mutable OdMutex m_mtInvalidRects;
OdArray< OdRxObject *, OdMemoryAllocator< OdRxObject * > > OdDbBaseDatabaseRawPtrArray
OdArray< ODCOLORREF, OdMemoryAllocator< ODCOLORREF > > ODGSPALETTE
OdSmartPtr< OdGiTransientManager > OdGiTransientManagerPtr
#define GS_TOOLKIT_EXPORT
#define SETBIT(flags, bit, value)
#define GETBIT(flags, bit)
bool mergeInvalidRects(OdGsDCRect *pRect, OdUInt32 nOverlays=kGsAllOverlays) const
bool containsInvalidRects(const OdGsViewImpl &view, bool bIfHas=false, OdUInt32 nOverlays=kGsAllOverlays) const
void clearInvalidRects(OdUInt32 nOverlays=kGsAllOverlays)
bool hasInvalidRects(OdUInt32 nOverlays=kGsAllOverlays) const
bool eraseView(int viewIndex)
ODCOLORREF getBackgroundColor()
virtual bool isSupportDeviceStateSaving() const
void onDisplayChange(int bitsPerPixel, int xPixels, int yPixels)
void setSupportHighlightTwoPass(bool bOn)
bool isValidViewportId(const OdUInt32 acgiId) const
bool supportBlocks() const
const OdGsDCRect & outputRect() const
int isOverlayRequireUpdate(OdGsOverlayId overlayId) const
GsDeviceOverlayDataContainer m_overlayData
virtual void update(OdGsDCRect *pUpdatedRect)
void setInvalid(bool bSet)
OdGsModel::RenderType transientRenderType() const
void unregisterOverlay(OdGsViewImpl *pView, const OdGsModel *pModel)
void clearSectionGeometryMap()
void setTransientRenderType(OdGsModel::RenderType renderType)
OdGsModel::RenderType m_transientRenderType
const OdGsViewImpl * viewImplAt(int viewIndex) const
void disableSpatialIndex(bool bSet)
void onSize(const OdGsDCRect &outputRect)
virtual bool supportParallelDisplay() const
virtual void updateScreen()
GsVectPerformanceData m_vectPerfData
bool useVpLtypeScaleMult() const
OdSmartPtr< OdGiContext > m_pUserContext
void setUpdateManager(OdGsUpdateManagerPtr pManager)
const ODCOLORREF * getPalette() const
bool isDisplayOffLayersEnabled() const
void enableDisplayOffLayers(bool bSet)
OdRxObjectPtr m_sectionManager
void onViewAdded(OdGsView *pView)
void invalidate(const OdGsViewImpl *pView, const OdGsDCRect &screenRect)
bool saveDeviceState(OdGsFiler *pFiler) const
bool isModelCompatible(OdGsModel *pModel) const
void invalidate(const OdGsDCRect &screenRect)
bool useVpFilterFunction() const
bool isSuppressHide() const
bool supportDynamicHighlight() const
bool supportDynamicSubhighlight() const
virtual OdGsOverlayId renderTypeOverlay(OdGsModel::RenderType renderType) const
bool supportInteractiveViewMode() const
OdRxObjectPtr getSectionGeometryMap()
const OdGsView * rootView() const
void setLogicalPalette(const ODCOLORREF *logicalPalette, int numColors)
bool setBackgroundColor(ODCOLORREF backgroundColor)
void collectInvalidRectsFromVports(OdGsOverlayId nOverlay, GsDeviceOverlayData &d) const
~OdGsBaseVectorizeDevice()
bool supportHighlightTwoPass() const
void invalidate(const OdGsModel *pModel, const OdGsDCRect &screenRect)
OdGsModelPtr createModel()
virtual void onOverlayActivated(OdGsOverlayId nOverlay)
OdGsUpdateManagerPtr getUpdateManager(bool createIfNotExist=false)
void getSize(OdGsDCRect &outputRect) const
ODCOLORREF getPaletteBackground() const
const ODCOLORREF * getLogicalPalette(int &numColors) const
bool supportOverlays() const
OdGsView * viewAt(int viewIndex)
void enableCullingVolume(bool bSet)
virtual OdUInt32 renderTypeWeight(OdGsModel::RenderType renderType) const
virtual bool supportPartialScreenUpdate() const
void setSupportInteractiveViewMode(bool bSet)
@ kSupportSelectionStyles
bool isCullingVolumeEnabled() const
OdRxObjectPtr deviceSelfReference()
void viewUpdateScreen(OdGsBaseVectorizeView *pView, bool bUpdate)
OdGsUpdateManagerPtr m_pUpdateManager
virtual void onOverlayDeactivated(OdGsOverlayId nOverlay)
bool eraseView(OdGsView *pView)
bool isSpatialIndexDisabled() const
OdRxObjectPtr m_sectionGeometryMap
virtual void invalidate(OdUInt32 nOverlays, const OdGsDCRect &screenRect)
virtual bool saveLinkedDeviceState(OdGsFiler *pFiler) const
void registerOverlay(OdGsViewImpl *pView, const OdGsModel *pModel)
void setValid(bool bFlag)
void setSortRenderTypes(bool flag)
OdGsBaseVectorizeDevice()
ODCOLORREF getColor(OdUInt16 colorIndex) const
bool loadDeviceState(OdGsFiler *pFiler)
OdGsOverlayId gsModelOverlay(const OdGsModel *pModel) const
virtual bool supportPartialUpdate() const
void addView(OdGsView *pView)
ODRX_DECLARE_MEMBERS(OdGsBaseVectorizeDevice)
virtual bool loadLinkedDeviceState(OdGsFiler *pFiler)
const OdGsDCRectArray * invalidRects(OdGsOverlayId overlayId) const
bool supportComposition() const
const OdGsView * viewAt(int viewIndex) const
OdGiTransientManagerPtr m_transientManager
void onRealizeBackgroundPalette()
void setSupportOverlays(bool bFlag)
void getInvalidRectsFromVports(OdUInt32 nOverlays=kGsAllOverlays)
virtual void updateGeometry()
OdArray< OdGsViewPtr > m_views
bool sortRenderTypes() const
bool compositionEnabled() const
void enableComposition(bool bSet)
bool supportSelectionStyles() const
void setUserGiContext(OdGiContext *pUserGiContext)
OdRxObject * mtServices()
OdRxObjectPtr m_pDeviceRef
OdGiContext * userGiContext() const
virtual void invalidate(OdUInt32 nOverlays)
virtual bool loadClientDeviceState(OdGsFiler *pFiler)
void invalidateRegion(const OdGiPathNode &path)
const OdGsDCRectArray & invalidRects() const
OdGsUpdateManager * updateManager()
virtual bool saveClientDeviceState(OdGsFiler *pFiler) const
OdGsViewPtr createView(const OdGsClientViewInfo *pViewInfo=0, bool enableLayerVisibilityPerView=false)
void setTransientManager(OdGiTransientManager *pManager)
void insertView(int viewIndex, OdGsView *pView)
virtual OdGiSectionGeometryManager * getSectionGeometryManager()
OdGiTransientManager * transientManager()
OdRxDictionaryPtr properties()
void getSnapShot(OdGiRasterImagePtr &pImage, const OdGsDCRect ®ion)
OdGsViewImpl * viewImplAt(int viewIndex)
void onRealizeForegroundPalette()
virtual void getSize(OdGsDCRect &outputRect) const =0
virtual const ODCOLORREF * getLogicalPalette(int &numColors) const =0
bool contains(OdSlotId slotId) const
OdGsDCRectArray m_invalidRects
bool m_bHasInvalidRectsInVports