VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectDrawComponent.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 
14 #include <osg/StateSet>
15 #include <osg/Uniform>
16 
17 #include <string>
18 
19 namespace osg
20 {
21  class RenderInfo;
22 }
23 
24 namespace makVrv
25 {
26  class DtDe;
27 
31  {
32  public:
35 
37  virtual ~DtIndirectDrawComponent();
38  private:
40  DtIndirectDrawComponent() = delete;
41 
44 
46  DtIndirectDrawComponent&operator=(const DtIndirectDrawComponent& rhs) = delete;
47 
48  public:
50  virtual void update(osg::RenderInfo& renderInfo) = 0;
51 
53  virtual void apply(osg::RenderInfo& renderInfo) = 0;
54 
56  virtual void addExternallyManagedUniform(osg::ref_ptr<osg::Uniform> uniform);
57 
59  virtual void draw(osg::RenderInfo& renderInfo, const int offsetCommandBuffer, GLenum indicesType, int maxCommands) = 0;
60 
62  virtual void releaseGLObjects(osg::State* state) = 0;
63 
65  virtual bool shouldDraw(bool isShadowPass);
66 
67  protected:
69  virtual std::string indicesTypeToString(int indicesType);
70 
71  protected:
73 
75  };
76 }
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
DtDe & myDe
Definition: DtIndirectDrawComponent.h:72
unsigned int GLenum
Definition: DtGlTextureBufferObject.h:18
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
osg::ref_ptr< osg::StateSet > myStateSet
Definition: DtIndirectDrawComponent.h:74

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)