//--------------------------------------------------------------------- void HighLevelGpuProgram::populateParameterNames(GpuProgramParametersSharedPtr params) { getConstantDefinitions(); params->_setNamedConstants(mConstantDefs); // also set logical / physical maps for programs which use this params->_setLogicalIndexes(mFloatLogicalToPhysical, mDoubleLogicalToPhysical, mIntLogicalToPhysical); }
//----------------------------------------------------------------------------- GpuProgramParametersSharedPtr GpuProgram::createParameters(void) { // Default implementation simply returns standard parameters. GpuProgramParametersSharedPtr ret = GpuProgramManager::getSingleton().createParameters(); // optionally load manually supplied named constants if (!mManualNamedConstantsFile.empty() && !mLoadedManualNamedConstants) { try { GpuNamedConstants namedConstants; DataStreamPtr stream = ResourceGroupManager::getSingleton().openResource( mManualNamedConstantsFile, mGroup, true, this); namedConstants.load(stream); setManualNamedConstants(namedConstants); } catch(const Exception& e) { LogManager::getSingleton().stream() << "Unable to load manual named constants for GpuProgram " << mName << ": " << e.getDescription(); } mLoadedManualNamedConstants = true; } // set up named parameters, if any if (!mConstantDefs.isNull() && !mConstantDefs->map.empty()) { ret->_setNamedConstants(mConstantDefs); } // link shared logical / physical map for low-level use ret->_setLogicalIndexes(mFloatLogicalToPhysical, mDoubleLogicalToPhysical, mIntLogicalToPhysical, mUIntLogicalToPhysical, mBoolLogicalToPhysical); // Copy in default parameters if present if (!mDefaultParams.isNull()) ret->copyConstantsFrom(*(mDefaultParams.get())); return ret; }