本文整理汇总了C++中setShaderProgram函数的典型用法代码示例。如果您正苦于以下问题:C++ setShaderProgram函数的具体用法?C++ setShaderProgram怎么用?C++ setShaderProgram使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了setShaderProgram函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: switch
void Label::updateShaderProgram()
{
switch (_currLabelEffect)
{
case cocos2d::LabelEffect::NORMAL:
if (_useDistanceField)
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_LABEL_DISTANCEFIELD_NORMAL));
else if (_useA8Shader)
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_LABEL_NORMAL));
else
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR));
break;
case cocos2d::LabelEffect::OUTLINE:
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_LABEL_OUTLINE));
_uniformEffectColor = glGetUniformLocation(_shaderProgram->getProgram(), "v_effectColor");
break;
case cocos2d::LabelEffect::GLOW:
if (_useDistanceField)
{
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_LABEL_DISTANCEFIELD_GLOW));
_uniformEffectColor = glGetUniformLocation(_shaderProgram->getProgram(), "v_effectColor");
}
break;
default:
return;
}
_uniformTextColor = glGetUniformLocation(_shaderProgram->getProgram(), "v_textColor");
}
开发者ID:1007650105,项目名称:RockChipmunk2D,代码行数:30,代码来源:CCLabel.cpp
示例2: switch
void Label::setLabelEffect(LabelEffect effect,const Color3B& effectColor)
{
if(_useDistanceField == false)
return;
_currLabelEffect = effect;
_effectColor = effectColor;
switch (_currLabelEffect)
{
case cocos2d::LabelEffect::NORMAL:
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_LABEL_DISTANCEFIELD_NORMAL));
break;
case cocos2d::LabelEffect::OUTLINE:
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_LABEL_DISTANCEFIELD_OUTLINE));
break;
case cocos2d::LabelEffect::SHADOW:
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_LABEL_DISTANCEFIELD_SHADOW));
break;
case cocos2d::LabelEffect::GLOW:
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_LABEL_DISTANCEFIELD_GLOW));
break;
default:
return;
}
_uniformEffectColor = glGetUniformLocation(_shaderProgram->getProgram(), "v_effectColor");
}
开发者ID:12white,项目名称:CocoStudioSamples,代码行数:28,代码来源:CCLabel.cpp
示例3: memset
// designated initializer
bool CC3DSprite::initWithTexture(CCTexture2D *pTexture, const CCRect& rect, bool rotated)
{
if (CCNode::init())
{
// clean the Quad
memset(&m_sQuad, 0, sizeof(m_sQuad));
// Atlas: Color
ccColor4B tmpColor = { 255, 255, 255, 255 };
m_sQuad.bl.colors = tmpColor;
m_sQuad.br.colors = tmpColor;
m_sQuad.tl.colors = tmpColor;
m_sQuad.tr.colors = tmpColor;
// shader program
setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColor));
//set texture
setTexture(pTexture);
//set textureRect
setTextureRect(rect, rotated);
return true;
}
else
{
return false;
}
}
开发者ID:ElmerNing,项目名称:Cocos2d-x-ParticleEditor-for-Windows,代码行数:31,代码来源:CC3DSprite.cpp
示例4: setShaderProgram
bool BatchNode::init()
{
bool ret = Node::init();
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR));
return ret;
}
开发者ID:BellyWong,项目名称:EarthWarrior3D,代码行数:7,代码来源:CCBatchNode.cpp
示例5: CCTextureAtlas
//
// init with CCTexture2D
//
KDbool CCSpriteBatchNode::initWithTexture ( CCTexture2D* pTexture, KDuint uCapacity )
{
m_tBlendFunc.src = CC_BLEND_SRC;
m_tBlendFunc.dst = CC_BLEND_DST;
m_pTextureAtlas = new CCTextureAtlas ( );
if ( 0 == uCapacity )
{
uCapacity = kDefaultSpriteBatchCapacity;
}
m_pTextureAtlas->initWithTexture ( pTexture, uCapacity );
updateBlendFunc ( );
// no lazy alloc in this node
m_pChildren = new CCArray ( );
m_pChildren->initWithCapacity ( uCapacity );
m_pDescendants = new CCArray ( );
m_pDescendants->initWithCapacity ( uCapacity );
setShaderProgram ( CCShaderCache::sharedShaderCache ( )->programForKey ( kCCShader_PositionTextureColor ) );
return KD_TRUE;
}
开发者ID:mcodegeeks,项目名称:OpenKODE-Framework,代码行数:29,代码来源:CCSpriteBatchNode.cpp
示例6: propertyNamed
void CCTMXLayer::parseInternalProperties()
{
// if cc_vertex=automatic, then tiles will be rendered using vertexz
CCString *vertexz = propertyNamed("cc_vertexz");
if (vertexz)
{
// If "automatic" is on, then parse the "cc_alpha_func" too
if (vertexz->m_sString == "automatic")
{
m_bUseAutomaticVertexZ = true;
CCString *alphaFuncVal = propertyNamed("cc_alpha_func");
float alphaFuncValue = 0.0f;
if (alphaFuncVal != NULL)
{
alphaFuncValue = alphaFuncVal->floatValue();
}
setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColorAlphaTest));
GLint alphaValueLocation = glGetUniformLocation(getShaderProgram()->getProgram(), kCCUniformAlphaTestValue);
getShaderProgram()->use();
// NOTE: alpha test shader is hard-coded to use the equivalent of a glAlphaFunc(GL_GREATER) comparison
getShaderProgram()->setUniformLocationWith1f(alphaValueLocation, alphaFuncValue);
CHECK_GL_ERROR_DEBUG();
}
else
{
m_nVertexZvalue = vertexz->intValue();
}
}
}
开发者ID:Infosfer,项目名称:cocos2d-x,代码行数:32,代码来源:CCTMXLayer.cpp
示例7: CCGLProgram
void SpriteBlur::initProgram()
{
GLchar * fragSource = (GLchar*) CCString::createWithContentsOfFile(
CCFileUtils::sharedFileUtils()->fullPathForFilename("Shaders/example_Blur.fsh").c_str())->getCString();
CCGLProgram* pProgram = new CCGLProgram();
pProgram->initWithVertexShaderByteArray(ccPositionTextureColor_vert, fragSource);
setShaderProgram(pProgram);
pProgram->release();
CHECK_GL_ERROR_DEBUG();
getShaderProgram()->addAttribute(kCCAttributeNamePosition, kCCVertexAttrib_Position);
getShaderProgram()->addAttribute(kCCAttributeNameColor, kCCVertexAttrib_Color);
getShaderProgram()->addAttribute(kCCAttributeNameTexCoord, kCCVertexAttrib_TexCoords);
CHECK_GL_ERROR_DEBUG();
getShaderProgram()->link();
CHECK_GL_ERROR_DEBUG();
getShaderProgram()->updateUniforms();
CHECK_GL_ERROR_DEBUG();
subLocation = glGetUniformLocation( getShaderProgram()->getProgram(), "substract");
blurLocation = glGetUniformLocation( getShaderProgram()->getProgram(), "blurSize");
CHECK_GL_ERROR_DEBUG();
}
开发者ID:wenhulove333,项目名称:ScutServer,代码行数:30,代码来源:ShaderTest.cpp
示例8: setShaderProgram
bool BloodFlashSprite::initWithTexture(CCTexture2D *pTexture, const CCRect& rect)
{
if (CCSprite::initWithTexture(pTexture, rect))
{
CCGLProgram *program = new CCGLProgram;
GLchar *fragSrc = (GLchar *)CCString::createWithContentsOfFile(
CCFileUtils::sharedFileUtils()->fullPathForFilename(_fragShaderName.c_str()).c_str())->getCString();
program->initWithVertexShaderByteArray(ccPositionTextureColor_vert, fragSrc);
setShaderProgram(program);
program->release();
CHECK_GL_ERROR_DEBUG();
getShaderProgram()->link();
CHECK_GL_ERROR_DEBUG();
getShaderProgram()->updateUniforms();
CHECK_GL_ERROR_DEBUG();
return true;
}
return false;
}
开发者ID:elloop,项目名称:cocos2d-x-cpp-demos-2.x,代码行数:25,代码来源:BloodFlashPage.cpp
示例9: setTouchEnabled
bool CColorView::initWithColor(const Color4B& color)
{
setTouchEnabled(false);
_displayedColor.r = _realColor.r = color.r;
_displayedColor.g = _realColor.g = color.g;
_displayedColor.b = _realColor.b = color.b;
_displayedOpacity = _realOpacity = color.a;
_cascadeOpacityEnabled = false;
_cascadeColorEnabled = false;
m_tBlendFunc.src = GL_SRC_ALPHA;
m_tBlendFunc.dst = GL_ONE_MINUS_SRC_ALPHA;
for (size_t i = 0; i < sizeof(m_pSquareVertices) / sizeof( m_pSquareVertices[0]); i++ )
{
m_pSquareVertices[i].x = 0.0f;
m_pSquareVertices[i].y = 0.0f;
}
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_POSITION_COLOR));
setAnchorPoint(CCWIDGET_BASIC_DEFAULT_ANCHOR_POINT);
setContentSize(CCWIDGET_BASIC_DEFAULT_CONTENT_SIZE);
updateColor();
return true;
}
开发者ID:Eason-Xi,项目名称:Tui-x,代码行数:30,代码来源:ColorView.cpp
示例10: CCASSERT
/*
* init with Texture2D
*/
bool SpriteBatchNode::initWithTexture(Texture2D *tex, int capacity)
{
CCASSERT(capacity>=0, "Capacity must be >= 0");
_blendFunc = BlendFunc::ALPHA_PREMULTIPLIED;
_textureAtlas = new TextureAtlas();
if (0 == capacity)
{
capacity = kDefaultSpriteBatchCapacity;
}
_textureAtlas->initWithTexture(tex, capacity);
updateBlendFunc();
// no lazy alloc in this node
_children = new Array();
_children->initWithCapacity(capacity);
_descendants = new Array();
_descendants->initWithCapacity(capacity);
setShaderProgram(ShaderCache::getInstance()->programForKey(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR));
return true;
}
开发者ID:Ratel13,项目名称:HXGame,代码行数:29,代码来源:CCSpriteBatchNode.cpp
示例11: tryLoadSpriteSheet
bool CCSuperAnim::Init(const std::string& theAbsAnimFile, int theId, CCSuperAnimListener *theListener)
{
// try to load the sprite sheet file
mSpriteSheetFileFullPath = theAbsAnimFile.substr(0, theAbsAnimFile.find_last_of('.') + 1) + "plist";
tryLoadSpriteSheet();
mAnimHandler = GetSuperAnimHandler(theAbsAnimFile);
if (!mAnimHandler.IsValid())
{
char aBuffer[256];
sprintf(aBuffer, "Can't load the SuperAnim %s.", theAbsAnimFile.c_str());
CCMessageBox(aBuffer, "Error");
return false;
}
setContentSize(CC_SIZE_PIXELS_TO_POINTS(CCSizeMake(mAnimHandler.mWidth, mAnimHandler.mHeight)));
mId = theId;
mListener = theListener;
mAnimState = kAnimStateInitialized;
mIsFlipX = mIsFlipY = false;
mSpeedFactor = 1.0f;
mIsLoop = false;
// shader program
setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColor));
scheduleUpdate();
setAnchorPoint(ccp(0.5f, 0.5f));
return true;
}
开发者ID:xiangry,项目名称:cocos2dx-classical,代码行数:32,代码来源:CCSuperAnim.cpp
示例12: CC_BREAK_IF
bool Terrain::init(b2World* world,Hero* hero)
{
bool bRet = true;
do
{
CC_BREAK_IF(!CCNode::init());
setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTexture));
_world = world;
_sceenSize = CCDirector::sharedDirector()->getWinSize();
//初始点
_lastHillKeyPoint = CCPointMake(0,_sceenSize.height*CONST_OFFSET_Y);
_stripes = CCSprite::create("stripe.png");
//_stripes = createStripe();
ccTexParams tp2 = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_CLAMP_TO_EDGE};
_stripes->getTexture()->setTexParameters(&tp2);
_stripes->retain();
//hero
_hero = hero;
addChild(_hero,11);
bRet = true;
} while (0);
return bRet;
}
开发者ID:woodpecker-3,项目名称:bear-game,代码行数:30,代码来源:Terrain.cpp
示例13: CCTextureAtlas
bool CCAtlasNode::initWithTexture(CCTexture2D* texture, unsigned int tileWidth, unsigned int tileHeight,
unsigned int itemsToRender)
{
m_uItemWidth = tileWidth;
m_uItemHeight = tileHeight;
m_tColorUnmodified = ccWHITE;
//m_bIsOpacityModifyRGB = true;
m_tBlendFunc.src = CC_BLEND_SRC;
m_tBlendFunc.dst = CC_BLEND_DST;
m_pTextureAtlas = new CCTextureAtlas();
m_pTextureAtlas->initWithTexture(texture, itemsToRender);
if (! m_pTextureAtlas)
{
CCLOG("cocos2d: Could not initialize CCAtlasNode. Invalid Texture.");
return false;
}
this->updateBlendFunc();
this->updateOpacityModifyRGB();
this->calculateMaxItems();
m_uQuadsToDraw = itemsToRender;
// shader stuff
setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTexture_uColor));
m_nUniformColor = glGetUniformLocation( getShaderProgram()->getProgram(), "u_color");
return true;
}
开发者ID:IppClub,项目名称:Dorothy,代码行数:34,代码来源:CCAtlasNode.cpp
示例14: TextureAtlas
bool AtlasNode::initWithTexture(Texture2D* texture, int tileWidth, int tileHeight, int itemsToRender)
{
_itemWidth = tileWidth;
_itemHeight = tileHeight;
_colorUnmodified = Color3B::WHITE;
_isOpacityModifyRGB = true;
_blendFunc = BlendFunc::ALPHA_PREMULTIPLIED;
_textureAtlas = new TextureAtlas();
_textureAtlas->initWithTexture(texture, itemsToRender);
if (! _textureAtlas)
{
CCLOG("cocos2d: Could not initialize AtlasNode. Invalid Texture.");
return false;
}
this->updateBlendFunc();
this->updateOpacityModifyRGB();
this->calculateMaxItems();
_quadsToDraw = itemsToRender;
// shader stuff
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_POSITION_TEXTURE_U_COLOR));
_uniformColor = glGetUniformLocation( getShaderProgram()->getProgram(), "u_color");
return true;
}
开发者ID:leanlyne,项目名称:ShootColorX,代码行数:32,代码来源:CCAtlasNode.cpp
示例15: GLProgram
void ShaderSprite::initShader()
{
GLchar * fragSource = (GLchar*) String::createWithContentsOfFile(
FileUtils::getInstance()->fullPathForFilename(_fragSourceFile).c_str())->getCString();
auto program = new GLProgram();
program->initWithByteArrays(ccPositionTextureColor_vert, fragSource);
setShaderProgram(program);
program->release();
CHECK_GL_ERROR_DEBUG();
program->bindAttribLocation(GLProgram::ATTRIBUTE_NAME_POSITION, GLProgram::VERTEX_ATTRIB_POSITION);
program->bindAttribLocation(GLProgram::ATTRIBUTE_NAME_COLOR, GLProgram::VERTEX_ATTRIB_COLOR);
program->bindAttribLocation(GLProgram::ATTRIBUTE_NAME_TEX_COORD, GLProgram::VERTEX_ATTRIB_TEX_COORDS);
CHECK_GL_ERROR_DEBUG();
program->link();
CHECK_GL_ERROR_DEBUG();
program->updateUniforms();
CHECK_GL_ERROR_DEBUG();
buildCustomUniforms();
CHECK_GL_ERROR_DEBUG();
}
开发者ID:2youyou2,项目名称:ShaderLib,代码行数:29,代码来源:ShaderSprite.cpp
示例16: setShaderProgram
bool BlurNode::init()
{
if (!Node::init())
return false;
// read and add my shader
GLProgram* program = GLProgram::createWithFilenames("ccShader_blur.vert", "BlurNormal.frag");
if (!program)
return false;
setShaderProgram(program);
// get uniform variable location
_uSolutionLocation = program->getUniformLocation("u_resolution");
// load texture2D
_texture = TextureCache::getInstance()->addImage("cballs.png");
if (!_texture)
return false;
_texture->retain();
setContentSize(_texture->getContentSize());
Size size = getContentSize();
// init vertices array and texCoord array
_vertices.push_back(Point::ZERO);
_vertices.push_back(Point(size.width, 0));
_vertices.push_back(Point(0, size.height));
_vertices.push_back(Point(size.width, size.height));
_texCoord.push_back(Point(0, 1));
_texCoord.push_back(Point(1, 1));
_texCoord.push_back(Point::ZERO);
_texCoord.push_back(Point(1, 0));
scheduleUpdate();
return true;
}
开发者ID:giangchau92,项目名称:ShaderDemo,代码行数:33,代码来源:BlurNode.cpp
示例17: setupIndices
NS_CC_BEGIN
//implementation CCParticleSystemQuad
// overriding the init method
bool CCParticleSystemQuad::initWithTotalParticles(unsigned int numberOfParticles)
{
// base initialization
if( CCParticleSystem::initWithTotalParticles(numberOfParticles) )
{
// allocating data space
if( ! this->allocMemory() ) {
this->release();
return false;
}
setupIndices();
#if CC_TEXTURE_ATLAS_USE_VAO
setupVBOandVAO();
#else
setupVBO();
#endif
setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColor));
// Need to listen the event only when not use batchnode, because it will use VBO
CCNotificationCenter::sharedNotificationCenter()->addObserver(this,
callfuncO_selector(CCParticleSystemQuad::listenBackToForeground),
EVNET_COME_TO_FOREGROUND,
NULL);
return true;
}
return false;
}
开发者ID:Ratel13,项目名称:super-animation-samples,代码行数:35,代码来源:CCParticleSystemQuad.cpp
示例18: CCTextureAtlas
// 初始化方法,用纹理
bool CCSpriteBatchNode::initWithTexture(CCTexture2D *tex, unsigned int capacity)
{
m_blendFunc.src = CC_BLEND_SRC;
m_blendFunc.dst = CC_BLEND_DST;
m_pobTextureAtlas = new CCTextureAtlas();
if (0 == capacity)
{
capacity = kDefaultSpriteBatchCapacity;
}
m_pobTextureAtlas->initWithTexture(tex, capacity);
updateBlendFunc();
// no lazy alloc in this node
m_pChildren = new CCArray();
m_pChildren->initWithCapacity(capacity);
m_pobDescendants = new CCArray();
m_pobDescendants->initWithCapacity(capacity);
setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColor));
return true;
}
开发者ID:erduo,项目名称:cocos2d-x,代码行数:26,代码来源:CCSpriteBatchNode.cpp
示例19: m_sprite
NS_CC_BEGIN
CCCatmullRomSprite::CCCatmullRomSprite(CCSprite* sprite) :
m_sprite(NULL),
m_dirty(false),
m_allVisible(true),
m_tension(0.1f),
m_atlas(NULL) {
CCAssert(sprite != NULL, "CCCatmullRomSprite doesn't accept NULL sprite");
// save sprite
m_sprite = sprite;
CC_SAFE_RETAIN(m_sprite);
// atlas
m_atlas = CCTextureAtlasEx::createWithTexture(m_sprite->getTexture(), kDefaultSpriteBatchCapacity);
CC_SAFE_RETAIN(m_atlas);
// shader program
setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColor));
// set content size
setContentSize(CCSizeZero);
// update some member variables
m_patternLength = m_sprite->getContentSize().width;
m_patternWidth = m_sprite->getContentSize().height;
}
开发者ID:Cocos2d-x-vn,项目名称:cocos2dx-better,代码行数:28,代码来源:CCCatmullRomSprite.cpp
示例20: updateColor
bool LayerColor::initWithColor(const Color4B& color, GLfloat w, GLfloat h)
{
if (Layer::init())
{
// default blend function
_blendFunc = BlendFunc::ALPHA_NON_PREMULTIPLIED;
_displayedColor.r = _realColor.r = color.r;
_displayedColor.g = _realColor.g = color.g;
_displayedColor.b = _realColor.b = color.b;
_displayedOpacity = _realOpacity = color.a;
for (size_t i = 0; i<sizeof(_squareVertices) / sizeof( _squareVertices[0]); i++ )
{
_squareVertices[i].x = 0.0f;
_squareVertices[i].y = 0.0f;
}
updateColor();
setContentSize(Size(w, h));
setShaderProgram(ShaderCache::getInstance()->getProgram(GLProgram::SHADER_NAME_POSITION_COLOR_NO_MVP));
return true;
}
return false;
}
开发者ID:253627764,项目名称:WagonWar,代码行数:27,代码来源:CCLayer.cpp
注:本文中的setShaderProgram函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论