CFx SDK Documentation  2020SP3
GsUpdateManager.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2017, 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 Teigha(R) software pursuant to a license
16 // agreement with Open Design Alliance.
17 // Teigha(R) Copyright (C) 2002-2017 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 
24 #ifndef __ODGSUPDATEMANAGER_H__
25 #define __ODGSUPDATEMANAGER_H__
26 
27 class OdDbStub;
28 class OdGsEntityNode;
29 class OdRxObject;
30 class OdGsViewImpl;
31 
32 #include "Gs/GsExport.h"
33 #include "Ge/GeExtents3d.h"
34 
35 #include "TD_PackPush.h"
36 
44 {
45 public:
47 
52  {
53  kKeepDrawOrder = 0, //Keep draw order
54  kFilterByLimit = (1 << 0) //Filtration by memory limit (CLOUD)
55  };
56 
60  enum Action
61  {
64  kNoChanges
65  };
66 
68  {
69  protected:
71  public:
72  OdGsUpdateManagerElement() : m_stateFlags( 0 ){ };
73  OdUInt8 state() const { return m_stateFlags; }
74  void setState( OdUInt8 state ) { m_stateFlags = state; }
75  };
76 
86  typedef void (*UpdateManagerProcessCallback)( Action action, OdUInt32 viewportId, OdDbStub* drawableId, OdGsEntityNode* pNode, OdGsUpdateManagerElement* pElement );
87 
92  {
97  };
98 
99 public:
103  virtual UpdateManagerSettings settings() const = 0;
104 
108  virtual void setSettings( const UpdateManagerSettings& ) = 0;
109 
117  virtual void addElement( OdUInt32 viewportId, OdGsEntityNode* pNode, OdGsUpdateManagerElement* pElement ) = 0;
118 
130  virtual void addElement( OdUInt32 viewportId, OdGsEntityNode* pNode, OdGsUpdateManagerElement* pElement, OdUInt64 nLength, OdGsViewImpl* pView, const OdGeExtents3d& extents, bool bSetZeroWeight = false ) = 0;
131 
135  virtual void setProcessCallback( UpdateManagerProcessCallback ) = 0;
136 
140  virtual void process() = 0;
141 
145  virtual void reset() = 0;
146 
153  virtual void removeElement( OdUInt32 viewportId, OdGsEntityNode* pNode, OdGsUpdateManagerElement* pElement ) = 0;
154 };
155 
156 #include "TD_PackPop.h"
157 
158 #endif // __ODGSUPDATEMANAGER_H__
OdGsUpdateManager::UpdateManagerSettings::type
FiltrationType type
Definition: GsUpdateManager.h:93
OdGsUpdateManager::kAdd
@ kAdd
Definition: GsUpdateManager.h:62
OdGsUpdateManager::Action
Action
Definition: GsUpdateManager.h:61
OdGsUpdateManager::addElement
virtual void addElement(OdUInt32 viewportId, OdGsEntityNode *pNode, OdGsUpdateManagerElement *pElement, OdUInt64 nLength, OdGsViewImpl *pView, const OdGeExtents3d &extents, bool bSetZeroWeight=false)=0
OdGsUpdateManager::UpdateManagerSettings::nMinMemoryLimit
OdUInt64 nMinMemoryLimit
Definition: GsUpdateManager.h:95
OdGsUpdateManager::OdGsUpdateManagerElement
Definition: GsUpdateManager.h:68
OdUInt8
unsigned char OdUInt8
Definition: OdPlatformSettings.h:759
OdGsUpdateManager::OdGsUpdateManagerElement::state
OdUInt8 state() const
Definition: GsUpdateManager.h:73
OdGsUpdateManager::kRemove
@ kRemove
Definition: GsUpdateManager.h:63
OdGsUpdateManager::FiltrationType
FiltrationType
Definition: GsUpdateManager.h:52
OdRxObject
Definition: RxObject.h:564
GeExtents3d.h
TD_PackPop.h
OdGsUpdateManager
Definition: GsUpdateManager.h:44
OdUInt32
unsigned int OdUInt32
Definition: OdPlatformSettings.h:783
OdGsUpdateManager::UpdateManagerSettings::nClientCurrentHeapUsage
OdUInt64 nClientCurrentHeapUsage
Definition: GsUpdateManager.h:96
OdGsUpdateManager::OdGsUpdateManagerElement::setState
void setState(OdUInt8 state)
Definition: GsUpdateManager.h:74
OdGsUpdateManager::reset
virtual void reset()=0
OdGsUpdateManager::setSettings
virtual void setSettings(const UpdateManagerSettings &)=0
OdGsUpdateManager::ODRX_DECLARE_MEMBERS
ODRX_DECLARE_MEMBERS(OdGsUpdateManager)
OdGsViewImpl
Definition: GsViewImpl.h:58
OdGsUpdateManager::UpdateManagerSettings
Definition: GsUpdateManager.h:92
OdGsUpdateManager::OdGsUpdateManagerElement::m_stateFlags
OdUInt8 m_stateFlags
Definition: GsUpdateManager.h:70
TD_PackPush.h
GsExport.h
OdGsUpdateManager::UpdateManagerSettings::nMemoryLimit
OdUInt64 nMemoryLimit
Definition: GsUpdateManager.h:94
OdGsUpdateManager::setProcessCallback
virtual void setProcessCallback(UpdateManagerProcessCallback)=0
OdGeExtents3d
Definition: GeExtents3d.h:45
GS_TOOLKIT_EXPORT
#define GS_TOOLKIT_EXPORT
Definition: GsExport.h:37
OdGsUpdateManager::addElement
virtual void addElement(OdUInt32 viewportId, OdGsEntityNode *pNode, OdGsUpdateManagerElement *pElement)=0
OdGsUpdateManager::removeElement
virtual void removeElement(OdUInt32 viewportId, OdGsEntityNode *pNode, OdGsUpdateManagerElement *pElement)=0
OdGsUpdateManager::settings
virtual UpdateManagerSettings settings() const =0
void
typedef void(APIENTRYP PFNGLACTIVETEXTUREPROC)(GLenum texture)
OdGsUpdateManager::OdGsUpdateManagerElement::OdGsUpdateManagerElement
OdGsUpdateManagerElement()
Definition: GsUpdateManager.h:72
OdGsEntityNode
Definition: GsEntityNode.h:103
OdUInt64
Definition: Int64.h:137
OdGsUpdateManager::process
virtual void process()=0