![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /***************************************************************************** 00002 * Copyright (c) 2011 MAK Technologies, Inc. 00003 * All rights reserved. 00004 *****************************************************************************/ 00005 00009 00010 #pragma once 00011 00012 #include <vrvGraphics/Dt2DEffect.h> 00013 00014 namespace makVrv 00015 { 00016 00019 class DT_DLL_VRVGRAPHICS DtProjected2DFlatEffect : public Dt2DEffect 00020 { 00021 public: 00022 00024 DtProjected2DFlatEffect(); 00025 00027 virtual ~DtProjected2DFlatEffect(); 00028 00030 virtual void setCamera( bool geocentric, float occluded, 00031 const double position[3], const double projection[16] ); 00032 00033 //Set the number of groups. 00034 virtual void setGroupCount( unsigned int count ); 00035 00036 // Sets the given attributes to the OpenGL context. 00037 virtual void setVaryingAttributes( size_t stride, 00038 const VaryingAttributeAddress& positionAddress, 00039 const VaryingAttributeAddress& colorAddress, 00040 const VaryingAttributeAddress& offsetAddress, 00041 const VaryingAttributeAddress& rotationAddress ); 00042 00044 virtual void unsetVaryingAttributes(); 00045 00046 protected: 00047 00049 virtual void updateUniformLocations(); 00050 00052 virtual void updateUniforms(); 00053 00055 virtual void getShaderSource( const char*& vs, const char*& fs, 00056 const char*& gs ); 00057 00058 protected: 00059 00060 int myUniform_CameraPos; 00061 int myUniform_CameraMat; 00062 int myUniform_GroupCount; 00063 int myUniform_Sphere; 00064 int myUniform_OccludedAlpha; 00065 00066 unsigned int myUnit; 00067 unsigned int myGroupCount; 00068 double myCameraPos[3]; 00069 double myMatrix[16]; 00070 bool myGeocentricFlag; 00071 float myGeocentricAlpha; 00072 00073 }; 00074 00075 00078 class DT_DLL_VRVGRAPHICS DtProjected2DFlatQuadEffectCreator : public DtEffectCreator 00079 { 00080 public: 00081 00082 virtual DtEffect* create( CreateParameters* params = 0 ) 00083 { 00084 return new DtProjected2DFlatEffect(); 00085 } 00086 00087 }; 00088 00089 }