VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtWaterOnScreenDrawable.h
Go to the documentation of this file.
1 /*****************************************************************************
2 * Copyright (c) 2024 MAK Technologies, Inc.
3 * All rights reserved.
4 *****************************************************************************/
5 
6 #pragma once
7 
11 
14 
15 #include <vrvMath/DtVector2.h>
16 
18 
19 namespace makVrv
20 {
21  class DtDe;
22  class DtGlProgram;
23  class DtGlTexture;
24  class DtWaterOnScreen;
25 
29  {
31  : vrv_effectIntensity(1.0f)
32  , vrv_offset(0.0f)
33  , vrv_opacity(1.0f)
34  , vrv_aspectRatio(1.0f)
35  , vrv_fovy(1.57f)
36  {}
37 
39  float vrv_offset;
40  float vrv_opacity;
41 
43  float vrv_fovy;
44  };
45 
48 
50  template <>
51  inline const char* creatorTypeName<DtWaterOnScreenDrawable>(void) { return "DtWaterOnScreenDrawableCreator"; }
52 
55  {
56  public:
58  virtual ~DtWaterOnScreenDrawable();
59 
61  virtual void releaseGLObjects(osg::State* state) const;
62 
63  protected:
65  DtWaterOnScreenDrawable(DtDe &de, DtWaterOnScreen& waterOnScreenEffect);
66 
69 
70  private:
72  DtWaterOnScreenDrawable() = delete;
73 
76 
78  DtWaterOnScreenDrawable& operator=(const DtWaterOnScreenDrawable&) = delete;
79 
80  public:
82  virtual void drawImplementation(osg::RenderInfo& renderInfo) const;
83 
90  //virtual void releaseGLObjects(osg::State* state = 0) const;
91 
93  virtual void setNormalMap(DtGlTexture* texture);
94 
96  virtual void setParameters(const DtWaterOnScreenParameters& params);
97 
98  protected:
100  virtual void createProgramIfNecessary(void) const;
101 
102  virtual void cleanupGpuMemory();
103  protected:
104 
106 
108 
110 
112 
117 
119 
120  mutable int myMutableVrvFovLoc;
122  };
123 }
DtWaterOnScreenParameters myParams
Definition: DtWaterOnScreenDrawable.h:111
2 dimensional vector
This class provides an OSG-specific implementation of water drops on the screen.
Definition: DtWaterOnScreenEffect.h:41
float vrv_fovy
Definition: DtWaterOnScreenDrawable.h:43
A convenience class to represent an OpenGL Shader Program.
Definition: DtGlProgram.h:66
int myMutableVrvEffectIntensityLoc
locations of various uniforms for the shaders
Definition: DtWaterOnScreenDrawable.h:114
int myMutableVrvWaterNormalsLoc
Definition: DtWaterOnScreenDrawable.h:118
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
float vrv_effectIntensity
Definition: DtWaterOnScreenDrawable.h:38
int myMutableVrvFovLoc
Definition: DtWaterOnScreenDrawable.h:120
float vrv_offset
Definition: DtWaterOnScreenDrawable.h:39
Definition: DtPostProcessorDrawable.h:33
int myMutableVrvAspectRatioLoc
Definition: DtWaterOnScreenDrawable.h:121
#define DT_DLL_VRVPOSTPROCESSOR
Definition: vrvPostProcessor.h:19
DtGlTexture * myNormalMap
Definition: DtWaterOnScreenDrawable.h:109
class used to render water on screen effects during the post processor camera draw ...
Definition: DtWaterOnScreenDrawable.h:54
This file contains the declaration of the class DtPostProcessorDrawable which is used for rendering p...
DtWaterOnScreenParameters()
Definition: DtWaterOnScreenDrawable.h:30
Contains DLL export macros.
DtVirtualBaseClassCreator< DtWaterOnScreenDrawable, DtWaterOnScreen & > DtWaterOnScreenDrawableCreator
Definition: DtWaterOnScreenDrawable.h:46
DtGlProgram * myMutableWaterOnScreenProgram
Definition: DtWaterOnScreenDrawable.h:107
float vrv_aspectRatio
Definition: DtWaterOnScreenDrawable.h:42
const char * creatorTypeName< DtWaterOnScreenDrawable >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtWaterOnScreenDrawable.h:51
float vrv_opacity
Definition: DtWaterOnScreenDrawable.h:40
friend DtWaterOnScreenDrawableCreator
friended, to access constructor above
Definition: DtWaterOnScreenDrawable.h:68
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:72
DtWaterOnScreen & myWaterOnScreenEffect
Definition: DtWaterOnScreenDrawable.h:105
int myMutableVrvOffsetLoc
Definition: DtWaterOnScreenDrawable.h:115
structure to exchange/communicate various parameters for the water on screen effect ...
Definition: DtWaterOnScreenDrawable.h:28
A helper classes for creating a RTT target, optionally including depth buffer.
Definition: DtGlTexture.h:20
int myMutableVrvOpacityLoc
Definition: DtWaterOnScreenDrawable.h:116

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)