Water2Renderer Class Reference

#include <Water2Renderer.h>

List of all members.

Public Member Functions

 Water2Renderer ()
 ~Water2Renderer ()
void draw (Water2 &water2, WaterMapPoints &points, WaterWaves &waves)
void simulate (float frameTime)
void generate (LandscapeTexBorderWater *water, ProgressCounter *counter=0)
void bindWaterReflection ()
void unBindWaterReflection ()
void drawPoints (WaterMapPoints &points)
GLTexturegetReflectionTexture ()

Protected Member Functions

void drawWaterShaders (Water2 &water2)
void drawWaterNoShaders (Water2 &water2)
void drawWater (Water2 &water2, GLSLShaderSetup *waterShader)

Protected Attributes

float totalTime_
float waterHeight_
GLTexture reflectionTexture_
GLTexture normalTexture_
GLTextureBasenoShaderWaterTexture_
GLFrameBufferObject reflectionBuffer_
Vector landscapeSize_
Vector windDir1_
Vector windDir2_
float windSpeed1_
float windSpeed2_
Water2PatchescurrentPatch_
GLSLShaderSetupwaterShader_


Detailed Description

Definition at line 35 of file Water2Renderer.h.


Constructor & Destructor Documentation

Water2Renderer::Water2Renderer (  ) 

Definition at line 43 of file Water2Renderer.cpp.

Water2Renderer::~Water2Renderer (  ) 

Definition at line 50 of file Water2Renderer.cpp.


Member Function Documentation

void Water2Renderer::draw ( Water2 water2,
WaterMapPoints points,
WaterWaves waves 
)

Definition at line 59 of file Water2Renderer.cpp.

References currentPatch_, WaterWaves::draw(), drawPoints(), drawWaterNoShaders(), drawWaterShaders(), GAMESTATE_PERF_COUNTER_END, GAMESTATE_PERF_COUNTER_START, Water2Patches::getNormalMap(), Water2::getPatch(), GLStateExtension::hasHardwareMipmaps(), GLStateExtension::hasShaders(), OptionsDisplay::instance(), ScorchedClient::instance(), normalTexture_, GLTexture::replace(), and totalTime_.

Referenced by Water::draw().

void Water2Renderer::simulate ( float  frameTime  ) 

Definition at line 54 of file Water2Renderer.cpp.

References totalTime_.

Referenced by Water::simulate().

void Water2Renderer::generate ( LandscapeTexBorderWater water,
ProgressCounter counter = 0 
)

Definition at line 340 of file Water2Renderer.cpp.

References fixed::asFloat(), GLTextureCubeMap::create(), GLTexture::create(), GLFrameBufferObject::create(), ImageFactory::createBlank(), GLTexture::createBufferTexture(), Image::createResize(), currentPatch_, S3D::getDataFile(), LandscapeDefn::getLandscapeHeight(), ScorchedContext::getLandscapeMaps(), LandscapeDefn::getLandscapeWidth(), GLStateExtension::hasCubeMap(), GLStateExtension::hasFBO(), GLStateExtension::hasHardwareMipmaps(), GLStateExtension::hasShaders(), LandscapeTexBorderWater::height, ScorchedClient::instance(), OptionsDisplay::instance(), Landscape::instance(), landscapeSize_, Vector4::lerp(), ImageFactory::loadImageHandle(), MAX, normalTexture_, noShaderWaterTexture_, RAND, LandscapeTexBorderWater::reflection, reflectionBuffer_, reflectionTexture_, GLSLShaderSetup::set_uniform(), Vector::StoreNormalize(), LandscapeTexBorderWater::texture, GLSLShaderSetup::use(), GLSLShaderSetup::use_fixed(), waterHeight_, waterShader_, LandscapeTexBorderWater::wavebottoma, LandscapeTexBorderWater::wavebottomb, LandscapeTexBorderWater::wavelight, LandscapeTexBorderWater::wavetopa, LandscapeTexBorderWater::wavetopb, windDir1_, windDir2_, windSpeed1_, and windSpeed2_.

Referenced by Water::generate().

void Water2Renderer::bindWaterReflection (  )  [inline]

Definition at line 45 of file Water2Renderer.h.

References GLFrameBufferObject::bind(), and reflectionBuffer_.

Referenced by Water::bindWaterReflection().

void Water2Renderer::unBindWaterReflection (  )  [inline]

Definition at line 46 of file Water2Renderer.h.

References reflectionBuffer_, and GLFrameBufferObject::unBind().

Referenced by Water::unBindWaterReflection().

void Water2Renderer::drawPoints ( WaterMapPoints points  ) 

Definition at line 100 of file Water2Renderer.cpp.

References currentPatch_, and WaterMapPoints::draw().

Referenced by draw(), and Water::drawPoints().

GLTexture& Water2Renderer::getReflectionTexture (  )  [inline]

Definition at line 48 of file Water2Renderer.h.

References reflectionTexture_.

Referenced by Water::getReflectionTexture().

void Water2Renderer::drawWaterShaders ( Water2 water2  )  [protected]

Definition at line 108 of file Water2Renderer.cpp.

