//----------------------------------------------------------------------------- // Torque Game Engine // Copyright (C) GarageGames.com, Inc. //----------------------------------------------------------------------------- #include "game/fx/underLava.h" #include "dgl/dgl.h" #include "math/mRect.h" #include "dgl/gTexManager.h" #include "terrain/waterBlock.h" #include "math/mConstants.h" UnderLavaFX gLavaFX; //************************************************************************** // Under lava FX - "Lava - With pumice!" //************************************************************************** UnderLavaFX::UnderLavaFX() { } //-------------------------------------------------------------------------- // Init //-------------------------------------------------------------------------- void UnderLavaFX::init() { RectI viewport; dglGetViewport( &viewport ); mViewSize = viewport.extent; mTexFrequency.x = F32(viewport.extent.x / viewport.extent.y); mTexFrequency.y = 1.0; mNumPoints.x = (S32)(50 * F32(viewport.extent.x / viewport.extent.y)); mNumPoints.y = 50; mWave[0].amplitude = 0.02; mWave[0].frequency = 2.0; mWave[0].velocity = Sim::getCurrentTime() / 1000.0 * 2.0; mMoveSpeed = Sim::getCurrentTime() / 1000.0 * 0.025; } //-------------------------------------------------------------------------- // Render //-------------------------------------------------------------------------- void UnderLavaFX::render() { init(); glMatrixMode(GL_MODELVIEW); glPushMatrix(); glLoadIdentity(); glMatrixMode(GL_PROJECTION); glPushMatrix(); glLoadIdentity(); glEnable(GL_TEXTURE_2D); // TextureHandle lavaTex = WaterBlock::getSubmergeTexture(0); glBindTexture(GL_TEXTURE_2D, WaterBlock::getSubmergeTexture(0).getGLName()); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); glDepthMask(GL_FALSE); glColor4f(1.0, 1.0, 1.0, 0.5); if( WaterBlock::getSubmergeTexture(0) ) { glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); // render layer 1 for( U32 i=0; i