| 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 |
nothing calls this directly
no test coverage detected