VR-Forces 4.8 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtShaderEffect.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 
16 
19 
20 #include <string>
21 #include <vector>
22 
23 #include <osg/Texture>
24 #include <osg/Uniform>
25 #include <osg/ref_ptr>
26 
27 namespace makVrv
28 {
29  class DtOsgWeatherEffectsObject;
30 
35  {
36  public:
37 
40  {
41  public:
44  GLuint64 myTextureAddress;
45  };
46 
47  typedef std::vector<DtShaderEffectTextureData> TextureDataPtrVector;
48 
49  public:
51  virtual ~DtShaderEffect();
52 
53  protected:
55  DtShaderEffect(DtDe& de);
56 
57  private:
63  DtShaderEffect &operator=(const DtShaderEffect&);
64 
65  public:
68  virtual void initializeEffect(const std::vector<osg::StateSet*>& statesets,
69  DtIndirectTextureProcessor* textureProcessor, DtOsgRenderer& osgRenderer);
70 
72  virtual void registerWeatherEffectsObject(DtOsgWeatherEffectsObject* weatherEffectsObject) = 0;
73 
75  virtual void updateTextureUniforms(unsigned int contextId);
76 
78  virtual void setEffectDirty(bool dirty);
79 
81  virtual bool effectDirty();
82 
84  virtual void updateImGui() = 0;
85 
87  virtual void updateUniforms() = 0;
88 
90  virtual void releaseGLObjects(osg::State* state) = 0;
91 
92  protected:
93 
95  virtual int loadShaderEffectTexture(const std::string& filename, const std::string& uniformName);
96 
98  virtual int addShaderEffectTexture(osg::Texture* shaderEffectTexture, const std::string& uniformName);
99 
100  protected:
101 
103 
105 
107 
108  };
109 }
Diagonal crossing liens.
Definition: DtTacticalGraphicUtilities.h:93
The DtOsgRenderer is the component responsible for rendering 3D images onto the screen via OpenSceneG...
Definition: DtOsgRenderer.h:125
Virtual base class.
Definition: DtVirtualBaseClass.h:22
DtShaderEffect injects custom shaders into the scenes, There are derrived classes of this for snow an...
Definition: DtShaderEffect.h:34
Structure for holding per texture data for bindless textures.
Definition: DtShaderEffect.h:39
TextureDataPtrVector myShaderEffectTextures
Definition: DtShaderEffect.h:104
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
Contains the DtIndirectTextureProcessor class declaration.
DtDe & myDe
Definition: DtShaderEffect.h:102
bool myEffectDirty
Definition: DtShaderEffect.h:106
Contains makVrv::DtVirtualBaseClass class.
osg::ref_ptr< osg::Uniform > myUniform
Definition: DtShaderEffect.h:43
osg::ref_ptr< osg::Texture > myTexture
Definition: DtShaderEffect.h:42
Contains makVrv::DtShaderEffectManager class.
Definition: DtIndirectTextureProcessor.h:41
Base class to provide boost signal/slot management.
GLuint64 myTextureAddress
Definition: DtShaderEffect.h:44
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application.
Definition: DtDe.h:69
std::vector< DtShaderEffectTextureData > TextureDataPtrVector
Definition: DtShaderEffect.h:47
An OSG implementation of the weather effects object.
Definition: DtOsgWeatherEffectsObject.h:22

Document ID: Generated on Thu Aug 27 10:56:05 EDT 2020 from SVN revision 217100
Copyright © 2005-2020 MAK Technologies. All Rights Reserved (www.mak.com)