#include <llglslshader.h>
Definition at line 136 of file llglslshader.h.
SHADER_LIGHTING | |
SHADER_OBJECT | |
SHADER_AVATAR | |
SHADER_ENVIRONMENT | |
SHADER_INTERFACE | |
SHADER_EFFECT | |
SHADER_WINDLIGHT | |
SHADER_WATER | |
SHADER_DEFERRED | |
SHADER_COUNT |
Definition at line 213 of file llglslshader.h.
Definition at line 227 of file llglslshader.h.
Definition at line 235 of file llglslshader.h.
Definition at line 269 of file llglslshader.h.
Definition at line 293 of file llglslshader.h.
Definition at line 307 of file llglslshader.h.
void LLShaderMgr::initAttribsAndUniforms | ( | void | ) | [static] |
Definition at line 181 of file llglslshader.cpp.
References sAvatarAttribs, sAvatarUniforms, sGlowExtractUniforms, sGlowUniforms, sReservedAttribs, sReservedUniforms, sShinyUniforms, sTerrainUniforms, sWaterUniforms, and sWLUniforms.
Referenced by setShaders().
BOOL LLShaderMgr::attachShaderFeatures | ( | LLGLSLShader * | shader | ) | [static] |
Definition at line 262 of file llglslshader.cpp.
References LLGLSLShader::attachObject(), LLShaderFeatures::calculatesAtmospherics, LLShaderFeatures::calculatesLighting, FALSE, LLShaderFeatures::hasAtmospherics, LLShaderFeatures::hasGamma, LLShaderFeatures::hasLighting, LLShaderFeatures::hasSkinning, LLShaderFeatures::hasTransport, LLShaderFeatures::hasWaterFog, LLShaderFeatures::isFullbright, LLShaderFeatures::isShiny, LLShaderFeatures::isSpecular, llassert_always, LLGLSLShader::mFeatures, NULL, and TRUE.
void LLShaderMgr::setShaders | ( | ) | [static] |
Definition at line 708 of file llglslshader.cpp.
References LLPipeline::createGLBuffers(), FALSE, LLControlGroup::getBOOL(), LLFeatureManager::getGPUClass(), LLSingleton< LLFeatureManager >::getInstance(), gGLManager, gPipeline, GPU_CLASS_2, gSavedSettings, gSky, gViewerWindow, i, initAttribsAndUniforms(), LLFeatureList::isFeatureAvailable(), LL_ENDL, LL_INFOS, llmax(), loadBasicShaders(), loadShadersAvatar(), loadShadersDeferred(), loadShadersEffects(), loadShadersEnvironment(), loadShadersInterface(), loadShadersObject(), loadShadersWater(), loadShadersWindLight(), LLGLManager::mHasCubeMap, LLPipeline::mInitialized, LLPipeline::mVertexShadersEnabled, LLPipeline::mVertexShadersLoaded, LLSky::mVOSkyp, LLPointer< Type >::notNull(), LLPipeline::releaseGLBuffers(), LLPipeline::resetVertexBuffers(), S32, LLPipeline::sDynamicReflections, LLControlGroup::setBOOL(), LLViewerWindow::setCursor(), LLPipeline::setLightingDetail(), SHADER_AVATAR, SHADER_COUNT, SHADER_DEFERRED, SHADER_EFFECT, SHADER_ENVIRONMENT, SHADER_INTERFACE, SHADER_LIGHTING, SHADER_OBJECT, SHADER_WATER, SHADER_WINDLIGHT, sMaxAvatarShaderLevel, LLPipeline::sRenderGlow, sShaderObjects, sVertexShaderLevel, LLPipeline::sWaterReflections, TRUE, UI_CURSOR_ARROW, and UI_CURSOR_WAIT.
Referenced by handleSetShaderChanged(), LLPipeline::init(), LLPipeline::restoreGL(), and LLPipeline::setLightingDetail().
void LLShaderMgr::unloadShaders | ( | ) | [static] |
Definition at line 913 of file llglslshader.cpp.
References gPipeline, LLPipeline::mVertexShadersLoaded, SHADER_AVATAR, SHADER_ENVIRONMENT, SHADER_INTERFACE, SHADER_LIGHTING, SHADER_OBJECT, SHADER_WATER, sVertexShaderLevel, and LLGLSLShader::unload().
Referenced by LLPipeline::unloadShaders().
void LLShaderMgr::dumpObjectLog | ( | GLhandleARB | ret, | |
BOOL | warns = TRUE | |||
) | [static] |
Definition at line 491 of file llglslshader.cpp.
References get_object_log(), LL_DEBUGS, LL_ENDL, LL_WARNS, and indra::base::lllog::log().
Referenced by linkProgramObject(), loadShaderFile(), and validateProgramObject().
Definition at line 634 of file llglslshader.cpp.
References dumpObjectLog(), FALSE, get_object_log(), gGL, LL_ENDL, LL_WARNS, indra::base::lllog::log(), LLGLImmediate::mMode, and LLStringBase< char >::toLower().
Referenced by LLGLSLShader::link().
BOOL LLShaderMgr::validateProgramObject | ( | GLhandleARB | obj | ) | [static] |
Definition at line 686 of file llglslshader.cpp.
References dumpObjectLog(), FALSE, LL_ENDL, and LL_WARNS.
GLhandleARB LLShaderMgr::loadShaderFile | ( | const LLString & | filename, | |
S32 & | shader_level, | |||
GLenum | type | |||
) | [static] |
Definition at line 504 of file llglslshader.cpp.
References dumpObjectLog(), LLFile::fopen(), gDirUtilp, LLDir::getExpandedFilename(), i, LL_DEBUGS, LL_ENDL, LL_INFOS, LL_PATH_APP_SETTINGS, LL_WARNS, NULL, S32, sShaderObjects, and stop_glerror.
Referenced by loadBasicShaders().
Definition at line 464 of file llglslshader.cpp.
References LLPipeline::sDisableShaders, and sVertexShaderLevel.
Referenced by LLDrawPoolBump::beginShiny(), LLPipeline::canUseWindLightShaders(), LLPipeline::canUseWindLightShadersOnObjects(), display(), LLDrawPoolBump::endShiny(), LLVOAvatar::idleUpdate(), LLDrawPoolWater::prerender(), LLDrawPoolTree::prerender(), LLDrawPoolTerrain::prerender(), LLDrawPoolSky::prerender(), LLDrawPoolSimple::prerender(), LLDrawPoolGround::prerender(), LLDrawPoolBump::prerender(), LLDrawPoolAvatar::prerender(), LLDrawPoolAlpha::prerender(), LLDrawPoolGlow::render(), LLVOAvatar::renderSkinned(), and LLViewerJointMesh::updateGeometry().
BOOL LLShaderMgr::loadBasicShaders | ( | ) | [static] |
Definition at line 953 of file llglslshader.cpp.
References FALSE, LLSingleton< LLFeatureManager >::getInstance(), LLPipeline::getLightingDetail(), gPipeline, GPU_CLASS_1, i, loadShaderFile(), S32, SHADER_LIGHTING, SHADER_WATER, SHADER_WINDLIGHT, sVertexShaderLevel, and TRUE.
Referenced by setShaders().
BOOL LLShaderMgr::loadShadersEffects | ( | ) | [static] |
Definition at line 1153 of file llglslshader.cpp.
References LLGLSLShader::createShader(), FALSE, LLGLSLShader::mName, LLGLSLShader::mShaderFiles, LLGLSLShader::mShaderLevel, NULL, sGlowExtractUniforms, sGlowUniforms, SHADER_EFFECT, LLPipeline::sRenderGlow, sVertexShaderLevel, TRUE, and LLGLSLShader::unload().
Referenced by setShaders().
BOOL LLShaderMgr::loadShadersDeferred | ( | ) | [static] |
Definition at line 1243 of file llglslshader.cpp.
References LLGLSLShader::createShader(), FALSE, LLGLSLShader::mName, LLGLSLShader::mShaderFiles, LLGLSLShader::mShaderLevel, NULL, SHADER_DEFERRED, sVertexShaderLevel, TRUE, and LLGLSLShader::unload().
Referenced by setShaders().
BOOL LLShaderMgr::loadShadersObject | ( | ) | [static] |
Definition at line 1266 of file llglslshader.cpp.
References LLShaderFeatures::calculatesAtmospherics, LLShaderFeatures::calculatesLighting, LLGLSLShader::createShader(), FALSE, LLShaderFeatures::hasAtmospherics, LLShaderFeatures::hasGamma, LLShaderFeatures::hasLighting, LLShaderFeatures::hasTransport, LLShaderFeatures::hasWaterFog, LLShaderFeatures::isFullbright, LLShaderFeatures::isShiny, LLGLSLShader::mFeatures, LLGLSLShader::mName, LLGLSLShader::mShaderFiles, LLGLSLShader::mShaderGroup, LLGLSLShader::mShaderLevel, NULL, LLGLSLShader::SG_WATER, SHADER_OBJECT, sShinyUniforms, sVertexShaderLevel, TRUE, and LLGLSLShader::unload().
Referenced by setShaders().
BOOL LLShaderMgr::loadShadersAvatar | ( | ) | [static] |
Keep track of avatar levels
Definition at line 1398 of file llglslshader.cpp.
References LLShaderFeatures::calculatesAtmospherics, LLShaderFeatures::calculatesLighting, LLGLSLShader::createShader(), FALSE, LLShaderFeatures::hasAtmospherics, LLShaderFeatures::hasGamma, LLShaderFeatures::hasLighting, LLShaderFeatures::hasSkinning, LLShaderFeatures::hasWaterFog, LLShaderFeatures::isSpecular, llmin(), LLGLSLShader::mFeatures, LLGLSLShader::mName, LLGLSLShader::mShaderFiles, LLGLSLShader::mShaderGroup, LLGLSLShader::mShaderLevel, NULL, sAvatarAttribs, sAvatarUniforms, LLGLSLShader::SG_WATER, SHADER_AVATAR, sMaxAvatarShaderLevel, sVertexShaderLevel, TRUE, and LLGLSLShader::unload().
Referenced by setShaders().
BOOL LLShaderMgr::loadShadersEnvironment | ( | ) | [static] |
Definition at line 1035 of file llglslshader.cpp.
References LLShaderFeatures::calculatesAtmospherics, LLShaderFeatures::calculatesLighting, LLGLSLShader::createShader(), FALSE, LLSingleton< LLWorld >::getInstance(), LLShaderFeatures::hasAtmospherics, LLShaderFeatures::hasGamma, LLGLSLShader::mFeatures, LLGLSLShader::mName, LLGLSLShader::mShaderFiles, LLGLSLShader::mShaderLevel, NULL, SHADER_ENVIRONMENT, sTerrainUniforms, sVertexShaderLevel, TRUE, LLGLSLShader::unload(), and LLWorld::updateWaterObjects().
Referenced by setShaders().
BOOL LLShaderMgr::loadShadersWater | ( | ) | [static] |
Keep track of water shader levels
Definition at line 1070 of file llglslshader.cpp.
References LLShaderFeatures::calculatesAtmospherics, LLShaderFeatures::calculatesLighting, LLGLSLShader::createShader(), FALSE, LLSingleton< LLWorld >::getInstance(), LLShaderFeatures::hasAtmospherics, LLShaderFeatures::hasGamma, LLShaderFeatures::hasTransport, LLShaderFeatures::hasWaterFog, llmin(), LLGLSLShader::mFeatures, LLGLSLShader::mName, LLGLSLShader::mShaderFiles, LLGLSLShader::mShaderGroup, LLGLSLShader::mShaderLevel, NULL, LLGLSLShader::SG_WATER, SHADER_ENVIRONMENT, SHADER_WATER, sTerrainUniforms, sVertexShaderLevel, sWaterUniforms, TRUE, LLGLSLShader::unload(), and LLWorld::updateWaterObjects().
Referenced by setShaders().
BOOL LLShaderMgr::loadShadersInterface | ( | ) | [static] |
Definition at line 1488 of file llglslshader.cpp.
References LLGLSLShader::createShader(), FALSE, LLGLSLShader::mName, LLGLSLShader::mShaderFiles, LLGLSLShader::mShaderLevel, NULL, SHADER_INTERFACE, sVertexShaderLevel, TRUE, and LLGLSLShader::unload().
Referenced by setShaders().
BOOL LLShaderMgr::loadShadersWindLight | ( | ) | [static] |
Definition at line 1517 of file llglslshader.cpp.
References LLGLSLShader::createShader(), FALSE, LLGLSLShader::mName, LLGLSLShader::mShaderFiles, LLGLSLShader::mShaderGroup, LLGLSLShader::mShaderLevel, NULL, LLGLSLShader::SG_SKY, SHADER_WINDLIGHT, sVertexShaderLevel, sWLUniforms, TRUE, and LLGLSLShader::unload().
Referenced by setShaders().
static shader_iter LLShaderMgr::beginShaders | ( | ) | [inline, static] |
Definition at line 200 of file llglslshader.h.
References sShaderList.
Referenced by LLWLParamManager::propagateParameters(), LLWaterParamManager::propagateParameters(), LLWLParamManager::update(), and LLWaterParamManager::update().
static shader_iter LLShaderMgr::endShaders | ( | ) | [inline, static] |
Definition at line 205 of file llglslshader.h.
References sNumShaders, and sShaderList.
Referenced by LLWLParamManager::propagateParameters(), LLWaterParamManager::propagateParameters(), LLWLParamManager::update(), and LLWaterParamManager::update().
friend class LLGLSLShader [friend] |
Definition at line 138 of file llglslshader.h.
S32 LLShaderMgr::sVertexShaderLevel = { 0 } [static] |
Definition at line 210 of file llglslshader.h.
Referenced by getVertexShaderLevel(), loadBasicShaders(), loadShadersAvatar(), loadShadersDeferred(), loadShadersEffects(), loadShadersEnvironment(), loadShadersInterface(), loadShadersObject(), loadShadersWater(), loadShadersWindLight(), LLPipeline::renderHighlights(), setShaders(), and unloadShaders().
S32 LLShaderMgr::sMaxAvatarShaderLevel = 0 [static] |
Definition at line 211 of file llglslshader.h.
Referenced by loadShadersAvatar(), LLPanelDisplay::refreshEnabledState(), and setShaders().
std::map< string, GLhandleARB > LLShaderMgr::sShaderObjects [static, private] |
Definition at line 324 of file llglslshader.h.
Referenced by LLGLSLShader::attachObject(), loadShaderFile(), and setShaders().
vector< string > LLShaderMgr::sReservedAttribs [static, private] |
vector< string > LLShaderMgr::sReservedUniforms [static, private] |
vector< string > LLShaderMgr::sShinyUniforms [static, private] |
Definition at line 331 of file llglslshader.h.
Referenced by initAttribsAndUniforms(), and loadShadersObject().
vector< string > LLShaderMgr::sWaterUniforms [static, private] |
Definition at line 334 of file llglslshader.h.
Referenced by initAttribsAndUniforms(), and loadShadersWater().
vector< string > LLShaderMgr::sWLUniforms [static, private] |
Definition at line 336 of file llglslshader.h.
Referenced by initAttribsAndUniforms(), and loadShadersWindLight().
vector< string > LLShaderMgr::sTerrainUniforms [static, private] |
Definition at line 339 of file llglslshader.h.
Referenced by initAttribsAndUniforms(), loadShadersEnvironment(), and loadShadersWater().
vector< string > LLShaderMgr::sGlowUniforms [static, private] |
Definition at line 342 of file llglslshader.h.
Referenced by initAttribsAndUniforms(), and loadShadersEffects().
vector< string > LLShaderMgr::sGlowExtractUniforms [static, private] |
Definition at line 344 of file llglslshader.h.
Referenced by initAttribsAndUniforms(), and loadShadersEffects().
vector< string > LLShaderMgr::sAvatarAttribs [static, private] |
Definition at line 347 of file llglslshader.h.
Referenced by initAttribsAndUniforms(), and loadShadersAvatar().
vector< string > LLShaderMgr::sAvatarUniforms [static, private] |
Definition at line 349 of file llglslshader.h.
Referenced by initAttribsAndUniforms(), and loadShadersAvatar().
LLGLSLShader *const LLShaderMgr::sShaderList [static, private] |
Initial value:
{ &gWLSkyProgram, &gWLCloudProgram, &gAvatarProgram, &gObjectShinyProgram, &gWaterProgram, &gAvatarEyeballProgram, &gObjectSimpleProgram, &gObjectFullbrightProgram, &gObjectFullbrightShinyProgram, &gTerrainProgram, &gTerrainWaterProgram, &gObjectSimpleWaterProgram, &gObjectFullbrightWaterProgram, &gAvatarWaterProgram, &gObjectShinyWaterProgram, &gUnderWaterProgram, }
Definition at line 353 of file llglslshader.h.
Referenced by beginShaders(), and endShaders().
const size_t LLShaderMgr::sNumShaders = sizeof(sShaderList) / sizeof(sShaderList[0]) [static, private] |