Some sprite fixes
This commit is contained in:
@@ -97,14 +97,14 @@ void BlurHUD::ClearBuffer()
|
|||||||
glClearStencil(0x00);
|
glClearStencil(0x00);
|
||||||
glStencilMask(~0);
|
glStencilMask(~0);
|
||||||
glDisable(GL_SCISSOR_TEST);
|
glDisable(GL_SCISSOR_TEST);
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
m_GaussianFrameBuffer_horiz.Unbind();
|
m_GaussianFrameBuffer_horiz.Unbind();
|
||||||
m_GaussianFrameBuffer_vert.Bind();
|
m_GaussianFrameBuffer_vert.Bind();
|
||||||
glClearColor(0.f, 0.f, 0.f, 0.f);
|
glClearColor(0.f, 0.f, 0.f, 0.f);
|
||||||
glClearStencil(0x00);
|
glClearStencil(0x00);
|
||||||
glStencilMask(~0);
|
glStencilMask(~0);
|
||||||
glDisable(GL_SCISSOR_TEST);
|
glDisable(GL_SCISSOR_TEST);
|
||||||
glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
|
glClear(GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||||
m_GaussianFrameBuffer_vert.Unbind();
|
m_GaussianFrameBuffer_vert.Unbind();
|
||||||
|
|
||||||
m_CombinedTextureBuffer.Bind();
|
m_CombinedTextureBuffer.Bind();
|
||||||
@@ -211,12 +211,16 @@ void BlurHUD::FillStencil(RenderScene& scene)
|
|||||||
RenderState state;
|
RenderState state;
|
||||||
|
|
||||||
state.BindFramebuffer(m_GaussianFrameBuffer_horiz.GetHandle());
|
state.BindFramebuffer(m_GaussianFrameBuffer_horiz.GetHandle());
|
||||||
state.Disable(GL_DEPTH_TEST);
|
state.Enable(GL_DEPTH_TEST);
|
||||||
state.Enable(GL_CULL_FACE);
|
state.Enable(GL_CULL_FACE);
|
||||||
state.Enable(GL_STENCIL_TEST);
|
state.Enable(GL_STENCIL_TEST);
|
||||||
state.StencilFunc(GL_ALWAYS, 1, 0xFF);
|
state.StencilFunc(GL_ALWAYS, 1, 0xFF);
|
||||||
state.StencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
|
state.StencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
|
||||||
state.StencilMask(0xFF);
|
state.StencilMask(0xFF);
|
||||||
|
|
||||||
|
state.AlphaFunc(GL_GEQUAL, 0.95f);
|
||||||
|
state.Enable(GL_ALPHA_TEST);
|
||||||
|
|
||||||
glViewport(0, 0, m_Renderer->GetViewportSize().Width/m_BlurQuality, m_Renderer->GetViewportSize().Height/m_BlurQuality);
|
glViewport(0, 0, m_Renderer->GetViewportSize().Width/m_BlurQuality, m_Renderer->GetViewportSize().Height/m_BlurQuality);
|
||||||
|
|
||||||
m_FillDepthStencilProgram->Bind();
|
m_FillDepthStencilProgram->Bind();
|
||||||
|
|||||||
@@ -302,6 +302,8 @@ void DrawFinalPass::Draw(RenderScene& scene, BlurHUD* blurHUDPass)
|
|||||||
GLERROR("TransparentObjects");
|
GLERROR("TransparentObjects");
|
||||||
//state->BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
//state->BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
|
||||||
stateSprite->Enable(GL_DEPTH_TEST);
|
stateSprite->Enable(GL_DEPTH_TEST);
|
||||||
|
stateSprite->AlphaFunc(GL_GEQUAL, 0.05f);
|
||||||
|
stateSprite->Enable(GL_ALPHA_TEST);
|
||||||
DrawSprites(scene.Jobs.SpriteJob, scene);
|
DrawSprites(scene.Jobs.SpriteJob, scene);
|
||||||
GLERROR("SpriteJobs");
|
GLERROR("SpriteJobs");
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user