VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectTextureCollectionPolicy.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 
12 #include <vrvOsg/vrvOsg.h>
13 
18 
19 #include <vrvMath/DtCommonTypes.h>
20 
22 
23 #include <osg/Texture>
24 
25 #include <unordered_map>
26 #include <boost/thread.hpp>
27 
28 
29 namespace makVrv
30 {
31  class DtIndirectGeometryTextures;
32  class DtIndirectTexturePrototypeManager;
33  class DtIndirectDefaultTexturesContainer;
34  class DtEffectTextureRegistry;
35  class DtIndirectLog;
36 
44  {
45  public:
48 
49 
52  protected:
55  public:
59  virtual void collectTextures(DtIndirectGeometryTextures& textures, const osg::StateSet* stateSet, const std::string &modelName) const = 0;
60 
62  virtual const DtIndirectEffectTexturesTemplate& effectTexturesTemplate(void) const;
63 
64  protected:
66  virtual void collectDiffuseTexture(osg::ref_ptr<const osg::Texture> osgDiffuseTexture, DtIndirectGeometryTextures& textures, const osg::StateSet* stateSet, const std::string& modelName, uint32_t flags) const;
67 
69  virtual uint32_t flags(const osg::Texture* srcOsgTexture, const std::string& modelName, DtEffectTextureType effectTextureType) const;
70 
71  protected:
72 
74 
76 
78 
80 
82 
84  };
85 
86 
89  {
90  public:
93 
96 
97  // pure abstract creation function
98  virtual DtIndirectTextureCollectionPolicy* create(DtDe& de) = 0;
99  };
100 
104  {
105  public:
108 
111 
114  static DtIndirectTextureCollectionPolicyFactory& instance(DtDe& de);
115 
117  static const std::string& theClassName();
118 
120  virtual void registerCreator(const std::string& name, DtIndirectTextureCollectionPolicyCreator* creator);
121 
123  virtual DtIndirectTextureCollectionPolicy* create(const std::string& name) const;
124  protected:
126 
127  typedef std::unordered_map<std::string, DtIndirectTextureCollectionPolicyCreator*> RegistrationMap;
128 
130 
131  };
132 
133 }
Contains makVrv::DtEffectTextureType declaration.
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtIndirectEffectTexturesTemplate myEffectTexturesTemplate
Definition: DtIndirectTextureCollectionPolicy.h:73
DtIndirectTexturePrototypeManager & myTexturePrototypeManager
Definition: DtIndirectTextureCollectionPolicy.h:77
DtIndirectDefaultTexturesContainer & myDefaultTexturesContainer
Definition: DtIndirectTextureCollectionPolicy.h:79
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
This class manages DtIndirectTexturePrototypes during the lifetime of the application.
Definition: DtIndirectTexturePrototypeManager.h:86
Abstract class to look in the stateset and collect textures specified via its template The effect tex...
Definition: DtIndirectTextureCollectionPolicy.h:43
Abstract class for creation of a particular texture collection policy.
Definition: DtIndirectTextureCollectionPolicy.h:88
RegistrationMap myCreators
Definition: DtIndirectTextureCollectionPolicy.h:129
DtDe & myDe
Definition: DtIndirectTextureCollectionPolicy.h:75
DtEffectTextureType
Definition: DtEffectTextureType.h:16
DtEffectTextureRegistry & myEffectTextureRegistry
Definition: DtIndirectTextureCollectionPolicy.h:81
Contains the DtIndirectEffectTexturesTemplate class declaration.
Contains makVrv::DtVirtualBaseClass class.
class which holds some static utility functions for handling effect textures once we work out how to ...
Definition: DtEffectTextureRegistry.h:32
This class represents the list of DtIndirectTexturePrototypes belonging to a particular sub-geometry...
Definition: DtIndirectGeometryTextures.h:38
Contains VirtualProgram execution priority constants.
Contains the DtIndirectEffectTextureShader class declaration.
loads and contains various core default textures used by the indirect system
Definition: DtIndirectDefaultTexturesContainer.h:30
DtDe & myDe
Definition: DtIndirectTextureCollectionPolicy.h:125
Factory for creating different collection policies.
Definition: DtIndirectTextureCollectionPolicy.h:103
This class is specifically used by the indirect system It&#39;s separate so that it doesn&#39;t interfere wit...
Definition: DtIndirectLog.h:30
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::unordered_map< std::string, DtIndirectTextureCollectionPolicyCreator * > RegistrationMap
Definition: DtIndirectTextureCollectionPolicy.h:127
DtIndirectLog & myIndirectLog
Definition: DtIndirectTextureCollectionPolicy.h:83
Class that allows you to abstractly register effect texture types the effect texture types are client...
Definition: DtIndirectEffectTexturesTemplate.h:40

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)