summaryrefslogtreecommitdiff
path: root/indra/appearance_utility/llbakingshadermgr.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/appearance_utility/llbakingshadermgr.cpp')
-rw-r--r--indra/appearance_utility/llbakingshadermgr.cpp226
1 files changed, 0 insertions, 226 deletions
diff --git a/indra/appearance_utility/llbakingshadermgr.cpp b/indra/appearance_utility/llbakingshadermgr.cpp
deleted file mode 100644
index a858fc760f..0000000000
--- a/indra/appearance_utility/llbakingshadermgr.cpp
+++ /dev/null
@@ -1,226 +0,0 @@
-
-/**
- * @file LLBakingShaderMgr.cpp
- * @brief Viewer shader manager implementation.
- *
- * $LicenseInfo:firstyear=2005&license=viewerlgpl$
- * Second Life Viewer Source Code
- * Copyright (C) 2010, Linden Research, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation;
- * version 2.1 of the License only.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- *
- * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
- * $/LicenseInfo$
- */
-
-
-#include "linden_common.h"
-
-#include "llbakingshadermgr.h"
-
-#include "lldir.h"
-#include "llfile.h"
-#include "llrender.h"
-#include "llvertexbuffer.h"
-
-#if LL_DARWIN
-#include "OpenGL/OpenGL.h"
-#endif
-
-#ifdef LL_RELEASE_FOR_DOWNLOAD
-#define UNIFORM_ERRS LL_WARNS_ONCE("Shader")
-#else
-#define UNIFORM_ERRS LL_ERRS("Shader")
-#endif
-
-// Lots of STL stuff in here, using namespace std to keep things more readable
-using std::vector;
-using std::pair;
-using std::make_pair;
-using std::string;
-
-BOOL LLBakingShaderMgr::sInitialized = FALSE;
-bool LLBakingShaderMgr::sSkipReload = false;
-
-//utility shaders
-LLGLSLShader gAlphaMaskProgram;
-
-
-LLBakingShaderMgr::LLBakingShaderMgr() :
- mVertexShaderLevel(SHADER_COUNT, 0),
- mMaxAvatarShaderLevel(0)
-{
-}
-
-LLBakingShaderMgr::~LLBakingShaderMgr()
-{
- mVertexShaderLevel.clear();
- mShaderList.clear();
-}
-
-// static
-LLBakingShaderMgr * LLBakingShaderMgr::instance()
-{
- if(NULL == sInstance)
- {
- sInstance = new LLBakingShaderMgr();
- }
-
- return static_cast<LLBakingShaderMgr*>(sInstance);
-}
-
-void LLBakingShaderMgr::initAttribsAndUniforms(void)
-{
- if (mReservedAttribs.empty())
- {
- LLShaderMgr::initAttribsAndUniforms();
- }
-}
-
-
-//============================================================================
-// Set Levels
-
-S32 LLBakingShaderMgr::getVertexShaderLevel(S32 type)
-{
- return mVertexShaderLevel[type];
-}
-
-//============================================================================
-// Shader Management
-
-void LLBakingShaderMgr::setShaders()
-{
- //setShaders might be called redundantly by gSavedSettings, so return on reentrance
- static bool reentrance = false;
-
- if (!sInitialized || reentrance || sSkipReload)
- {
- return;
- }
-
- LLGLSLShader::sIndexedTextureChannels = llmax(gGLManager.mNumTextureImageUnits, 1);
-
- //NEVER use more than 16 texture channels (work around for prevalent driver bug)
- LLGLSLShader::sIndexedTextureChannels = llmin(LLGLSLShader::sIndexedTextureChannels, 16);
-
- if (gGLManager.mGLSLVersionMajor < 1 ||
- (gGLManager.mGLSLVersionMajor == 1 && gGLManager.mGLSLVersionMinor <= 20))
- { //NEVER use indexed texture rendering when GLSL version is 1.20 or earlier
- LLGLSLShader::sIndexedTextureChannels = 1;
- }
-
- reentrance = true;
-
- //setup preprocessor definitions
- LLShaderMgr::instance()->mDefinitions["NUM_TEX_UNITS"] = llformat("%d", gGLManager.mNumTextureImageUnits);
-
- // Make sure the compiled shader map is cleared before we recompile shaders.
- mShaderObjects.clear();
-
- initAttribsAndUniforms();
-
- // Shaders
- LL_INFOS("ShaderLoading") << "\n~~~~~~~~~~~~~~~~~~\n Loading Shaders:\n~~~~~~~~~~~~~~~~~~" << LL_ENDL;
- LL_INFOS("ShaderLoading") << llformat("Using GLSL %d.%d", gGLManager.mGLSLVersionMajor, gGLManager.mGLSLVersionMinor) << llendl;
-
- for (S32 i = 0; i < SHADER_COUNT; i++)
- {
- mVertexShaderLevel[i] = 0;
- }
- mMaxAvatarShaderLevel = 0;
-
- LLGLSLShader::sNoFixedFunction = false;
- LLVertexBuffer::unbind();
- if (gGLManager.mGLSLVersionMajor > 1 || gGLManager.mGLSLVersionMinor >= 10)
- {
- //using shaders, disable fixed function
- LLGLSLShader::sNoFixedFunction = true;
-
- //gPipeline.mVertexShadersEnabled = TRUE;
- //gPipeline.mVertexShadersLoaded = 1;
-
- loadShadersInterface();
- }
- else
- {
- LLGLSLShader::sNoFixedFunction = false;
- //gPipeline.mVertexShadersEnabled = FALSE;
- //gPipeline.mVertexShadersLoaded = 0;
- mVertexShaderLevel[SHADER_LIGHTING] = 0;
- mVertexShaderLevel[SHADER_INTERFACE] = 0;
- mVertexShaderLevel[SHADER_ENVIRONMENT] = 0;
- mVertexShaderLevel[SHADER_WATER] = 0;
- mVertexShaderLevel[SHADER_OBJECT] = 0;
- mVertexShaderLevel[SHADER_EFFECT] = 0;
- mVertexShaderLevel[SHADER_WINDLIGHT] = 0;
- mVertexShaderLevel[SHADER_AVATAR] = 0;
- }
-
- //gPipeline.createGLBuffers();
-
- reentrance = false;
-}
-
-void LLBakingShaderMgr::unloadShaders()
-{
- gAlphaMaskProgram.unload();
-
- mVertexShaderLevel[SHADER_INTERFACE] = 0;
-
- //gPipeline.mVertexShadersLoaded = 0;
-}
-
-BOOL LLBakingShaderMgr::loadShadersInterface()
-{
- BOOL success = TRUE;
-
- if (success)
- {
- gAlphaMaskProgram.mName = "Alpha Mask Shader";
- gAlphaMaskProgram.mShaderFiles.clear();
- gAlphaMaskProgram.mShaderFiles.push_back(make_pair("interface/alphamaskV.glsl", GL_VERTEX_SHADER_ARB));
- gAlphaMaskProgram.mShaderFiles.push_back(make_pair("interface/alphamaskF.glsl", GL_FRAGMENT_SHADER_ARB));
- gAlphaMaskProgram.mShaderLevel = mVertexShaderLevel[SHADER_INTERFACE];
- success = gAlphaMaskProgram.createShader(NULL, NULL);
- }
-
- if( !success )
- {
- mVertexShaderLevel[SHADER_INTERFACE] = 0;
- return FALSE;
- }
-
- return TRUE;
-}
-
-std::string LLBakingShaderMgr::getShaderDirPrefix(void)
-{
- return gDirUtilp->getExpandedFilename(LL_PATH_APP_SETTINGS, "shaders/class");
-}
-
-void LLBakingShaderMgr::updateShaderUniforms(LLGLSLShader * shader)
-{
-}
-
-LLBakingShaderMgr::shader_iter LLBakingShaderMgr::beginShaders() const
-{
- return mShaderList.begin();
-}
-
-LLBakingShaderMgr::shader_iter LLBakingShaderMgr::endShaders() const
-{
- return mShaderList.end();
-}