本文整理汇总了C++中CCGLProgram::setUniformLocationWith4f方法的典型用法代码示例。如果您正苦于以下问题:C++ CCGLProgram::setUniformLocationWith4f方法的具体用法?C++ CCGLProgram::setUniformLocationWith4f怎么用?C++ CCGLProgram::setUniformLocationWith4f使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CCGLProgram
的用法示例。
在下文中一共展示了CCGLProgram::setUniformLocationWith4f方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: shaderMulColor
void CSpriteRGBA::shaderMulColor(float r, float g, float b, float a)
{
CCGLProgram *pShaders = new CCGLProgram;
pShaders->initWithVertexShaderByteArray(ccPositionTextureColor_vert, SPRITERGBA_SHADER_MUL_COLOR_FSH);
CHECK_GL_ERROR_DEBUG();
pShaders->addAttribute(kCCAttributeNamePosition, kCCVertexAttrib_Position);
pShaders->addAttribute(kCCAttributeNameColor, kCCVertexAttrib_Color);
pShaders->addAttribute(kCCAttributeNameTexCoord, kCCVertexAttrib_TexCoords);
CHECK_GL_ERROR_DEBUG();
pShaders->link();
CHECK_GL_ERROR_DEBUG();
pShaders->updateUniforms();
CHECK_GL_ERROR_DEBUG();
GLint nDotColorLocation = pShaders->getUniformLocationForName("v_dotcolor");
pShaders->setUniformLocationWith4f(nDotColorLocation, r, g, b, a);
scale9Image->setShaderProgram(pShaders);
CHECK_GL_ERROR_DEBUG();
pShaders->release();
}
示例2: setBlur
void CCShaders::setBlur(CCSize nodeSize, CCSize blurSize, ccColor4F blurSubtract) {
loadCustomShader(kCCShader_blur);
CCGLProgram* p = CCShaderCache::sharedShaderCache()->programForKey(kCCShader_blur);
p->use();
p->setUniformLocationWith2f(sUniform_pos_CC_blurSize, blurSize.width / nodeSize.width, blurSize.height / nodeSize.height);
p->setUniformLocationWith4f(sUniform_pos_CC_blurSubtract, blurSubtract.r, blurSubtract.g, blurSubtract.b, blurSubtract.a);
}
示例3:
static int tolua_CCGLProgram_CCGLProgram_setUniformLocationWith4f00(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_isnumber(tolua_S,4,0,&tolua_err) ||
!tolua_isnumber(tolua_S,5,0,&tolua_err) ||
!tolua_isnumber(tolua_S,6,0,&tolua_err) ||
!tolua_isnoobj(tolua_S,7,&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));
float f2 = ((float) tolua_tonumber(tolua_S,4,0));
float f3 = ((float) tolua_tonumber(tolua_S,5,0));
float f4 = ((float) tolua_tonumber(tolua_S,6,0));
#ifndef TOLUA_RELEASE
if (!self) tolua_error(tolua_S,"invalid 'self' in function 'setUniformLocationWith4f'", NULL);
#endif
{
self->setUniformLocationWith4f(location,f1,f2,f3,f4);
}
}
return 0;
#ifndef TOLUA_RELEASE
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'setUniformLocationWith4f'.",&tolua_err);
return 0;
#endif
}