VR-Forces 5.0.1 Developer's Guide
 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) 2022 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 
35  {
36  public:
37  virtual ~DtIndirectDofProgram();
38 
40  static DtIndirectDofProgram* instance(DtDe& de);
41 
42  protected:
44  private:
46  DtIndirectDofProgram() = delete;
50  DtIndirectDofProgram& operator=(const DtIndirectDofProgram&) = delete;
51  public:
53  virtual void runProcessDofsComputeShader(const DtIndirectViewParameters& viewParameters
54  , unsigned int maxNumInstances, float transitionPercentage);
55 
57  virtual void deleteShaders();
58 
60  virtual void incrementNumUsers();
61 
63  virtual void decrementNumUsers();
64 
66  virtual DtIndirectModelScalingAlgorithm scalingAlgorithm(void) const;
67 
69  virtual void setScalingAlgorithm(DtIndirectModelScalingAlgorithm scalingAlgorithm);
70 
71  protected:
73  virtual void initializeShadersIfNecessary(const DtIndirectViewParameters& viewParameters);
74 
75  protected:
77 
79  tbb::atomic<int> myNumUsers;
80 
82 
84 
87 
89 
90  static const std::string theDofComputeShaderFilePath;
91  };
92 }
Virtual base class. Allows for RTTI and proper virtual destruction. Used by Creators, Factories, Providers, Assemblers and User Interfaces.
Definition: DtVirtualBaseClass.h:19
DtGlBuffer * myGpuShaderUbo
Definition: DtIndirectDofProgram.h:85
DtGlProgram * myDofProgram
Definition: DtIndirectDofProgram.h:76
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
DtIndirectDofProgramConstants myDofProgramConstants
Definition: DtIndirectDofProgram.h:88
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
int myGpuShaderUboBinding
Definition: DtIndirectDofProgram.h:86
Contains makVrv::DtVirtualBaseClass class.
DtIndirectModelScalingAlgorithm myScalingAlgorithm
Definition: DtIndirectDofProgram.h:83
DtDe & myDe
Definition: DtIndirectDofProgram.h:81
static const std::string theDofComputeShaderFilePath
Definition: DtIndirectDofProgram.h:90
singleton class that wraps indirect dof gpu shader.
Definition: DtIndirectDofProgram.h:34
class for wrapping, initializing, managing dof shader constants
Definition: DtIndirectDofProgramConstants.h:21
A generic OpenGL buffer. This can be: -&gt; a vertex buffer -&gt; an index buffer -&gt; a shader storage buffe...
Definition: DtGlBuffer.h:29
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. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:70
tbb::atomic< int > myNumUsers
Definition: DtIndirectDofProgram.h:79
DtVector3< int > myWorkGroupLocalSize
Definition: DtIndirectDofProgram.h:78
Contains makVrv::DtIndirectDofProgramConstants class.

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)