References GLState::BLEND_ON, GLShadowFrameBuffer::bufferValid(), currentPatch_, drawWater(), Water2Patches::getAOF(), GLCamera::getCurrentCamera(), GLCamera::getCurrentPos(), Landscape::getShadowFrameBuffer(), GL_ALL_ATTRIB_BITS, GL_MODELVIEW, GL_TEXTURE, GL_TEXTURE0, GL_TEXTURE1, GL_TEXTURE2, GL_TEXTURE2_ARB, GL_TEXTURE_2D, glActiveTextureARB, glColor4f(), glDisable(), glEnable(), glLoadIdentity(), glLoadMatrixf(), glMatrixMode(), glPopAttrib(), glPushAttrib(), glScalef(), Landscape::instance(), OptionsDisplay::instance(), GLState::LIGHTING_OFF, normalTexture_, reflectionTexture_, GLSLShaderSetup::set_gl_texture(), GLSLShaderSetup::set_uniform(), GLState::TEXTURE_ON, totalTime_, GLSLShaderSetup::use(), GLSLShaderSetup::use_fixed(), waterHeight_, waterShader_, wavetile_length_rcp, windDir1_, windDir2_, windSpeed1_, and windSpeed2_.

Referenced by draw().

void Water2Renderer::drawWaterNoShaders ( Water2 water2  )  [protected]

Definition at line 207 of file Water2Renderer.cpp.

References GLState::BLEND_ON, GLState::CUBEMAP_ON, GLTextureBase::draw(), GLTexture::draw(), drawWater(), Landscape::getSky(), Sky::getSun(), GL_AMBIENT, GL_COMBINE_ARB, GL_DIFFUSE, GL_EMISSION, GL_FRONT_AND_BACK, GL_OBJECT_LINEAR, GL_OBJECT_PLANE, GL_R, GL_REFLECTION_MAP_EXT, GL_RGB_SCALE_ARB, GL_S, GL_SHININESS, GL_SPECULAR, GL_SPHERE_MAP, GL_T, GL_TEXTURE0, GL_TEXTURE1, GL_TEXTURE_2D, GL_TEXTURE_BIT, GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_TEXTURE_GEN_MODE, GL_TEXTURE_GEN_R, GL_TEXTURE_GEN_S, GL_TEXTURE_GEN_T, glActiveTextureARB, glColor3f(), glColor4f(), glDisable(), glEnable(), glMaterialf(), glMaterialfv(), glPopAttrib(), glPushAttrib(), glTexEnvi(), glTexGenf(), glTexGenfv(), GLStateExtension::hasCubeMap(), GLStateExtension::hasMultiTex(), GLStateExtension::hasSphereMap(), Landscape::instance(), OptionsDisplay::instance(), GLState::LIGHT1_ON, GLState::LIGHTING_OFF, GLState::LIGHTING_ON, noShaderWaterTexture_, reflectionTexture_, Sun::setLightPosition(), GLState::TEXTURE_OFF, and GLState::TEXTURE_ON.

Referenced by draw().

void Water2Renderer::drawWater ( Water2 water2,
GLSLShaderSetup waterShader 
) [protected]

Definition at line 332 of file Water2Renderer.cpp.

References currentPatch_, VisibilityPatchGrid::drawWater(), GLCamera::getCurrentCamera(), GLCamera::getCurrentPos(), Water2::getIndexs(), VisibilityPatchGrid::instance(), and landscapeSize_.

Referenced by drawWaterNoShaders(), and drawWaterShaders().


Member Data Documentation

float Water2Renderer::totalTime_ [protected]

Definition at line 51 of file Water2Renderer.h.

Referenced by draw(), drawWaterShaders(), and simulate().

float Water2Renderer::waterHeight_ [protected]

Definition at line 52 of file Water2Renderer.h.

Referenced by drawWaterShaders(), and generate().

GLTexture Water2Renderer::reflectionTexture_ [protected]

Definition at line 53 of file Water2Renderer.h.

Referenced by drawWaterNoShaders(), drawWaterShaders(), generate(), and getReflectionTexture().

GLTexture Water2Renderer::normalTexture_ [protected]

Definition at line 54 of file Water2Renderer.h.

Referenced by draw(), drawWaterShaders(), and generate().

GLTextureBase* Water2Renderer::noShaderWaterTexture_ [protected]

Definition at line 55 of file Water2Renderer.h.

Referenced by drawWaterNoShaders(), and generate().

GLFrameBufferObject Water2Renderer::reflectionBuffer_ [protected]

Definition at line 56 of file Water2Renderer.h.

Referenced by bindWaterReflection(), generate(), and unBindWaterReflection().

Vector Water2Renderer::landscapeSize_ [protected]

Definition at line 57 of file Water2Renderer.h.

Referenced by drawWater(), and generate().

Vector Water2Renderer::windDir1_ [protected]

Definition at line 58 of file Water2Renderer.h.

Referenced by drawWaterShaders(), and generate().

Vector Water2Renderer::windDir2_ [protected]

Definition at line 58 of file Water2Renderer.h.

Referenced by drawWaterShaders(), and generate().

float Water2Renderer::windSpeed1_ [protected]

Definition at line 59 of file Water2Renderer.h.

Referenced by drawWaterShaders(), and generate().

float Water2Renderer::windSpeed2_ [protected]

Definition at line 59 of file Water2Renderer.h.

Referenced by drawWaterShaders(), and generate().

Water2Patches* Water2Renderer::currentPatch_ [protected]

Definition at line 61 of file Water2Renderer.h.

Referenced by draw(), drawPoints(), drawWater(), drawWaterShaders(), and generate().

GLSLShaderSetup* Water2Renderer::waterShader_ [protected]

Definition at line 62 of file Water2Renderer.h.

Referenced by drawWaterShaders(), and generate().


The documentation for this class was generated from the following files:
Generated on Mon Feb 16 15:15:08 2009 for Scorched3D by  doxygen 1.5.3