diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index 0f9fb6daa..66b5b4b3a 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -644,7 +644,6 @@ set(viewer_HEADER_FILES lldrawpoolalpha.h lldrawpoolavatar.h lldrawpoolbump.h - lldrawpoolclouds.h lldrawpoolground.h lldrawpoolsimple.h lldrawpoolsky.h diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index b33472ac1..2b521fed4 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -8,6 +8,18 @@ settings_sh.xml settings_rlv.xml + + SianaRenderDeferredInvisiprim + + Comment + Support invisiprims in deferred mode + Persist + 1 + Type + Boolean + Value + 1 + SGAbsolutePointer diff --git a/indra/newview/lldrawpool.cpp b/indra/newview/lldrawpool.cpp index 77f25bc6b..968ed740a 100644 --- a/indra/newview/lldrawpool.cpp +++ b/indra/newview/lldrawpool.cpp @@ -41,7 +41,6 @@ #include "lldrawpoolalpha.h" #include "lldrawpoolavatar.h" #include "lldrawpoolbump.h" -#include "lldrawpoolclouds.h" #include "lldrawpoolground.h" #include "lldrawpoolsimple.h" #include "lldrawpoolsky.h" diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp index ff47bed4e..a88c7ce46 100644 --- a/indra/newview/lldrawpoolbump.cpp +++ b/indra/newview/lldrawpoolbump.cpp @@ -1589,7 +1589,11 @@ void LLDrawPoolInvisible::endDeferredPass( S32 pass ) void LLDrawPoolInvisible::renderDeferred( S32 pass ) { //render invisiprims; this doesn't work becaue it also blocks all the post-deferred stuff -#if 0 + static const LLCachedControl enable("SianaRenderDeferredInvisiprim"); + if (!enable) { + return; + } + LLFastTimer t(FTM_RENDER_INVISIBLE); U32 invisi_mask = LLVertexBuffer::MAP_VERTEX; @@ -1607,5 +1611,4 @@ void LLDrawPoolInvisible::renderDeferred( S32 pass ) renderShiny(true); endShiny(true); } -#endif } diff --git a/indra/newview/lldrawpoolclouds.cpp b/indra/newview/lldrawpoolclouds.cpp deleted file mode 100644 index 0ded5695d..000000000 --- a/indra/newview/lldrawpoolclouds.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/** - * @file lldrawpoolclouds.cpp - * @brief LLDrawPoolClouds class implementation - * - * $LicenseInfo:firstyear=2006&license=viewergpl$ - * - * Copyright (c) 2006-2009, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#include "llviewerprecompiledheaders.h" - -#include "lldrawpoolclouds.h" - -#include "llface.h" -#include "llsky.h" -#include "llviewercamera.h" -#include "llvoclouds.h" -#include "pipeline.h" - -LLDrawPoolClouds::LLDrawPoolClouds() : - LLDrawPool(POOL_CLOUDS) -{ -} - -LLDrawPool *LLDrawPoolClouds::instancePool() -{ - return new LLDrawPoolClouds(); -} - -BOOL LLDrawPoolClouds::addFace(LLFace* face) -{ - llerrs << "WTF?" << llendl; - return FALSE; -} - -void LLDrawPoolClouds::enqueue(LLFace *facep) -{ - mDrawFace.push_back(facep); - facep->mDistance = (facep->mCenterAgent - gCamera->getOrigin()) * gCamera->getAtAxis(); -} - -void LLDrawPoolClouds::beginRenderPass(S32 pass) -{ - glEnableClientState(GL_VERTEX_ARRAY); - glEnableClientState(GL_TEXTURE_COORD_ARRAY); - glEnableClientState(GL_NORMAL_ARRAY); -} - -void LLDrawPoolClouds::prerender() -{ - mVertexShaderLevel = gPipeline.getVertexShaderLevel(LLPipeline::SHADER_ENVIRONMENT); -} - -void LLDrawPoolClouds::render(S32 pass) -{ - LLFastTimer ftm(FTM_RENDER_CLOUDS); - if (!(gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_CLOUDS))) - { - return; - } - - if (mDrawFace.empty()) - { - return; - } - - LLGLSPipelineAlpha gls_pipeline_alpha; - LLGLDepthTest gls_depth(GL_TRUE, GL_FALSE); - glAlphaFunc(GL_GREATER,0.01f); - - gPipeline.enableLightsFullbright(LLColor4(1.f,1.f,1.f)); - - mDrawFace[0]->bindTexture(); - - std::sort(mDrawFace.begin(), mDrawFace.end(), LLFace::CompareDistanceGreater()); - - drawLoop(); -} - - diff --git a/indra/newview/lldrawpoolclouds.h b/indra/newview/lldrawpoolclouds.h deleted file mode 100644 index 7c95b3ec0..000000000 --- a/indra/newview/lldrawpoolclouds.h +++ /dev/null @@ -1,60 +0,0 @@ -/** - * @file lldrawpoolclouds.h - * @brief LLDrawPoolClouds class definition - * - * $LicenseInfo:firstyear=2006&license=viewergpl$ - * - * Copyright (c) 2006-2009, Linden Research, Inc. - * - * Second Life Viewer Source Code - * The source code in this file ("Source Code") is provided by Linden Lab - * to you under the terms of the GNU General Public License, version 2.0 - * ("GPL"), unless you have obtained a separate licensing agreement - * ("Other License"), formally executed by you and Linden Lab. Terms of - * the GPL can be found in doc/GPL-license.txt in this distribution, or - * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2 - * - * There are special exceptions to the terms and conditions of the GPL as - * it is applied to this Source Code. View the full text of the exception - * in the file doc/FLOSS-exception.txt in this software distribution, or - * online at - * http://secondlifegrid.net/programs/open_source/licensing/flossexception - * - * By copying, modifying or distributing this software, you acknowledge - * that you have read and understood your obligations described above, - * and agree to abide by those obligations. - * - * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO - * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, - * COMPLETENESS OR PERFORMANCE. - * $/LicenseInfo$ - */ - -#ifndef LL_LLDRAWPOOLCLOUDS_H -#define LL_LLDRAWPOOLCLOUDS_H - -#include "lldrawpool.h" - -class LLDrawPoolClouds : public LLDrawPool -{ -public: - enum - { - VERTEX_DATA_MASK = LLVertexBuffer::MAP_VERTEX | - LLVertexBuffer::MAP_NORMAL | - LLVertexBuffer::MAP_TEXCOORD0 - }; - - BOOL addFace(LLFace* face); - virtual U32 getVertexDataMask() { return VERTEX_DATA_MASK; } - - LLDrawPoolClouds(); - - /*virtual*/ void prerender(); - /*virtual*/ LLDrawPool *instancePool(); - /*virtual*/ void enqueue(LLFace *face); - /*virtual*/ void beginRenderPass(S32 pass); - /*virtual*/ void render(S32 pass = 0); -}; - -#endif // LL_LLDRAWPOOLSKY_H diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index 47e7b963e..67ec98f30 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -368,7 +368,7 @@ private: void removeFromQuickLookup( LLDrawPool* poolp ); BOOL updateDrawableGeom(LLDrawable* drawable, BOOL priority); void assertInitializedDoError(); - bool assertInitialized() { const bool is_init = isInit(); if (!is_init) assertInitializedDoError(); return is_init; }; + bool assertInitialized() { const bool is_init = isInit(); if (!is_init) assertInitializedDoError(); return is_init; } public: enum {GPU_CLASS_MAX = 3 };