VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectGeometryUpdateSystem.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2025 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
15 
16 #include <mutex>
17 #include <vector>
18 
19 namespace osg
20 {
21  class FrameStamp;
22 }
23 
24 namespace makVrv
25 {
26  // Forward declarations.
27  class DtIndirectGeometry;
29 
30 
33 
35  template <>
36  inline const char* creatorTypeName<DtIndirectGeometryUpdateSystem>(void) { return "DtIndirectGeometryUpdateSystemCreator"; }
37 
38 
52  {
53  public:
54 
57  static DtIndirectGeometryUpdateSystem& instance(DtDe& de);
58 
60  static void registerInstance(DtDe& de, DtIndirectGeometryUpdateSystem* system);
61 
63  static const std::string& theClassName();
64 
65  public:
66 
68 
71  const DtIndirectGeometryUpdateSystem& other) = delete;
72 
75  const DtIndirectGeometryUpdateSystem&& other) = delete;
76 
79  const DtIndirectGeometryUpdateSystem& other) = delete;
80 
83  const DtIndirectGeometryUpdateSystem&& other) = delete;
84 
85 
86  public:
87 
94  virtual void registerComponent(DtIndirectGeometry* component);
95 
100  virtual void unregisterComponent(const DtIndirectGeometry* component);
101 
103  virtual void update(const osg::FrameStamp* frameStamp);
104 
105  protected:
106 
110 
111  protected:
112 
114 
115  std::mutex myComponentMutex;
116  std::vector<DtIndirectGeometry*> myComponents;
117  };
118 
119 }
120 
121 
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
const char * creatorTypeName< DtIndirectGeometryUpdateSystem >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectGeometryUpdateSystem.h:36
DtDe & myDe
Definition: DtIndirectGeometryUpdateSystem.h:113
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:23
\ ::, which allows us to hook into our indirect engine to render using indirect rendering...
Definition: DtIndirectGeometry.h:120
DtVirtualBaseClassCreator< DtIndirectGeometryUpdateSystem > DtIndirectGeometryUpdateSystemCreator
creator
Definition: DtIndirectGeometryUpdateSystem.h:28
std::vector< DtIndirectGeometry * > myComponents
Definition: DtIndirectGeometryUpdateSystem.h:116
The DtIndirectGeometryUpdateSystem class provides a system for updating DtIndirectGeometry objects...
Definition: DtIndirectGeometryUpdateSystem.h:51
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
std::mutex myComponentMutex
Definition: DtIndirectGeometryUpdateSystem.h:115

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)