#include <Water2Renderer.h>
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) |
| GLTexture & | getReflectionTexture () |
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_ |
| GLTextureBase * | noShaderWaterTexture_ |
| GLFrameBufferObject | reflectionBuffer_ |
| Vector | landscapeSize_ |
| Vector | windDir1_ |
| Vector | windDir2_ |
| float | windSpeed1_ |
| float | windSpeed2_ |
| Water2Patches * | currentPatch_ |
| GLSLShaderSetup * | waterShader_ |
Definition at line 35 of file Water2Renderer.h.
| Water2Renderer::Water2Renderer | ( | ) |
Definition at line 43 of file Water2Renderer.cpp.
| Water2Renderer::~Water2Renderer | ( | ) |
Definition at line 50 of file Water2Renderer.cpp.
| 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().
float Water2Renderer::totalTime_ [protected] |
Definition at line 51 of file Water2Renderer.h.
Referenced by draw(), drawWaterShaders(), and simulate().
float Water2Renderer::waterHeight_ [protected] |
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] |
GLFrameBufferObject Water2Renderer::reflectionBuffer_ [protected] |
Definition at line 56 of file Water2Renderer.h.
Referenced by bindWaterReflection(), generate(), and unBindWaterReflection().
Vector Water2Renderer::landscapeSize_ [protected] |
Vector Water2Renderer::windDir1_ [protected] |
Vector Water2Renderer::windDir2_ [protected] |
float Water2Renderer::windSpeed1_ [protected] |
float Water2Renderer::windSpeed2_ [protected] |
Water2Patches* Water2Renderer::currentPatch_ [protected] |
Definition at line 61 of file Water2Renderer.h.
Referenced by draw(), drawPoints(), drawWater(), drawWaterShaders(), and generate().
GLSLShaderSetup* Water2Renderer::waterShader_ [protected] |
1.5.3