Skip to content
Snippets Groups Projects
Commit 5c88e724 authored by Rye Mutt's avatar Rye Mutt :bread:
Browse files

Set start shader at beginning of render pass in prep for overhaul of star render code

parent ee73a524
No related branches found
No related tags found
No related merge requests found
...@@ -52,8 +52,7 @@ static LLGLSLShader* cloud_shader = NULL; ...@@ -52,8 +52,7 @@ static LLGLSLShader* cloud_shader = NULL;
static LLGLSLShader* sky_shader = NULL; static LLGLSLShader* sky_shader = NULL;
static LLGLSLShader* sun_shader = NULL; static LLGLSLShader* sun_shader = NULL;
static LLGLSLShader* moon_shader = NULL; static LLGLSLShader* moon_shader = NULL;
static LLGLSLShader* star_shader = NULL;
static float sStarTime;
LLDrawPoolWLSky::LLDrawPoolWLSky(void) : LLDrawPoolWLSky::LLDrawPoolWLSky(void) :
LLDrawPool(POOL_WL_SKY) LLDrawPool(POOL_WL_SKY)
...@@ -90,6 +89,11 @@ void LLDrawPoolWLSky::beginRenderPass( S32 pass ) ...@@ -90,6 +89,11 @@ void LLDrawPoolWLSky::beginRenderPass( S32 pass )
LLPipeline::sUnderWaterRender ? LLPipeline::sUnderWaterRender ?
&gObjectFullbrightNoColorWaterProgram : &gObjectFullbrightNoColorWaterProgram :
&gWLMoonProgram; &gWLMoonProgram;
star_shader =
LLPipeline::sUnderWaterRender ?
&gObjectFullbrightNoColorWaterProgram :
&gCustomAlphaProgram;
} }
void LLDrawPoolWLSky::endRenderPass( S32 pass ) void LLDrawPoolWLSky::endRenderPass( S32 pass )
...@@ -98,6 +102,7 @@ void LLDrawPoolWLSky::endRenderPass( S32 pass ) ...@@ -98,6 +102,7 @@ void LLDrawPoolWLSky::endRenderPass( S32 pass )
cloud_shader = nullptr; cloud_shader = nullptr;
sun_shader = nullptr; sun_shader = nullptr;
moon_shader = nullptr; moon_shader = nullptr;
star_shader = nullptr;
} }
void LLDrawPoolWLSky::beginDeferredPass(S32 pass) void LLDrawPoolWLSky::beginDeferredPass(S32 pass)
...@@ -114,6 +119,11 @@ void LLDrawPoolWLSky::beginDeferredPass(S32 pass) ...@@ -114,6 +119,11 @@ void LLDrawPoolWLSky::beginDeferredPass(S32 pass)
LLPipeline::sUnderWaterRender ? LLPipeline::sUnderWaterRender ?
&gObjectFullbrightNoColorWaterProgram : &gObjectFullbrightNoColorWaterProgram :
&gDeferredWLMoonProgram; &gDeferredWLMoonProgram;
star_shader =
LLPipeline::sUnderWaterRender ?
&gObjectFullbrightNoColorWaterProgram :
&gDeferredStarProgram;
} }
void LLDrawPoolWLSky::endDeferredPass(S32 pass) void LLDrawPoolWLSky::endDeferredPass(S32 pass)
...@@ -122,6 +132,7 @@ void LLDrawPoolWLSky::endDeferredPass(S32 pass) ...@@ -122,6 +132,7 @@ void LLDrawPoolWLSky::endDeferredPass(S32 pass)
cloud_shader = nullptr; cloud_shader = nullptr;
sun_shader = nullptr; sun_shader = nullptr;
moon_shader = nullptr; moon_shader = nullptr;
star_shader = nullptr;
} }
void LLDrawPoolWLSky::renderDome(const LLVector3& camPosLocal, F32 camHeightLocal, LLGLSLShader * shader) const void LLDrawPoolWLSky::renderDome(const LLVector3& camPosLocal, F32 camHeightLocal, LLGLSLShader * shader) const
...@@ -260,8 +271,8 @@ void LLDrawPoolWLSky::renderStars(const LLSettingsSky::ptr_t& psky, const LLVect ...@@ -260,8 +271,8 @@ void LLDrawPoolWLSky::renderStars(const LLSettingsSky::ptr_t& psky, const LLVect
gGL.translatef(camPosLocal.mV[0], camPosLocal.mV[1], camPosLocal.mV[2]); gGL.translatef(camPosLocal.mV[0], camPosLocal.mV[1], camPosLocal.mV[2]);
if (LLGLSLShader::sNoFixedFunction) if (LLGLSLShader::sNoFixedFunction)
{ {
gCustomAlphaProgram.bind(); star_shader->bind();
gCustomAlphaProgram.uniform1f(sCustomAlpha, star_alpha.mV[3]); star_shader->uniform1f(sCustomAlpha, star_alpha.mV[3]);
} }
else else
{ {
...@@ -278,7 +289,7 @@ void LLDrawPoolWLSky::renderStars(const LLSettingsSky::ptr_t& psky, const LLVect ...@@ -278,7 +289,7 @@ void LLDrawPoolWLSky::renderStars(const LLSettingsSky::ptr_t& psky, const LLVect
if (LLGLSLShader::sNoFixedFunction) if (LLGLSLShader::sNoFixedFunction)
{ {
gCustomAlphaProgram.unbind(); star_shader->unbind();
} }
else else
{ {
...@@ -304,8 +315,6 @@ void LLDrawPoolWLSky::renderStarsDeferred(const LLSettingsSky::ptr_t& psky, cons ...@@ -304,8 +315,6 @@ void LLDrawPoolWLSky::renderStarsDeferred(const LLSettingsSky::ptr_t& psky, cons
return; return;
} }
LLViewerTexture* tex_a = gSky.mVOSkyp->getBloomTex(); LLViewerTexture* tex_a = gSky.mVOSkyp->getBloomTex();
LLViewerTexture* tex_b = gSky.mVOSkyp->getBloomTexNext(); LLViewerTexture* tex_b = gSky.mVOSkyp->getBloomTexNext();
...@@ -333,19 +342,17 @@ void LLDrawPoolWLSky::renderStarsDeferred(const LLSettingsSky::ptr_t& psky, cons ...@@ -333,19 +342,17 @@ void LLDrawPoolWLSky::renderStarsDeferred(const LLSettingsSky::ptr_t& psky, cons
gGL.pushMatrix(); gGL.pushMatrix();
gGL.translatef(camPosLocal.mV[0], camPosLocal.mV[1], camPosLocal.mV[2]); gGL.translatef(camPosLocal.mV[0], camPosLocal.mV[1], camPosLocal.mV[2]);
gDeferredStarProgram.bind(); star_shader->bind();
gDeferredStarProgram.uniform1f(LLShaderMgr::BLEND_FACTOR, blend_factor); star_shader->uniform1f(LLShaderMgr::BLEND_FACTOR, blend_factor);
if (LLPipeline::sReflectionRender) if (LLPipeline::sReflectionRender)
{ {
star_alpha = 1.0f; star_alpha = 1.0f;
} }
gDeferredStarProgram.uniform1f(sCustomAlpha, star_alpha); star_shader->uniform1f(sCustomAlpha, star_alpha);
sStarTime = (F32)LLFrameTimer::getElapsedSeconds() * 0.5f;
gDeferredStarProgram.uniform1f(LLShaderMgr::WATER_TIME, sStarTime); star_shader->uniform1f(LLShaderMgr::WATER_TIME, (F32)LLFrameTimer::getElapsedSeconds() * 0.5f);
gSky.mVOWLSkyp->drawStars(); gSky.mVOWLSkyp->drawStars();
...@@ -354,7 +361,7 @@ void LLDrawPoolWLSky::renderStarsDeferred(const LLSettingsSky::ptr_t& psky, cons ...@@ -354,7 +361,7 @@ void LLDrawPoolWLSky::renderStarsDeferred(const LLSettingsSky::ptr_t& psky, cons
gGL.popMatrix(); gGL.popMatrix();
gDeferredStarProgram.unbind(); star_shader->unbind();
} }
void LLDrawPoolWLSky::renderSkyClouds(const LLSettingsSky::ptr_t& psky, const LLVector3& camPosLocal, F32 camHeightLocal, LLGLSLShader* cloudshader) const void LLDrawPoolWLSky::renderSkyClouds(const LLSettingsSky::ptr_t& psky, const LLVector3& camPosLocal, F32 camHeightLocal, LLGLSLShader* cloudshader) const
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment