Merge git://github.com/Shyotl/SingularityViewer

This commit is contained in:
Siana Gearz
2011-05-03 19:34:16 +02:00
6 changed files with 43 additions and 20 deletions

View File

@@ -54,6 +54,7 @@ public:
// common messaging components // common messaging components
FTM_PUMP, FTM_PUMP,
FTM_CURL, FTM_CURL,
FTM_PUMPIO,
// common simulation components // common simulation components
FTM_UPDATE_ANIMATION, FTM_UPDATE_ANIMATION,

View File

@@ -450,7 +450,7 @@ void LLPumpIO::pump()
void LLPumpIO::pump(const S32& poll_timeout) void LLPumpIO::pump(const S32& poll_timeout)
{ {
LLMemType m1(LLMemType::MTYPE_IO_PUMP); LLMemType m1(LLMemType::MTYPE_IO_PUMP);
LLFastTimer t1(LLFastTimer::FTM_PUMP); LLFastTimer t1(LLFastTimer::FTM_PUMPIO);
//llinfos << "LLPumpIO::pump()" << llendl; //llinfos << "LLPumpIO::pump()" << llendl;
// Run any pending runners. // Run any pending runners.

View File

@@ -399,7 +399,13 @@ void LLRenderTarget::flush(BOOL fetch_depth)
check_framebuffer_status(); check_framebuffer_status();
stop_glerror(); stop_glerror();
glBlitFramebufferEXT(0, 0, mResX, mResY, 0, 0, mResX, mResY, GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT, GL_NEAREST); if(gGLManager.mIsATI)
{
glBlitFramebufferEXT(0, 0, mResX, mResY, 0, 0, mResX, mResY, GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT, GL_NEAREST);
glBlitFramebufferEXT(0, 0, mResX, mResY, 0, 0, mResX, mResY, GL_STENCIL_BUFFER_BIT, GL_NEAREST);
}
else
glBlitFramebufferEXT(0, 0, mResX, mResY, 0, 0, mResX, mResY, GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT, GL_NEAREST);
stop_glerror(); stop_glerror();
if (mTex.size() > 1) if (mTex.size() > 1)
@@ -465,7 +471,13 @@ void LLRenderTarget::copyContents(LLRenderTarget& source, S32 srcX0, S32 srcY0,
stop_glerror(); stop_glerror();
check_framebuffer_status(); check_framebuffer_status();
stop_glerror(); stop_glerror();
glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); if(gGLManager.mIsATI && mask & GL_STENCIL_BUFFER_BIT)
{
mask &= ~GL_STENCIL_BUFFER_BIT;
glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, GL_STENCIL_BUFFER_BIT, filter);
}
if(mask)
glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
stop_glerror(); stop_glerror();
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
stop_glerror(); stop_glerror();
@@ -482,13 +494,19 @@ void LLRenderTarget::copyContentsToFramebuffer(LLRenderTarget& source, S32 srcX0
llerrs << "Cannot copy framebuffer contents for non FBO render targets." << llendl; llerrs << "Cannot copy framebuffer contents for non FBO render targets." << llendl;
} }
{ {
glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, source.mFBO); glBindFramebufferEXT(GL_READ_FRAMEBUFFER_EXT, source.mSampleBuffer ? source.mSampleBuffer->mFBO : source.mFBO);
stop_glerror(); stop_glerror();
glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, 0); glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER_EXT, 0);
stop_glerror(); stop_glerror();
check_framebuffer_status(); check_framebuffer_status();
stop_glerror(); stop_glerror();
glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter); if(gGLManager.mIsATI && mask & GL_STENCIL_BUFFER_BIT)
{
mask &= ~GL_STENCIL_BUFFER_BIT;
glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, GL_STENCIL_BUFFER_BIT, filter);
}
if(mask)
glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter);
stop_glerror(); stop_glerror();
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0); glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
stop_glerror(); stop_glerror();

View File

@@ -85,6 +85,7 @@ static struct ft_display_info ft_display_table[] =
{ LLFastTimer::FTM_IDLE, " Idle", &blue0, 0 }, { LLFastTimer::FTM_IDLE, " Idle", &blue0, 0 },
{ LLFastTimer::FTM_PUMP, " Pump", &LLColor4::magenta2, 1 }, { LLFastTimer::FTM_PUMP, " Pump", &LLColor4::magenta2, 1 },
{ LLFastTimer::FTM_CURL, " Curl", &LLColor4::magenta3, 0 }, { LLFastTimer::FTM_CURL, " Curl", &LLColor4::magenta3, 0 },
{ LLFastTimer::FTM_PUMPIO, " PumpIO", &LLColor4::magenta1, 0 },
{ LLFastTimer::FTM_INVENTORY, " Inventory Update", &LLColor4::purple6, 1 }, { LLFastTimer::FTM_INVENTORY, " Inventory Update", &LLColor4::purple6, 1 },
{ LLFastTimer::FTM_AUTO_SELECT, " Open and Select", &LLColor4::red, 0 }, { LLFastTimer::FTM_AUTO_SELECT, " Open and Select", &LLColor4::red, 0 },
{ LLFastTimer::FTM_FILTER, " Filter", &LLColor4::red2, 0 }, { LLFastTimer::FTM_FILTER, " Filter", &LLColor4::red2, 0 },

View File

