From 435b9cd1bbb5cc5db18ff474f8a3d7272b217ad2 Mon Sep 17 00:00:00 2001 From: Shyotl Date: Wed, 12 Sep 2012 23:54:28 -0500 Subject: [PATCH] Including these changes to llglshader might've been a good thing to do a few commits ago. Eups. --- indra/llrender/llglslshader.cpp | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/indra/llrender/llglslshader.cpp b/indra/llrender/llglslshader.cpp index 1c90d7658..f9397bdb5 100644 --- a/indra/llrender/llglslshader.cpp +++ b/indra/llrender/llglslshader.cpp @@ -244,14 +244,16 @@ BOOL LLGLSLShader::createShader(vector * attributes, BOOL LLGLSLShader::attachObject(std::string object) { - if (LLShaderMgr::instance()->mShaderObjects.count(object) > 0) + std::multimap::iterator it = LLShaderMgr::instance()->mShaderObjects.begin(); + for(it;it!=LLShaderMgr::instance()->mShaderObjects.end();it++) { - stop_glerror(); - glAttachObjectARB(mProgramObject, LLShaderMgr::instance()->mShaderObjects[object]); - stop_glerror(); - return TRUE; + if((*it).first == object) + { + glAttachObjectARB(mProgramObject, (*it).second.mHandle); + stop_glerror(); + return TRUE; + } } - else { LL_WARNS("ShaderLoading") << "Attempting to attach shader object that hasn't been compiled: " << object << LL_ENDL; return FALSE; @@ -262,6 +264,20 @@ void LLGLSLShader::attachObject(GLhandleARB object) { if (object != 0) { + std::multimap::iterator it = LLShaderMgr::instance()->mShaderObjects.begin(); + for(it;it!=LLShaderMgr::instance()->mShaderObjects.end();it++) + { + if((*it).second.mHandle == object) + { + LL_DEBUGS("ShaderLoading") << "Attached: " << (*it).first << llendl; + break; + } + } + if(it == LLShaderMgr::instance()->mShaderObjects.end()) + { + LL_WARNS("ShaderLoading") << "Attached unknown shader!" << llendl; + } + stop_glerror(); glAttachObjectARB(mProgramObject, object); stop_glerror();