VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectLightPointDrawComponent.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2020 VT-MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
15 
17 
18 #include <osg/StateSet>
19 
20 namespace osg
21 {
22  class State;
23 }
24 
25 namespace makVrv
26 {
27  class DtIndirectGeometryRegistrar;
28  class DtVirtualProgramCache;
29  class DtIndirectEffectTexturesTemplate;
30  class DtOsgLightPointManager;
31 
32  class DtGlProgram;
33  class DtGlBuffer;
34 
37 
40 
42  template <>
43  inline const char* creatorTypeName<DtIndirectLightPointDrawComponent>(void) { return "DtIndirectLightPointDrawComponentCreator"; }
44 
45  class DtIndirectLightPointDrawComponentShaderConstants;
46 
49  {
50  public:
53 
56  protected:
59  private:
62 
65 
68 
69  public:
71  virtual void initialize(DtIndirectGeometryRegistrar& registrar
72  , DtIndirectEffectTexturesTemplate& effectTexturesState
73  , DtVirtualProgramCache& virtualProgramCache);
74 
76  virtual void update(osg::RenderInfo& renderInfo) override;
77 
79  virtual void apply(osg::RenderInfo& renderInfo) override;
80 
82  virtual void draw(osg::RenderInfo& renderInfo, const int offsetCommandBuffer, GLenum indicesType, int maxCommands) override;
83 
85  virtual void releaseGLObjects(osg::State* state) override;
86 
88  virtual bool shouldDraw(bool isShadowPass) override;
89 
90  protected:
91  virtual void initializeUbosIfNecessary(osg::RenderInfo& renderInfo);
92 
93  protected:
95 
96  //Texture for rendering the debug labels. Contains all 10 digits so that any number can be
97  // shown using the debug labels. The debug labels show the light point type for now.
99 
101 
104  DtIndirectLightPointDrawComponentShaderConstants* myShaderConstants;
105  };
106 }
DtIndirectLightPointDrawComponentShaderConstants * myShaderConstants
Definition: DtIndirectLightPointDrawComponent.h:104
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
DtGlBuffer * myGpuShaderUbo
Definition: DtIndirectLightPointDrawComponent.h:102
Indirect geometry can have multiple models and their corresponding ids registered in it...
Definition: DtIndirectGeometryRegistrar.h:106
DtOsgLightPointManager registers LightPoint nodes so their TBO can be created and updated in a single...
Definition: DtOsgLightPointManager.h:105
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
class to hold a hashed map of strings to equivalent virtual programs to avoid repeated, duplicate creation of a virtual programs
Definition: DtVirtualProgramCache.h:46
Contains the DtIndirectDrawComponent class declaration.
osg::ref_ptr< osg::Texture > myDigitTexture
Definition: DtIndirectLightPointDrawComponent.h:98
int myGpuShaderUboBinding
Definition: DtIndirectLightPointDrawComponent.h:103
A generic OpenGL buffer.
Definition: DtGlBuffer.h:27
DtVirtualBaseClassCreator< DtIndirectLightPointDrawComponent > DtIndirectLightPointDrawComponentCreator
creator
Definition: DtIndirectLightPointDrawComponent.h:36
unsigned int GLenum
Definition: DtGlTextureBufferObject.h:18
friend DtIndirectLightPointDrawComponentCreator
only creator can create
Definition: DtIndirectLightPointDrawComponent.h:52
const char * creatorTypeName< DtIndirectLightPointDrawComponent >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectLightPointDrawComponent.h:43
osg::ref_ptr< osg::Uniform > myDigitTextureUniform
Definition: DtIndirectLightPointDrawComponent.h:94
Contains DLL export macros.
Interface class to manage/configure drawing of a subset of rendering components within an indirect ge...
Definition: DtIndirectDrawComponent.h:30
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
Class that allows you to abstractly register effect texture types the effect texture types are client...
Definition: DtIndirectEffectTexturesTemplate.h:40
class to draw a subset of light points of an indirect geometry
Definition: DtIndirectLightPointDrawComponent.h:48
DtOsgLightPointManager & myLightPointManager
Definition: DtIndirectLightPointDrawComponent.h:100

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)