MCPcopy Create free account
hub / github.com/MyGUI/mygui / createShader

Method createShader

Platforms/Ogre/OgrePlatform/src/MyGUI_OgreRenderManager.cpp:515–571  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

513 }
514
515 OgreShaderInfo* OgreRenderManager::createShader(
516 const std::string& _shaderName,
517 const std::string& _vertexProgramFile,
518 const std::string& _fragmentProgramFile)
519 {
520 OgreShaderInfo* shaderInfo = new OgreShaderInfo();
521
522 std::string shaderLanguage = getShaderExtension();
523
524 shaderInfo->vertexProgram = Ogre::HighLevelGpuProgramManager::getSingleton().getByName(
525 _vertexProgramFile,
526 OgreDataManager::getInstance().getGroup());
527 if (!shaderInfo->vertexProgram)
528 {
529 MYGUI_ASSERT(
530 DataManager::getInstance().isDataExist(_vertexProgramFile),
531 "Shader file '" << _vertexProgramFile << "' is missing.");
532 shaderInfo->vertexProgram = Ogre::HighLevelGpuProgramManager::getSingleton().createProgram(
533 _vertexProgramFile,
534 OgreDataManager::getInstance().getGroup(),
535 shaderLanguage,
536 Ogre::GPT_VERTEX_PROGRAM);
537 shaderInfo->vertexProgram->setSourceFile(_vertexProgramFile);
538 if (shaderLanguage == "hlsl")
539 {
540 shaderInfo->vertexProgram->setParameter("target", "vs_3_0");
541 shaderInfo->vertexProgram->setParameter("entry_point", "main");
542 }
543
544 shaderInfo->vertexProgram->load();
545 }
546
547 shaderInfo->fragmentProgram = Ogre::HighLevelGpuProgramManager::getSingleton().getByName(
548 _fragmentProgramFile,
549 OgreDataManager::getInstance().getGroup());
550 if (!shaderInfo->fragmentProgram)
551 {
552 MYGUI_ASSERT(
553 DataManager::getInstance().isDataExist(_fragmentProgramFile),
554 "Shader file '" << _fragmentProgramFile << "' is missing.");
555 shaderInfo->fragmentProgram = Ogre::HighLevelGpuProgramManager::getSingleton().createProgram(
556 _fragmentProgramFile,
557 OgreDataManager::getInstance().getGroup(),
558 shaderLanguage,
559 Ogre::GPT_FRAGMENT_PROGRAM);
560 shaderInfo->fragmentProgram->setSourceFile(_fragmentProgramFile);
561 if (shaderLanguage == "hlsl")
562 {
563 shaderInfo->fragmentProgram->setParameter("target", "ps_3_0");
564 shaderInfo->fragmentProgram->setParameter("entry_point", "main");
565 }
566
567 shaderInfo->fragmentProgram->load();
568 }
569
570 return shaderInfo;
571 }
572

Callers

nothing calls this directly

Calls 3

getByNameMethod · 0.45
isDataExistMethod · 0.45
loadMethod · 0.45

Tested by

no test coverage detected