VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectTextureLoaderNode.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
14 
16 
17 #include <osgUtil/CullVisitor>
18 
19 #include <boost/thread/mutex.hpp>
20 #include <boost/thread/condition_variable.hpp>
21 
22 #include <osg/Drawable>
23 
24 #include <set>
25 
26 namespace makVrv
27 {
30 
33 
35  template <>
36  inline const char* creatorTypeName<DtIndirectTextureLoaderNode>(void) { return "DtIndirectTextureLoaderNodeCreator"; }
37 
43  class DT_DLL_VRVOSG DtIndirectTextureLoaderNode : public osg::Drawable
44  {
45  protected:
46 
49 
52 
53  public:
55  virtual ~DtIndirectTextureLoaderNode();
56 
60  DtIndirectTextureLoaderNode &operator=(const DtIndirectTextureLoaderNode &other) = delete;
61 
62  public:
65  void accept(osg::NodeVisitor& nv);
66 
70  virtual void drawImplementation(osg::RenderInfo& renderInfo) const;
71 
74  virtual void addIndirectRegistrarToProcess(DtIndirectGeometryRegistrar* registrar);
75 
79  virtual void removeIndirectRegistrarToProcess(DtIndirectGeometryRegistrar* registrar);
80 
85  virtual bool containsIndirectRegistrarToProcess(DtIndirectGeometryRegistrar* registrar, bool blocking = true);
86 
88  virtual void clearIndirectRegistrarsToProcess(bool lastCall = false);
89 
90  protected:
91 
92  mutable boost::mutex myMutex;
93  mutable boost::condition_variable myCondition;
94 
95  typedef std::set<osg::ref_ptr<DtIndirectGeometryRegistrar> > RegistrarSet;
97 
99 
101  };
102 }
node for processing textures needed for indirect geometries this allows for textures to be uploaded t...
Definition: DtIndirectTextureLoaderNode.h:43
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Indirect geometry can have multiple models and their corresponding ids registered in it...
Definition: DtIndirectGeometryRegistrar.h:106
DtVirtualBaseClassCreator< DtIndirectTextureLoaderNode > DtIndirectTextureLoaderNodeCreator
creator
Definition: DtIndirectTextureLoaderNode.h:29
DtDe & myDtDe
Definition: DtIndirectTextureLoaderNode.h:100
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
std::set< osg::ref_ptr< DtIndirectGeometryRegistrar > > RegistrarSet
Definition: DtIndirectTextureLoaderNode.h:95
RegistrarSet myProcessors
Definition: DtIndirectTextureLoaderNode.h:96
const char * creatorTypeName< DtIndirectTextureLoaderNode >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectTextureLoaderNode.h:36
boost::condition_variable myCondition
Definition: DtIndirectTextureLoaderNode.h:93
Contains DLL export macros.
boost::mutex myMutex
Definition: DtIndirectTextureLoaderNode.h:92
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:70
Contains the DtIndirectGeometryRegistrar class declaration.
friend DtIndirectTextureLoaderNodeCreator
friend creator class so it is the only thing that can create DtIndirectTextureLoaderNodes ...
Definition: DtIndirectTextureLoaderNode.h:51
bool myAboutToBeDestroyed
Definition: DtIndirectTextureLoaderNode.h:98

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)