VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectGeometryRendererUserData.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2024 VT-MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 #include <vrvCore/DtKeyedData.h>
14 
15 #include <osg/observer_ptr>
16 #include <osg/Matrixd>
17 
18 #include <unordered_map>
19 #include <unordered_set>
20 
21 #include <vector>
22 
23 namespace osg
24 {
25  class Camera;
26  class RenderInfo;
27 }
28 
29 namespace makVrv
30 {
31  class DtIndirectGeometry;
32 
33  class DtIndirectDefaultDrawComponent;
34  class DtIndirectLightPointDrawComponent;
35  class DtIndirectDrawComponent;
36  class DtIndirectRunTimeSettings;
37 
38  class DtOsgLightPointManager;
39 
42  {
44  osg::Matrixd myModelViewMatrix;
45  };
46 
51  {
52  public:
53  DtIndirectGeometryRendererUserData(DtDe& de, const std::string& name);
55  private:
62  public:
64  virtual void draw(osg::RenderInfo& renderInfo);
65  protected:
66  virtual void sortAndDraw(osg::RenderInfo& renderInfo, int component
67  , bool isLightBin, bool isDepthBin, bool isShadowPass);
68  public:
69  std::vector<DtIndirectGeometryAndProps> myIndirectGeometries;
70 
71  std::vector<int> myScratchPadVector;
72  protected:
75  };
76 
79 
81  template <>
82  inline const char* creatorTypeName<DtIndirectGeometryRendererUserData>(void) { return "DtIndirectGeometryRendererUserDataCreator"; }
83 }
This represents an arbitrary user pointer/data within DtKeyedData.
Definition: DtKeyedData.h:95
DtIndirectGeometryRendererUserData & operator=(const DtIndirectGeometryRendererUserData &rhs)=delete
not allowed
virtual void draw(osg::RenderInfo &renderInfo)
draw the sorter indirect geometries
const DtIndirectRunTimeSettings & myIndirectRunTimeSettings
Definition: DtIndirectGeometryRendererUserData.h:74
DtIndirectGeometryRendererUserData()=delete
not allowed
osg::Matrixd myModelViewMatrix
Definition: DtIndirectGeometryRendererUserData.h:44
DtIndirectGeometry * myIndirectGeometry
Definition: DtIndirectGeometryRendererUserData.h:43
Represents setting that are runtime tweakable/toggleable.
Definition: DtIndirectRunTimeSettings.h:24
std::vector< DtIndirectGeometryAndProps > myIndirectGeometries
Definition: DtIndirectGeometryRendererUserData.h:69
std::vector< int > myScratchPadVector
Definition: DtIndirectGeometryRendererUserData.h:71
DtOsgLightPointManager registers LightPoint nodes so their TBO can be created and updated in a single...
Definition: DtOsgLightPointManager.h:128
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
This is the indirect geometry + its model view matrix.
Definition: DtIndirectGeometryRendererUserData.h:41
DtOsgLightPointManager & myLightPointManager
Definition: DtIndirectGeometryRendererUserData.h:73
\ ::, which allows us to hook into our indirect engine to render using indirect rendering...
Definition: DtIndirectGeometry.h:120
This represents per camera+thread data It is used by DtIndirectGeometryRenderer to sort and draw indi...
Definition: DtIndirectGeometryRendererUserData.h:50
DtVirtualBaseClassCreator< DtIndirectGeometryRendererUserData, const std::string & > DtIndirectGeometryRendererUserDataCreator
creator
Definition: DtIndirectGeometryRendererUserData.h:78
Contains DLL export macros.
virtual void sortAndDraw(osg::RenderInfo &renderInfo, int component, bool isLightBin, bool isDepthBin, bool isShadowPass)
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
const char * creatorTypeName< DtIndirectGeometryRendererUserData >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectGeometryRendererUserData.h:82
Contains the DtKeyedData class declaration.

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)