VR-Forces 4.10 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectDofProgram.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2020 MAK Technologies, Inc.
3  * All rights reserved.
4  *****************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
15 
17 
19 
21 
22 #include <tbb/atomic.h>
23 
24 namespace makVrv
25 {
26  class DtDe;
27  class DtOsgShaderFilesCache;
28  class DtIndirectViewParameters;
29  class DtGlBuffer;
30  class DtGlProgram;
31 
34  {
35  public:
38 
41 
42  private:
45 
48 
49  public:
51  virtual void init(const DtGlProgram* program) override;
52 
53  protected:
55  virtual void reset(void) override;
56 
57  public:
58  // these are uniforms ids!
63  protected:
65  static const char* theModelViewMatrixUniformName;
68  };
69 
73  {
74  public:
76  virtual ~DtIndirectDofProgram();
77 
79  static DtIndirectDofProgram* instance(DtDe& de);
80  private:
82  DtIndirectDofProgram() = delete;
86  DtIndirectDofProgram& operator=(const DtIndirectDofProgram&) = delete;
87  public:
89  virtual void runProcessDofsComputeShader(const DtIndirectViewParameters& viewParameters
90  , unsigned int maxNumInstances, float transitionPercentage);
91 
93  virtual void deleteShaders();
94 
96  virtual void incrementNumUsers();
97 
99  virtual void decrementNumUsers();
100 
102  virtual DtIndirectModelScalingAlgorithm scalingAlgorithm(void) const;
103 
105  virtual void setScalingAlgorithm(DtIndirectModelScalingAlgorithm scalingAlgorithm);
106 
107  protected:
109  virtual void initializeShadersIfNecessary(const DtIndirectViewParameters& viewParameters);
110  protected:
112 
114  tbb::atomic<int> myNumUsers;
115 
117 
119 
122 
124  };
125 }
int myMaxNumInstancesIndex
Definition: DtIndirectDofProgram.h:59
int myZoomMagnificationIndex
Definition: DtIndirectDofProgram.h:61
virtual void reset(void) override
reset to invalid value
Virtual base class.
Definition: DtVirtualBaseClass.h:19
virtual void init(const DtGlProgram *program) override
initialize
DtGlBuffer * myGpuShaderUbo
Definition: DtIndirectDofProgram.h:120
DtGlProgram * myDofProgram
Definition: DtIndirectDofProgram.h:111
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
interface class for managing program constants
Definition: DtProgramConstants.h:17
DtIndirectDofProgramConstants myDofProgramConstants
Definition: DtIndirectDofProgram.h:123
Contains makVrv::DtIndirectModelScalingAlgorithm enumeration.
DtIndirectModelScalingAlgorithm
Definition: DtIndirectModelScalingAlgorithm.h:14
A convenience class to represent an OpenGL Shader Program.
Definition: DtGlProgram.h:65
3 dimensional vector
static const char * theZoomMagOrthoDistanceOrthoCullUniformName
Definition: DtIndirectDofProgram.h:66
int myGpuShaderUboBinding
Definition: DtIndirectDofProgram.h:121
static const char * theModelViewMatrixUniformName
Definition: DtIndirectDofProgram.h:65
Contains makVrv::DtVirtualBaseClass class.
virtual ~DtIndirectDofProgramConstants()
DTOR.
DtIndirectModelScalingAlgorithm myScalingAlgorithm
Definition: DtIndirectDofProgram.h:118
DtDe & myDe
Definition: DtIndirectDofProgram.h:116
singleton class that wraps indirect dof gpu shader.
Definition: DtIndirectDofProgram.h:72
int myGlobalModelScaleFactorIndex
Definition: DtIndirectDofProgram.h:62
static const char * theDofManagerMaxNumInstancesUniformName
Definition: DtIndirectDofProgram.h:64
Contains makVrv::DtProgramConstants class.
class for wrapping, initializing, managing dof shader constants
Definition: DtIndirectDofProgram.h:33
A generic OpenGL buffer.
Definition: DtGlBuffer.h:27
static const char * theGlobalModelScaleFactorUniformName
Definition: DtIndirectDofProgram.h:67
The class that is used to communicate the camera viewing parameters to the DtICullingAndLOD interface...
Definition: DtIndirectViewParameters.h:26
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
tbb::atomic< int > myNumUsers
Definition: DtIndirectDofProgram.h:114
DtVector3< int > myWorkGroupLocalSize
Definition: DtIndirectDofProgram.h:113
DtIndirectDofProgramConstants & operator=(const DtIndirectDofProgramConstants &rhs)=delete
not allowed
int myModelViewMatrixIndex
Definition: DtIndirectDofProgram.h:60

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)