本文整理汇总了C++中CCGLProgram::setUniformLocationWith1f方法的典型用法代码示例。如果您正苦于以下问题:C++ CCGLProgram::setUniformLocationWith1f方法的具体用法?C++ CCGLProgram::setUniformLocationWith1f怎么用?C++ CCGLProgram::setUniformLocationWith1f使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCGLProgram
的用法示例。
在下文中一共展示了CCGLProgram::setUniformLocationWith1f方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setFlash
void CCShaders::setFlash(float r, float g, float b, float t) {
loadCustomShader(kCCShader_flash);
CCGLProgram* p = CCShaderCache::sharedShaderCache()->programForKey(kCCShader_flash);
p->use();
p->setUniformLocationWith3f(sUniform_pos_CC_flashColor, r, g, b);
p->setUniformLocationWith1f(sUniform_pos_CC_flashTime, t);
}
示例2:
static int tolua_CCGLProgram_CCGLProgram_setUniformLocationWith1f00(lua_State* tolua_S)
{
#ifndef TOLUA_RELEASE
tolua_Error tolua_err;
if (
!tolua_isusertype(tolua_S,1,"CCGLProgram",0,&tolua_err) ||
!tolua_isnumber(tolua_S,2,0,&tolua_err) ||
!tolua_isnumber(tolua_S,3,0,&tolua_err) ||
!tolua_isnoobj(tolua_S,4,&tolua_err)
)
goto tolua_lerror;
else
#endif
{
CCGLProgram* self = (CCGLProgram*) tolua_tousertype(tolua_S,1,0);
int location = ((int) tolua_tonumber(tolua_S,2,0));
float f1 = ((float) tolua_tonumber(tolua_S,3,0));
#ifndef TOLUA_RELEASE
if (!self) tolua_error(tolua_S,"invalid 'self' in function 'setUniformLocationWith1f'", NULL);
#endif
{
self->setUniformLocationWith1f(location,f1);
}
}
return 0;
#ifndef TOLUA_RELEASE
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'setUniformLocationWith1f'.",&tolua_err);
return 0;
#endif
}
示例3: glDepthMask
void RawStencilBufferTest4::setupStencilForClippingOnPlane(GLint plane)
{
RawStencilBufferTest::setupStencilForClippingOnPlane(plane);
glDepthMask(GL_FALSE);
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) || (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX) || (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, _alphaThreshold);
#else
CCGLProgram *program = CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColorAlphaTest);
GLint alphaValueLocation = glGetUniformLocation(program->getProgram(), kCCUniformAlphaTestValue);
program->setUniformLocationWith1f(alphaValueLocation, _alphaThreshold);
m_pSprite->setShaderProgram(program );
#endif
}
示例4: setBatchNodeAlphaTestValue
void BatchNodeManager::setBatchNodeAlphaTestValue(float _value)
{
CCGLProgram* alphashader = CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColorAlphaTest);
CHECK_GL_ERROR_DEBUG();
alphashader->initWithVertexShaderByteArray(ccPositionTextureColor_vert, ccPositionTextureColorAlphaTest_frag);
alphashader->addAttribute(kCCAttributeNamePosition, kCCVertexAttrib_Position);
alphashader->addAttribute(kCCAttributeNameColor, kCCVertexAttrib_Color);
alphashader->addAttribute(kCCAttributeNameTexCoord, kCCVertexAttrib_TexCoords);
alphashader->link();
alphashader->updateUniforms();
unsigned loc = glGetUniformLocation(alphashader->getProgram(), kCCUniformAlphaTestValue);
CHECK_GL_ERROR_DEBUG();
alphashader->setUniformLocationWith1f(loc, _value);
CHECK_GL_ERROR_DEBUG();
}
示例5: glStencilMask
void RawStencilBufferTest6::setupStencilForClippingOnPlane(GLint plane)
{
GLint planeMask = 0x1 << plane;
glStencilMask(planeMask);
glStencilFunc(GL_NEVER, 0, planeMask);
glStencilOp(GL_REPLACE, GL_KEEP, GL_KEEP);
ccDrawSolidRect(CCPointZero, ccpFromSize(CCDirector::sharedDirector()->getWinSize()), ccc4f(1, 1, 1, 1));
glStencilFunc(GL_NEVER, planeMask, planeMask);
glStencilOp(GL_REPLACE, GL_KEEP, GL_KEEP);
glDisable(GL_DEPTH_TEST);
glDepthMask(GL_FALSE);
#if (CC_TARGET_PLATFORM == CC_PLATFORM_WIN32) || (CC_TARGET_PLATFORM == CC_PLATFORM_LINUX) || (CC_TARGET_PLATFORM == CC_PLATFORM_MAC)
glEnable(GL_ALPHA_TEST);
glAlphaFunc(GL_GREATER, _alphaThreshold);
#else
CCGLProgram *program = CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColorAlphaTest);
GLint alphaValueLocation = glGetUniformLocation(program->getProgram(), kCCUniformAlphaTestValue);
program->setUniformLocationWith1f(alphaValueLocation, _alphaThreshold);
m_pSprite->setShaderProgram(program);
#endif
glFlush();
}