VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectTextureResidencyManager.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 VT-MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 #include <vrvOsg/vrvOsg.h>
12 
14 
16 
18 
19 #include <set>
20 #include <unordered_map>
21 
22 #include <tbb/concurrent_unordered_set.h>
23 
24 namespace makVrv
25 {
26  class DtIndirectGlTextureObjectManager;
27  class DtIndirectGlTextureObject;
28 
30  {
31  public:
32  unsigned int myLastFrameUpdated = -1;
33  std::unordered_set<DtIndirectGlTextureObject*> myTexturesToBeMarkedNonResident;
34  };
35 
37  {
39  };
40 
41 
44 
47 
49  template <>
50  inline const char* creatorTypeName<DtIndirectTextureResidencyManager>(void) { return "DtIndirectTextureResidencyManager"; }
51 
109  {
110  public:
112 
114 
115  protected:
117 
118  private:
125  public:
127  virtual void run(unsigned int frameNumber);
128 
136  virtual void addToQueueToMakeNonResidentInAllGraphicsContexts(DtIndirectGlTextureObject* indirectGlTextureObject);
137 
140  virtual void printStatsWhenNoWindows();
141 
142  protected:
144  virtual void deleteGlTexture(const DtIndirectGlTextureObject* indirectGlTextureObject);
145 
147  virtual void runResidencyOperation(const void* glContext, DtIndirectTextureResidencyOperation operation);
148 
150  virtual void runMakeNonResidentOnTexturesInNonResidentQueue(const void* glContext);
151 
153  virtual bool isInAnyContextForMarkingNonResident(const void* currentGlContext, DtIndirectGlTextureObject* indirectGlTexture);
154 
157  virtual void slot_contextAboutToBeDestroyed(const void* glContext);
158 
159  protected:
161 
163 
164  std::unordered_map<const void*, DtIndirectGraphicsContextData> myGlContextToData;
165 
166  tbb::concurrent_unordered_set<DtIndirectGlTextureObject*> myScatchPadSetForResidencyCollection;
167 
170  };
171 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtSignalConnectionManager myConnections
for handling context destroyed event
Definition: DtIndirectTextureResidencyManager.h:169
Encapsulate an OpenGL texture object that is created/used in indirect rendering.
Definition: DtIndirectGlTextureObject.h:36
Definition: DtIndirectTextureResidencyManager.h:38
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
This manager manages the lifetime of the actual gl texture objects (gl unsigned ints) in the indirect...
Definition: DtIndirectGlTextureObjectManager.h:60
Manager class that handles texture objects and texture handle residency, as contexts get created and ...
Definition: DtIndirectTextureResidencyManager.h:108
Definition: DtIndirectTextureResidencyManager.h:29
DtDe & myDe
Definition: DtIndirectTextureResidencyManager.h:162
DtIndirectTextureResidencyOperation
Definition: DtIndirectTextureResidencyManager.h:36
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
DtVirtualBaseClassCreator< DtIndirectTextureResidencyManager, DtIndirectGlTextureObjectManager & > DtIndirectTextureResidencyManagerCreator
creator
Definition: DtIndirectTextureResidencyManager.h:43
unsigned int myLastFrameUpdated
Definition: DtIndirectTextureResidencyManager.h:32
Class to manage disconnection of boost connections on deletion.
Definition: DtSignalConnectionManager.h:20
tbb::concurrent_unordered_set< DtIndirectGlTextureObject * > myScatchPadSetForResidencyCollection
Definition: DtIndirectTextureResidencyManager.h:166
DtIndirectGlTextureObjectManager & myParent
Definition: DtIndirectTextureResidencyManager.h:160
std::unordered_set< DtIndirectGlTextureObject * > myTexturesToBeMarkedNonResident
Definition: DtIndirectTextureResidencyManager.h:33
const char * creatorTypeName< DtIndirectTextureResidencyManager >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectTextureResidencyManager.h:50
std::unordered_map< const void *, DtIndirectGraphicsContextData > myGlContextToData
Definition: DtIndirectTextureResidencyManager.h:164
Base class to provide boost signal/slot management.
Definition: DtIndirectTextureResidencyManager.h:38
Contains DLL export macros.
friend DtIndirectTextureResidencyManagerCreator
Definition: DtIndirectTextureResidencyManager.h:111
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:72

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)