VR-Forces 5.0.2 Developer's Guide
 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) 2022 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  class DtIndirectDefaultTexturesContainer;
32 
33  class DtGlProgram;
34  class DtGlBuffer;
35 
38 
41 
43  template <>
44  inline const char* creatorTypeName<DtIndirectLightPointDrawComponent>(void) { return "DtIndirectLightPointDrawComponentCreator"; }
45 
46  class DtIndirectShaderConstants;
47 
50  {
51  public:
54 
57  protected:
60  private:
63 
66 
69 
70  public:
72  virtual void initialize(DtIndirectGeometryRegistrar& registrar
73  , DtIndirectEffectTexturesTemplate& effectTexturesState);
74 
76  virtual void apply(osg::RenderInfo& renderInfo) override;
77 
79  virtual void draw(osg::RenderInfo& renderInfo, const int offsetCommandBuffer, GLenum indicesType, int maxCommands
80  , DtGlBuffer* gpuShaderUbo, int gpuShaderBinding, DtIndirectShaderConstants* shaderConstants) override;
81 
83  virtual bool shouldDraw(bool isShadowPass) override;
84 
85  protected:
87  virtual void draw(const int offsetCommandBuffer, GLenum indicesType, int maxCommands);
88 
89  protected:
91 
93 
96  };
97 }
#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
DtOsgLightPointManager registers LightPoint nodes so their TBO can be created and updated in a single...
Definition: DtOsgLightPointManager.h:106
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
Contains the DtIndirectDrawComponent class declaration.
loads and contains various core default textures used by the indirect system
Definition: DtIndirectDefaultTexturesContainer.h:27
A generic OpenGL buffer. This can be: -&gt; a vertex buffer -&gt; an index buffer -&gt; a shader storage buffe...
Definition: DtGlBuffer.h:29
DtVirtualBaseClassCreator< DtIndirectLightPointDrawComponent > DtIndirectLightPointDrawComponentCreator
creator
Definition: DtIndirectLightPointDrawComponent.h:37
unsigned int GLenum
Definition: DtGlTextureBufferObject.h:18
friend DtIndirectLightPointDrawComponentCreator
only creator can create
Definition: DtIndirectLightPointDrawComponent.h:53
const char * creatorTypeName< DtIndirectLightPointDrawComponent >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectLightPointDrawComponent.h:44
osg::ref_ptr< osg::Uniform > myDigitTextureUniform
Definition: DtIndirectLightPointDrawComponent.h:90
Contains DLL export macros.
Interface class to manage/configure drawing of a subset of rendering components within an indirect ge...
Definition: DtIndirectDrawComponent.h:32
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
Definition: DtIndirectShaderConstants.h:42
DtIndirectDefaultTexturesContainer & myDefaultTexturesContainer
cache to avoid repeated look ups via DtIndirectDefaultTexturesContainer::instance(myDe) ...
Definition: DtIndirectLightPointDrawComponent.h:95
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:49
DtOsgLightPointManager & myLightPointManager
Definition: DtIndirectLightPointDrawComponent.h:92

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)