@@ -142,13 +142,13 @@ void LLViewerTextureList::doPreloadImages()
image->setAddressMode(LLTexUnit::TAM_WRAP); image->setAddressMode(LLTexUnit::TAM_WRAP);
mImagePreloads.insert(image); mImagePreloads.insert(image);
} }
image = LLViewerTextureManager::getFetchedTextureFromFile("world/NoEntryLines.png", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI); image = LLViewerTextureManager::getFetchedTextureFromFile("noentrylines.j2c"/*"world/NoEntryLines.png"*/, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);
if (image) if (image)
{ {
image->setAddressMode(LLTexUnit::TAM_WRAP); image->setAddressMode(LLTexUnit::TAM_WRAP);
mImagePreloads.insert(image); mImagePreloads.insert(image);
} }
image = LLViewerTextureManager::getFetchedTextureFromFile("world/NoEntryPassLines.png", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI); image = LLViewerTextureManager::getFetchedTextureFromFile("noentrypasslines.j2c"/*"world/NoEntryPassLines.png"*/, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI);
if (image) if (image)
{ {
image->setAddressMode(LLTexUnit::TAM_WRAP); image->setAddressMode(LLTexUnit::TAM_WRAP);
@@ -160,7 +160,7 @@ void LLViewerTextureList::doPreloadImages()
image->setAddressMode(LLTexUnit::TAM_WRAP); image->setAddressMode(LLTexUnit::TAM_WRAP);
mImagePreloads.insert(image); mImagePreloads.insert(image);
} }
image = LLViewerTextureManager::getFetchedTextureFromFile("transparent.j2c", MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI, LLViewerTexture::FETCHED_TEXTURE, image = LLViewerTextureManager::getFetchedTextureFromFile("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903.j2c"/*"transparent.j2c"*/, MIPMAP_YES, LLViewerFetchedTexture::BOOST_UI, LLViewerTexture::FETCHED_TEXTURE,
0,0,LLUUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903")); 0,0,LLUUID("8dcd4a48-2d37-4909-9f78-f7a9eb4ef903"));
if (image) if (image)
{ {

View File

@@ -544,7 +544,7 @@ void LLPipeline::allocateScreenBuffer(U32 resX, U32 resY)
stop_glerror(); stop_glerror();
} }
else if (LLPipeline::sRenderDeferred) if (LLPipeline::sRenderDeferred)
{ //share depth buffer between deferred targets { //share depth buffer between deferred targets
mDeferredScreen.shareDepthBuffer(mScreen); mDeferredScreen.shareDepthBuffer(mScreen);
for (U32 i = 0; i < 2; i++) for (U32 i = 0; i < 2; i++)
@@ -2622,7 +2622,7 @@ void render_hud_elements()
//TO-DO: //TO-DO:
//V2 moved this line from LLPipeline::renderGeom //V2 moved this line from LLPipeline::renderGeom
//Uncomment once multisample z-buffer issues are figured out on ati cards. //Uncomment once multisample z-buffer issues are figured out on ati cards.
// LLHUDObject::renderAll(); LLHUDObject::renderAll();
//gObjectList.resetObjectBeacons(); //gObjectList.resetObjectBeacons();
} }
@@ -2949,7 +2949,7 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
//TO-DO: //TO-DO:
//V2 moved this line to LLPipeline::render_hud_elements //V2 moved this line to LLPipeline::render_hud_elements
//Migrate once multisample z-buffer issues are figured out on ati cards. //Migrate once multisample z-buffer issues are figured out on ati cards.
LLHUDObject::renderAll(); //LLHUDObject::renderAll();
gObjectList.resetObjectBeacons(); gObjectList.resetObjectBeacons();
} }
else else
@@ -3181,7 +3181,7 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
//TO-DO: //TO-DO:
//V2 moved block to LLPipeline::renderDeferredLighting //V2 moved block to LLPipeline::renderDeferredLighting
//Migrate once multisample z-buffer issues are figured out on ati cards. //Migrate once multisample z-buffer issues are figured out on ati cards.
if(!sImpostorRender) /*if(!sImpostorRender)
{ {
renderHighlights(); renderHighlights();
mHighlightFaces.clear(); mHighlightFaces.clear();
@@ -3202,7 +3202,7 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
// Make sure particle effects disappear // Make sure particle effects disappear
LLHUDObject::renderAllForTimer(); LLHUDObject::renderAllForTimer();
} }
} }*/
//END //END
if (occlude) if (occlude)
@@ -5596,11 +5596,11 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield, b
//TO-DO: //TO-DO:
//V2 requires this for hover text and such since they have been pulled out of geom render. //V2 requires this for hover text and such since they have been pulled out of geom render.
//Do this when multisample z-buffer issues are figured out //Do this when multisample z-buffer issues are figured out
/*if (LLRenderTarget::sUseFBO) if (LLRenderTarget::sUseFBO)
{ //copy depth buffer from mScreen to framebuffer { //copy depth buffer from mScreen to framebuffer
LLRenderTarget::copyContentsToFramebuffer(mScreen, 0, 0, mScreen.getWidth(), mScreen.getHeight(), LLRenderTarget::copyContentsToFramebuffer(mScreen, 0, 0, mScreen.getWidth(), mScreen.getHeight(),
0, 0, mScreen.getWidth(), mScreen.getHeight(), GL_DEPTH_BUFFER_BIT, GL_NEAREST); 0, 0, mScreen.getWidth(), mScreen.getHeight(), GL_DEPTH_BUFFER_BIT, GL_NEAREST);
}*/ }
} }
@@ -5869,7 +5869,8 @@ void LLPipeline::renderDeferredLighting()
//TO-DO: //TO-DO:
//V2 changed to LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS); //V2 changed to LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS);
//Do this when multisample z-buffer issues are figured out //Do this when multisample z-buffer issues are figured out
LLGLDepthTest depth(GL_FALSE); //LLGLDepthTest depth(GL_FALSE);
LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS);
stop_glerror(); stop_glerror();
glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); glDrawArrays(GL_TRIANGLE_STRIP, 0, 3);
stop_glerror(); stop_glerror();
@@ -5929,7 +5930,8 @@ void LLPipeline::renderDeferredLighting()
//TO-DO: //TO-DO:
//V2 changed to LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS); //V2 changed to LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS);
//Do this when multisample z-buffer issues are figured out //Do this when multisample z-buffer issues are figured out
LLGLDepthTest depth(GL_FALSE); //LLGLDepthTest depth(GL_FALSE);
LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS);
stop_glerror(); stop_glerror();
glDrawArrays(GL_TRIANGLE_STRIP, 0, 3); glDrawArrays(GL_TRIANGLE_STRIP, 0, 3);
stop_glerror(); stop_glerror();
@@ -5948,7 +5950,8 @@ void LLPipeline::renderDeferredLighting()
//TO-DO: //TO-DO:
//V2 changed to LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS); //V2 changed to LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS);
//Do this when multisample z-buffer issues are figured out //Do this when multisample z-buffer issues are figured out
LLGLDepthTest depth(GL_FALSE); //LLGLDepthTest depth(GL_FALSE);
LLGLDepthTest depth(GL_TRUE, GL_FALSE, GL_ALWAYS);
stop_glerror(); stop_glerror();
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
stop_glerror(); stop_glerror();
@@ -6189,7 +6192,7 @@ void LLPipeline::renderDeferredLighting()
//TO-DO: //TO-DO:
//V2 moved block from LLPipeline::renderGeomPostDeferred //V2 moved block from LLPipeline::renderGeomPostDeferred
//Migrate once multisample z-buffer issues are figured out on ati cards. //Migrate once multisample z-buffer issues are figured out on ati cards.
/*{ {
//render highlights, etc. //render highlights, etc.
renderHighlights(); renderHighlights();
mHighlightFaces.clear(); mHighlightFaces.clear();
@@ -6204,7 +6207,7 @@ void LLPipeline::renderDeferredLighting()
gObjectList.renderObjectBeacons(); gObjectList.renderObjectBeacons();
gObjectList.resetObjectBeacons(); gObjectList.resetObjectBeacons();
} }
}*/ }
mScreen.flush(); mScreen.flush();