-----------------------------------------------------------------------------
| 61 | } |
| 62 | //----------------------------------------------------------------------------- |
| 63 | void GpuProgramUsage::setProgramName( const String &name, bool resetParams ) |
| 64 | { |
| 65 | if( mProgram ) |
| 66 | { |
| 67 | mProgram->removeListener( this ); |
| 68 | mRecreateParams = true; |
| 69 | } |
| 70 | |
| 71 | mProgram = GpuProgramManager::getSingleton().getByName( name ); |
| 72 | |
| 73 | if( !mProgram ) |
| 74 | { |
| 75 | String progType = "fragment"; |
| 76 | if( mType == GPT_VERTEX_PROGRAM ) |
| 77 | { |
| 78 | progType = "vertex"; |
| 79 | } |
| 80 | else if( mType == GPT_GEOMETRY_PROGRAM ) |
| 81 | { |
| 82 | progType = "geometry"; |
| 83 | } |
| 84 | else if( mType == GPT_DOMAIN_PROGRAM ) |
| 85 | { |
| 86 | progType = "domain"; |
| 87 | } |
| 88 | else if( mType == GPT_HULL_PROGRAM ) |
| 89 | { |
| 90 | progType = "hull"; |
| 91 | } |
| 92 | else if( mType == GPT_COMPUTE_PROGRAM ) |
| 93 | { |
| 94 | progType = "compute"; |
| 95 | } |
| 96 | |
| 97 | OGRE_EXCEPT( Exception::ERR_ITEM_NOT_FOUND, |
| 98 | "Unable to locate " + progType + " program called " + name + ".", |
| 99 | "GpuProgramUsage::setProgramName" ); |
| 100 | } |
| 101 | |
| 102 | // Reset parameters |
| 103 | if( resetParams || !mParameters || mRecreateParams ) |
| 104 | { |
| 105 | recreateParameters(); |
| 106 | } |
| 107 | |
| 108 | // Listen in on reload events so we can regenerate params |
| 109 | mProgram->addListener( this ); |
| 110 | } |
| 111 | //----------------------------------------------------------------------------- |
| 112 | void GpuProgramUsage::setParameters( GpuProgramParametersSharedPtr params ) { mParameters = params; } |
| 113 | //----------------------------------------------------------------------------- |
no test coverage detected