Added blendfunc checks when RenderDebugGL is TRUE.

This commit is contained in:
Shyotl
2013-03-30 01:26:07 -05:00
parent 03272c8875
commit b07ab02f54
5 changed files with 29 additions and 1 deletions

View File

@@ -1023,6 +1023,7 @@ void LLLightState::setSpotDirection(const LLVector3& direction)
}
}
LLRender::eBlendFactor blendfunc_debug[4]={LLRender::BF_UNDEF};
LLRender::LLRender()
: mDirty(false),
mCount(0),
@@ -1683,6 +1684,14 @@ void LLRender::setAlphaRejectSettings(eCompareFunc func, F32 value)
}
}
void check_blend_funcs()
{
llassert_always(blendfunc_debug[0] == LLRender::BF_SOURCE_ALPHA );
llassert_always(blendfunc_debug[1] == LLRender::BF_SOURCE_ALPHA );
llassert_always(blendfunc_debug[2] == LLRender::BF_ONE_MINUS_SOURCE_ALPHA );
llassert_always(blendfunc_debug[3] == LLRender::BF_ONE_MINUS_SOURCE_ALPHA );
}
void LLRender::blendFunc(eBlendFactor sfactor, eBlendFactor dfactor)
{
llassert(sfactor < BF_UNDEF);
@@ -1694,6 +1703,8 @@ void LLRender::blendFunc(eBlendFactor sfactor, eBlendFactor dfactor)
mCurrBlendAlphaSFactor = sfactor;
mCurrBlendColorDFactor = dfactor;
mCurrBlendAlphaDFactor = dfactor;
blendfunc_debug[0]=blendfunc_debug[1]=sfactor;
blendfunc_debug[2]=blendfunc_debug[3]=dfactor;
flush();
glBlendFunc(sGLBlendFactor[sfactor], sGLBlendFactor[dfactor]);
}
@@ -1719,6 +1730,8 @@ void LLRender::blendFunc(eBlendFactor color_sfactor, eBlendFactor color_dfactor,
mCurrBlendAlphaSFactor = alpha_sfactor;
mCurrBlendColorDFactor = color_dfactor;
mCurrBlendAlphaDFactor = alpha_dfactor;
blendfunc_debug[0]=blendfunc_debug[2]=color_sfactor;
blendfunc_debug[1]=blendfunc_debug[3]=alpha_sfactor;
flush();
glBlendFuncSeparateEXT(sGLBlendFactor[color_sfactor], sGLBlendFactor[color_dfactor],
sGLBlendFactor[alpha_sfactor], sGLBlendFactor[alpha_dfactor]);

View File

@@ -1152,6 +1152,7 @@ void LLView::draw()
drawChildren();
}
extern void check_blend_funcs();
void LLView::drawChildren()
{
@@ -1186,7 +1187,9 @@ void LLView::drawChildren()
LLUI::translate((F32)viewp->getRect().mLeft, (F32)viewp->getRect().mBottom, 0.f);
// flag the fact we are in draw here, in case overridden draw() method attempts to remove this widget
viewp->mInDraw = true;
if(gDebugGL)check_blend_funcs();
viewp->draw();
if(gDebugGL)check_blend_funcs();
viewp->mInDraw = false;
if (sDebugRects)
@@ -1293,7 +1296,9 @@ void LLView::drawChild(LLView* childp, S32 x_offset, S32 y_offset, BOOL force_dr
LLUI::pushMatrix();
{
LLUI::translate((F32)childp->getRect().mLeft + x_offset, (F32)childp->getRect().mBottom + y_offset, 0.f);
if(gDebugGL)check_blend_funcs();
childp->draw();
if(gDebugGL)check_blend_funcs();
}
LLUI::popMatrix();
}

View File

@@ -1516,6 +1516,7 @@ void render_ui_3d()
stop_glerror();
}
extern void check_blend_funcs();
void render_ui_2d()
{
LLGLSUIDefault gls_ui;
@@ -1561,7 +1562,9 @@ void render_ui_2d()
gGL.popMatrix();
stop_glerror();
}
if(gDebugGL)check_blend_funcs();
gViewerWindow->draw();
if(gDebugGL)check_blend_funcs();
// reset current origin for font rendering, in case of tiling render
LLFontGL::sCurOrigin.set(0, 0);

View File

@@ -2334,6 +2334,7 @@ void LLViewerWindow::drawDebugText()
}
}
extern void check_blend_funcs();
void LLViewerWindow::draw()
{
@@ -2411,7 +2412,9 @@ void LLViewerWindow::draw()
// Draw all nested UI views.
// No translation needed, this view is glued to 0,0
if(gDebugGL)check_blend_funcs();
mRootView->draw();
if(gDebugGL)check_blend_funcs();
// Draw optional on-top-of-everyone view
LLUICtrl* top_ctrl = gFocusMgr.getTopCtrl();
@@ -2423,7 +2426,9 @@ void LLViewerWindow::draw()
gGL.matrixMode(LLRender::MM_MODELVIEW);
LLUI::pushMatrix();
LLUI::translate( (F32) screen_x, (F32) screen_y, 0.f);
if(gDebugGL)check_blend_funcs();
top_ctrl->draw();
if(gDebugGL)check_blend_funcs();
LLUI::popMatrix();
}

View File

@@ -3743,6 +3743,7 @@ void LLPipeline::renderHighlights()
//debug use
U32 LLPipeline::sCurRenderPoolType = 0 ;
extern void check_blend_funcs();
void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
{
LLFastTimer t(FTM_RENDER_GEOMETRY);
@@ -3879,6 +3880,7 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
for( S32 i = 0; i < poolp->getNumPasses(); i++ )
{
LLVertexBuffer::unbind();
if(gDebugGL)check_blend_funcs();
poolp->beginRenderPass(i);
for (iter2 = iter1; iter2 != mPools.end(); iter2++)
{
@@ -3887,10 +3889,10 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
{
break;
}
p->render(i);
}
poolp->endRenderPass(i);
if(gDebugGL)check_blend_funcs();
LLVertexBuffer::unbind();
if (gDebugGL)
{