本文整理汇总了C++中GpuProgramParametersSharedPtr::getUnsignedIntPointer方法的典型用法代码示例。如果您正苦于以下问题:C++ GpuProgramParametersSharedPtr::getUnsignedIntPointer方法的具体用法?C++ GpuProgramParametersSharedPtr::getUnsignedIntPointer怎么用?C++ GpuProgramParametersSharedPtr::getUnsignedIntPointer使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GpuProgramParametersSharedPtr
的用法示例。
在下文中一共展示了GpuProgramParametersSharedPtr::getUnsignedIntPointer方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: updateAtomicCounters
void GLSLSeparableProgram::updateAtomicCounters(GpuProgramParametersSharedPtr params,
uint16 mask, GpuProgramType fromProgType)
{
// Iterate through the list of atomic counter buffers and update them as needed
// GLAtomicBufferIterator currentBuffer = mGLAtomicBufferReferences.begin();
// GLAtomicBufferIterator endBuffer = mGLAtomicBufferReferences.end();
GLAtomicCounterReferenceIterator currentAtomicCounter = mGLAtomicCounterReferences.begin();
GLAtomicCounterReferenceIterator endAtomicCounter = mGLAtomicCounterReferences.end();
for (; currentAtomicCounter != endAtomicCounter; ++currentAtomicCounter)
{
if (fromProgType == currentAtomicCounter->mSourceProgType)
{
const GpuConstantDefinition* def = currentAtomicCounter->mConstantDef;
if (def->variability & mask)
{
GLsizei glArraySize = (GLsizei)def->arraySize;
// Get the index in the parameter real list
//switch (def->constType)
GLuint glBinding = currentAtomicCounter->mBinding;
GLuint glOffset = currentAtomicCounter->mOffset;
// Get the buffer this atomic counter belongs to.
//TODO exception handling
HardwareCounterBufferSharedPtr atomic_buffer = mGLCounterBufferReferences[glBinding];
// Update the value.
atomic_buffer->writeData(glOffset, sizeof(GLuint) * glArraySize, params->getUnsignedIntPointer(def->physicalIndex));
}
}
}
// GpuProgramParameters::GpuSharedParamUsageList::const_iterator it, end = sharedParams.end();
// for (it = sharedParams.begin(); it != end; ++it)
// {
// for (;currentBuffer != endBuffer; ++currentBuffer)
// {
// GL3PlusHardwareUniformBuffer* hwGlBuffer = static_cast<GL3PlusHardwareUniformBuffer*>(currentBuffer->get());
// GpuSharedParametersPtr paramsPtr = it->getSharedParams();
// // Block name is stored in mSharedParams->mName of GpuSharedParamUsageList items
// GLint UniformTransform;
// OGRE_CHECK_GL_ERROR(UniformTransform = glGetUniformBlockIndex(mGLProgramHandle, it->getName().c_str()));
// OGRE_CHECK_GL_ERROR(glUniformBlockBinding(mGLProgramHandle, UniformTransform, hwGlBuffer->getGLBufferBinding()));
// hwGlBuffer->writeData(0, hwGlBuffer->getSizeInBytes(), ¶msPtr->getFloatConstantList().front());
// }
// }
}
示例2: updateUniforms
//.........这里部分代码省略.........
break;
case GCT_MATRIX_4X3:
OGRE_CHECK_GL_ERROR(glProgramUniformMatrix4x3fv(progID, currentUniform->mLocation, glArraySize,
transpose, params->getFloatPointer(def->physicalIndex)));
break;
case GCT_DOUBLE1:
OGRE_CHECK_GL_ERROR(glProgramUniform1dv(progID, currentUniform->mLocation, glArraySize,
params->getDoublePointer(def->physicalIndex)));
break;
case GCT_DOUBLE2:
OGRE_CHECK_GL_ERROR(glProgramUniform2dv(progID, currentUniform->mLocation, glArraySize,
params->getDoublePointer(def->physicalIndex)));
break;
case GCT_DOUBLE3:
OGRE_CHECK_GL_ERROR(glProgramUniform3dv(progID, currentUniform->mLocation, glArraySize,
params->getDoublePointer(def->physicalIndex)));
break;
case GCT_DOUBLE4:
OGRE_CHECK_GL_ERROR(glProgramUniform4dv(progID, currentUniform->mLocation, glArraySize,
params->getDoublePointer(def->physicalIndex)));
break;
case GCT_MATRIX_DOUBLE_2X2:
OGRE_CHECK_GL_ERROR(glProgramUniformMatrix2dv(progID, currentUniform->mLocation, glArraySize,
transpose, params->getDoublePointer(def->physicalIndex)));
break;
case GCT_MATRIX_DOUBLE_3X3:
OGRE_CHECK_GL_ERROR(glProgramUniformMatrix3dv(progID, currentUniform->mLocation, glArraySize,
transpose, params->getDoublePointer(def->physicalIndex)));
break;
case GCT_MATRIX_DOUBLE_4X4:
OGRE_CHECK_GL_ERROR(glProgramUniformMatrix4dv(progID, currentUniform->mLocation, glArraySize,
transpose, params->getDoublePointer(def->physicalIndex)));
break;
case GCT_MATRIX_DOUBLE_2X3:
OGRE_CHECK_GL_ERROR(glProgramUniformMatrix2x3dv(progID, currentUniform->mLocation, glArraySize,
transpose, params->getDoublePointer(def->physicalIndex)));
break;
case GCT_MATRIX_DOUBLE_2X4:
OGRE_CHECK_GL_ERROR(glProgramUniformMatrix2x4dv(progID, currentUniform->mLocation, glArraySize,
transpose, params->getDoublePointer(def->physicalIndex)));
break;
case GCT_MATRIX_DOUBLE_3X2:
OGRE_CHECK_GL_ERROR(glProgramUniformMatrix3x2dv(progID, currentUniform->mLocation, glArraySize,
transpose, params->getDoublePointer(def->physicalIndex)));
break;
case GCT_MATRIX_DOUBLE_3X4:
OGRE_CHECK_GL_ERROR(glProgramUniformMatrix3x4dv(progID, currentUniform->mLocation, glArraySize,
transpose, params->getDoublePointer(def->physicalIndex)));
break;
case GCT_MATRIX_DOUBLE_4X2:
OGRE_CHECK_GL_ERROR(glProgramUniformMatrix4x2dv(progID, currentUniform->mLocation, glArraySize,
transpose, params->getDoublePointer(def->physicalIndex)));
break;
case GCT_MATRIX_DOUBLE_4X3:
OGRE_CHECK_GL_ERROR(glProgramUniformMatrix4x3dv(progID, currentUniform->mLocation, glArraySize,
transpose, params->getDoublePointer(def->physicalIndex)));
break;
case GCT_UINT1:
case GCT_BOOL1:
OGRE_CHECK_GL_ERROR(glProgramUniform1uiv(progID, currentUniform->mLocation, glArraySize,
params->getUnsignedIntPointer(def->physicalIndex)));
break;
case GCT_UINT2:
case GCT_BOOL2:
OGRE_CHECK_GL_ERROR(glProgramUniform2uiv(progID, currentUniform->mLocation, glArraySize,
params->getUnsignedIntPointer(def->physicalIndex)));
break;
case GCT_UINT3:
case GCT_BOOL3:
OGRE_CHECK_GL_ERROR(glProgramUniform3uiv(progID, currentUniform->mLocation, glArraySize,
params->getUnsignedIntPointer(def->physicalIndex)));
break;
case GCT_UINT4:
case GCT_BOOL4:
OGRE_CHECK_GL_ERROR(glProgramUniform4uiv(progID, currentUniform->mLocation, glArraySize,
params->getUnsignedIntPointer(def->physicalIndex)));
break;
case GCT_SAMPLER1D:
case GCT_SAMPLER1DSHADOW:
case GCT_SAMPLER2D:
case GCT_SAMPLER2DSHADOW:
case GCT_SAMPLER2DARRAY:
case GCT_SAMPLER3D:
case GCT_SAMPLERCUBE:
case GCT_SAMPLERRECT:
// Samplers handled like 1-element ints
OGRE_CHECK_GL_ERROR(glProgramUniform1iv(progID, currentUniform->mLocation, 1,
params->getIntPointer(def->physicalIndex)));
break;
case GCT_UNKNOWN:
case GCT_SUBROUTINE:
break;
} // End switch
} // Variability & mask
} // fromProgType == currentUniform->mSourceProgType
} // End for
}