这篇教程C++ CC_NODE_DRAW_SETUP函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中CC_NODE_DRAW_SETUP函数的典型用法代码示例。如果您正苦于以下问题:C++ CC_NODE_DRAW_SETUP函数的具体用法?C++ CC_NODE_DRAW_SETUP怎么用?C++ CC_NODE_DRAW_SETUP使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了CC_NODE_DRAW_SETUP函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: CC_NODE_DRAW_SETUPvoid BatchNode::draw(Renderer *renderer, const kmMat4 &transform, bool transformUpdated){ if (_children.empty()) { return; } CC_NODE_DRAW_SETUP(); bool pushed = false; for(auto object : _children) { Armature *armature = dynamic_cast<Armature *>(object); if (armature) { if (!pushed) { generateGroupCommand(); pushed = true; } armature->visit(renderer, transform, transformUpdated); } else { renderer->popGroup(); pushed = false; ((Node *)object)->visit(renderer, transform, transformUpdated); } }}
开发者ID:BellyWong,项目名称:EarthWarrior3D,代码行数:32,
示例2: CC_NODE_DRAW_SETUPvoid TextureSprite::draw(){ if (!m_bVisible) return; CC_NODE_DRAW_SETUP(); ccGLBlendFunc(m_sBlendFunc.src, m_sBlendFunc.dst); ccGLBindTexture2D(mTexture2D->getName()); ccGLEnableVertexAttribs(kCCVertexAttribFlag_Position | kCCVertexAttribFlag_TexCoords); /// Time offset getShaderProgram()->setUniformLocationWith2f(mTimeLocation, mTime.x, mTime.y); /// Color getShaderProgram()->setUniformLocationWith4f(mColorLocation, mColor.r, mColor.g, mColor.b, mColor.a); /// Vertex glVertexAttribPointer(kCCVertexAttrib_Position, 3, GL_FLOAT, GL_FALSE, sizeof(ccVertex3F), (void*)&mVertexPos[0]); /// Texture coord. glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, sizeof(ccTex2F), (void*)&mTexCoords[0]); /// Available mode: GL_TRIANGLES, GL_TRIANGLES_STRIP and GL_TRIANGLE_FAN glDrawArrays(GL_TRIANGLES, 0, mVertexPos.size()); /// Do NOT call glFlush or performance will decrease drastically! /// glFlush(); CHECK_GL_ERROR_DEBUG(); CC_INCREMENT_GL_DRAWS(1);}
开发者ID:xoraphics,项目名称:yummyjump,代码行数:29,
示例3: CC_NODE_DRAW_SETUPvoid CADrawView::draw(){ CC_NODE_DRAW_SETUP(); ccGLBlendFunc(m_sBlendFunc.src, m_sBlendFunc.dst); render();}
开发者ID:Brian1900,项目名称:CrossApp,代码行数:7,
示例4: CC_NODE_DRAW_SETUPKDvoid Controller::draw ( KDvoid ){ CC_NODE_DRAW_SETUP ( ); GLfloat fVertices [ ] = { 0, 512, 1024, 512, 0, 0, 1024, 0, }; GLfloat fCoords [ ] = { 0, 0, 1, 0, 0, 1, 1, 1, }; ccGLBindTexture2D ( m_uTexture ); ccGLEnableVertexAttribs ( kCCVertexAttribFlag_Position | kCCVertexAttribFlag_TexCoords ); if ( m_pDrawFunc ) { m_pDrawFunc ( KD_GET_UST2MSEC ); } ccGLVertexAttribPointer ( kCCVertexAttrib_Position , 2, GL_FLOAT, GL_FALSE, 0, fVertices ); ccGLVertexAttribPointer ( kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, 0, fCoords ); glDrawArrays ( GL_TRIANGLE_STRIP, 0, 4 ); ccGLBindTexture2D ( 0 );}
开发者ID:mcodegeeks,项目名称:OpenKODE-Framework,代码行数:35,
示例5: CC_NODE_DRAW_SETUPvoid BBWater::draw(){ CC_NODE_DRAW_SETUP(); // ccGLBlendFunc( m_sBlendFunc.src, m_sBlendFunc.dst ); ccGLBindTexture2D( m_sprite->getTexture()->getName() );// ccGLEnableVertexAttribs( kCCVertexAttribFlag_Position ); // glBindBuffer(GL_ARRAY_BUFFER, m_vertexVbo);// glBufferData(GL_ARRAY_BUFFER, sizeof(float)*vertexArray.size(), &vertexArray[0], GL_STATIC_DRAW); glEnableVertexAttribArray( kCCVertexAttrib_Position ); // vertex glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3, &vertexArray[0]); // // texCoods// diff = offsetof( ccV3F_C4B_T2F, texCoords);// glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, kQuadSize, (void*)(offset + diff));// // // color// diff = offsetof( ccV3F_C4B_T2F, colors);// glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, kQuadSize, (void*)(offset + diff)); glDrawArrays(GL_TRIANGLES, 0, m_faceCount); CHECK_GL_ERROR_DEBUG();}
开发者ID:newcl,项目名称:boom,代码行数:30,
示例6: CC_NODE_DRAW_SETUPvoid CCEPixelNode::draw(){ CC_NODE_DRAW_SETUP(); ccGLEnableVertexAttribs( kCCVertexAttribFlag_Position | kCCVertexAttribFlag_Color ); // // Attributes // ccePixelPart* pt = m_pPixels; while(pt!=NULL) { if(!pt->hide) { for(int i=0;i<pt->len;i++) { ccePixelInfo* p = pt->pixels+i; if(p->hide)continue; glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0, p->square); glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_FLOAT, GL_FALSE, 0, p->color); ccGLBlendFunc( m_tBlendFunc.src, m_tBlendFunc.dst ); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); } } pt = pt->next; } CC_INCREMENT_GL_DRAWS(1); }
开发者ID:catyguan,项目名称:gamedev.platform,代码行数:26,
示例7: CC_NODE_DRAW_SETUPvoid CCMenuItemColor::draw(Renderer *renderer, const kmMat4& transform, bool transformUpdated) { CC_NODE_DRAW_SETUP(); ccGLEnableVertexAttribs( kCCVertexAttribFlag_Position | kCCVertexAttribFlag_Color ); // // Attributes //#ifdef EMSCRIPTEN setGLBufferData(m_pSquareVertices, 4 * sizeof(ccVertex2F), 0); glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0, 0); setGLBufferData(m_pSquareColors, 4 * sizeof(ccColor4F), 1); glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_FLOAT, GL_FALSE, 0, 0);#else glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0, m_pSquareVertices); glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_FLOAT, GL_FALSE, 0, m_pSquareColors);#endif // EMSCRIPTEN ccGLBlendFunc(m_tBlendFunc.src, m_tBlendFunc.dst); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); CC_INCREMENT_GL_DRAWS(1);}
开发者ID:ourgames,项目名称:dc208,代码行数:25,
示例8: CC_PROFILER_STARTvoid Label::onDraw(){ CC_PROFILER_START("Label - draw"); // Optimization: Fast Dispatch if( _batchNodes.size() == 1 && _textureAtlas->getTotalQuads() == 0 ) { return; } CC_NODE_DRAW_SETUP(); if (_useDistanceField && _currLabelEffect != LabelEffect::NORMAL) { _shaderProgram->setUniformLocationWith3f(_uniformEffectColor, _effectColor.r/255.0f,_effectColor.g/255.0f,_effectColor.b/255.0f); } for(const auto &child: _children) { child->updateTransform(); } GL::blendFunc( _blendFunc.src, _blendFunc.dst ); for (const auto& batchNode:_batchNodes) { batchNode->getTextureAtlas()->drawQuads(); } CC_PROFILER_STOP("Label - draw");}
开发者ID:12white,项目名称:CocoStudioSamples,代码行数:31,
示例9: CC_NODE_DRAW_SETUPvoid CCDrawNode::draw(){ CC_NODE_DRAW_SETUP(); ccGLBlendFunc(m_sBlendFunc.src, m_sBlendFunc.dst); render();}
开发者ID:wenhulove333,项目名称:ScutServer,代码行数:7,
示例10: CC_NODE_DRAW_SETUPvoid MotionStreak::draw(){ if(_nuPoints <= 1) return; CC_NODE_DRAW_SETUP(); GL::enableVertexAttribs(GL::VERTEX_ATTRIB_FLAG_POS_COLOR_TEX ); GL::blendFunc( _blendFunc.src, _blendFunc.dst ); GL::bindTexture2D( _texture->getName() );#ifdef EMSCRIPTEN // Size calculations from ::initWithFade setGLBufferData(_vertices, (sizeof(Vertex2F) * _maxPoints * 2), 0); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 2, GL_FLOAT, GL_FALSE, 0, 0); setGLBufferData(_texCoords, (sizeof(Tex2F) * _maxPoints * 2), 1); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_TEX_COORDS, 2, GL_FLOAT, GL_FALSE, 0, 0); setGLBufferData(_colorPointer, (sizeof(GLubyte) * _maxPoints * 2 * 4), 2); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0);#else glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 2, GL_FLOAT, GL_FALSE, 0, _vertices); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_TEX_COORDS, 2, GL_FLOAT, GL_FALSE, 0, _texCoords); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, _colorPointer);#endif // EMSCRIPTEN glDrawArrays(GL_TRIANGLE_STRIP, 0, (GLsizei)_nuPoints*2); CC_INCREMENT_GL_DRAWS(1);}
开发者ID:Gamex,项目名称:GameX,代码行数:32,
示例11: CC_NODE_DRAW_SETUPvoid CCMotionStreak::draw(){ if(m_uNuPoints <= 1) return; CC_NODE_DRAW_SETUP(this); ccGLEnableVertexAttribs(kCCVertexAttribFlag_PosColorTex ); ccGLBlendFunc( m_tBlendFunc.src, m_tBlendFunc.dst ); ccGLBindTexture2D( m_pTexture->getName() ); if(m_pTexture->isETC()) { getShaderProgram()->useSeparatedAlphaChannel(m_pTexture->getAlphaChannel()->getName()); } #ifdef EMSCRIPTEN // Size calculations from ::initWithFade setGLBufferData(m_pVertices, (sizeof(ccVertex2F) * m_uMaxPoints * 2), 0); glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0, 0); setGLBufferData(m_pTexCoords, (sizeof(ccTex2F) * m_uMaxPoints * 2), 1); glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, 0, 0); setGLBufferData(m_pColorPointer, (sizeof(GLubyte) * m_uMaxPoints * 2 * 4), 2); glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, 0);#else glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0, m_pVertices); glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, 0, m_pTexCoords); glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, m_pColorPointer);#endif // EMSCRIPTEN glDrawArrays(GL_TRIANGLE_STRIP, 0, (GLsizei)m_uNuPoints*2); CC_INCREMENT_GL_DRAWS(1);}
开发者ID:boruis,项目名称:cocos2dx-classical,代码行数:35,
示例12: CC_NODE_DRAW_SETUPvoid BatchNode::draw(){ if (_children.empty()) { return; } CC_NODE_DRAW_SETUP(); bool pushed = false; for(auto object : _children) { Armature *armature = dynamic_cast<Armature *>(object); if (armature) { if (!pushed) { generateGroupCommand(); pushed = true; } armature->visit(); } else { Director::getInstance()->getRenderer()->popGroup(); pushed = false; ((Node *)object)->visit(); } }}
开发者ID:leanlyne,项目名称:ShootColorX,代码行数:32,
示例13: CC_NODE_DRAW_SETUPvoid Sky::draw(Renderer *renderer, const Mat4& transform, uint32_t flags) { cocos2d::Size s = Director::getInstance()->getWinSize(); DoodleTruck *doodleTruck = DoodleTruck::sharedDoodleTruck(); CC_NODE_DRAW_SETUP(); Vec2 _skyVertices[4]; Vec2 _skyTexCoords[4]; _skyVertices[0] = Vec2(0, 0); _skyTexCoords[0] = Vec2(1.0, 1.0f); _skyVertices[1] = Vec2(s.width, 0); _skyTexCoords[1] = Vec2(1.0f, 1.0f); _skyVertices[2] = Vec2(0, s.height); _skyTexCoords[2] = Vec2(31.0f, 63.0f); _skyVertices[3] = Vec2(s.width, s.height); _skyTexCoords[3] = Vec2(31.0f, 63.0f); Texture2D * tex = Director::getInstance()->getTextureCache()->textureForKey("sky-bg-rainbow.png"); GL::bindTexture2D(tex->getName()); GL::enableVertexAttribs( GL::VERTEX_ATTRIB_FLAG_POSITION | GL::VERTEX_ATTRIB_FLAG_TEX_COORD); ccDrawColor4F(1.0f, 1.0f, 1.0f, 1.0f); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 2, GL_FLOAT, GL_FALSE, 0, _skyVertices); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_TEX_COORD, 2, GL_FLOAT, GL_FALSE, 0, _skyTexCoords); glDrawArrays(GL_TRIANGLE_STRIP, 0, (GLsizei)4); // ccDrawColor4F(1.0, 1.0, 1.0, 1.0);*/}
开发者ID:HoaPham98,项目名称:HillClimb,代码行数:33,
示例14: CC_PROFILER_START_CATEGORY//--------------------------------------------------------void CRemoveBKSprite::draw(void){ CC_PROFILER_START_CATEGORY(kCCProfilerCategorySprite, "CCSprite - draw"); CCAssert(!m_pobBatchNode, "If CCSprite is being rendered by CCSpriteBatchNode, CCSprite#draw SHOULD NOT be called"); CC_NODE_DRAW_SETUP(); // 启用attributes变量输入,顶点坐标,纹理坐标,颜色 ccGLEnableVertexAttribs( kCCVertexAttribFlag_PosColorTex ); ccGLBlendFunc(m_sBlendFunc.src, m_sBlendFunc.dst); m_pShaderProgram->use(); m_pShaderProgram->setUniformsForBuiltins(); // 绑定纹理到纹理槽0 ccGLBindTexture2D(m_pobTexture->getName()); long offset = (long)&m_sQuad; // vertex int diff = offsetof( ccV3F_C4B_T2F, vertices); glVertexAttribPointer(kCCVertexAttrib_Position, 3, GL_FLOAT, GL_FALSE, sizeof(m_sQuad.bl), (void*) (offset + diff)); // texCoods diff = offsetof( ccV3F_C4B_T2F, texCoords); glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, sizeof(m_sQuad.bl), (void*)(offset + diff)); // color diff = offsetof( ccV3F_C4B_T2F, colors); glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(m_sQuad.bl), (void*)(offset + diff)); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); CHECK_GL_ERROR_DEBUG(); CC_INCREMENT_GL_DRAWS(1); CC_PROFILER_STOP_CATEGORY(kCCProfilerCategorySprite, "CCSprite - draw");}
开发者ID:Pancho2wang,项目名称:cocos2dx_shader_demo,代码行数:35,
示例15: CC_NODE_DRAW_SETUPvoid ShaderNode::draw(){ CC_NODE_DRAW_SETUP(); float w = SIZE_X, h = SIZE_Y; GLfloat vertices[12] = {0,0, w,0, w,h, 0,0, 0,h, w,h}; // // Uniforms // getShaderProgram()->setUniformLocationWith2f(m_uniformCenter, m_center.x, m_center.y); getShaderProgram()->setUniformLocationWith2f(m_uniformResolution, m_resolution.x, m_resolution.y); // time changes all the time, so it is Ok to call OpenGL directly, and not the "cached" version glUniform1f(m_uniformTime, m_time); ccGLEnableVertexAttribs( kCCVertexAttribFlag_Position ); glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0, vertices); glDrawArrays(GL_TRIANGLES, 0, 6); CC_INCREMENT_GL_DRAWS(1);}
开发者ID:1vs1,项目名称:quick-cocos2d-x,代码行数:25,
示例16: CC_NODE_DRAW_SETUPvoid CCControlSwitchSprite::draw(){ CC_NODE_DRAW_SETUP(); ccGLEnableVertexAttribs(kCCVertexAttribFlag_PosColorTex); ccGLBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); getShaderProgram()->setUniformForModelViewProjectionMatrix(); glActiveTexture(GL_TEXTURE0); glBindTexture( GL_TEXTURE_2D, getTexture()->getName()); glUniform1i(m_uTextureLocation, 0); glActiveTexture(GL_TEXTURE1); glBindTexture( GL_TEXTURE_2D, m_pMaskTexture->getName() ); glUniform1i(m_uMaskLocation, 1);#define kQuadSize sizeof(m_sQuad.bl) long offset = (long)&m_sQuad; // vertex int diff = offsetof( ccV3F_C4B_T2F, vertices); glVertexAttribPointer(kCCVertexAttrib_Position, 3, GL_FLOAT, GL_FALSE, kQuadSize, (void*) (offset + diff)); // texCoods diff = offsetof( ccV3F_C4B_T2F, texCoords); glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, kQuadSize, (void*)(offset + diff)); // color diff = offsetof( ccV3F_C4B_T2F, colors); glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, kQuadSize, (void*)(offset + diff)); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); glActiveTexture(GL_TEXTURE0);}
开发者ID:suzuhiroruri,项目名称:EuropeanCharisou,代码行数:34,
示例17: CC_NODE_DRAW_SETUPvoid ShaderSprite::onDraw(){ CC_NODE_DRAW_SETUP(); setCustomUniforms(); GL::enableVertexAttribs(cocos2d::GL::VERTEX_ATTRIB_FLAG_POS_COLOR_TEX ); GL::blendFunc(_blendFunc.src, _blendFunc.dst); GL::bindTexture2D( getTexture()->getName()); // // Attributes //#define kQuadSize sizeof(_quad.bl) long offset = (long)&_quad; // vertex int diff = offsetof( V3F_C4B_T2F, vertices); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 3, GL_FLOAT, GL_FALSE, kQuadSize, (void*) (offset + diff)); // texCoods diff = offsetof( V3F_C4B_T2F, texCoords); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_TEX_COORDS, 2, GL_FLOAT, GL_FALSE, kQuadSize, (void*)(offset + diff)); // color diff = offsetof( V3F_C4B_T2F, colors); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, kQuadSize, (void*)(offset + diff)); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);}
开发者ID:ioyouj,项目名称:Hello-LWF-Cocos2d-x,代码行数:31,
示例18: CC_NODE_DRAW_SETUP//--------------------------------------------------------void CShaderNode::draw(){ CC_NODE_DRAW_SETUP(); //传递uniform变量 CCGLProgram* shader = getShaderProgram(); shader->setUniformLocationWith2f(m_unUniformResolution, m_tagResolutionPos.x, m_tagResolutionPos.y); shader->setUniformLocationWith1i(m_unUniformTex0, 0); glUniform1f(m_unUniformTime, m_fTime); //获取attribute变量 CCSize size = this->getContentSize(); float w = size.width; float h = size.height; ccGLBindTexture2D(m_pTexture); //绑定纹理到槽位 glCopyTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 0, 0, w, h, 0); //截取屏幕数据到纹理 glEnableVertexAttribArray(m_unAttributePosition); //传递attribute变量 GLfloat vertices[12] = { 0, 0, //左下0 w, 0, //右下1 w, h, //右上2 0, 0, //左下0 0, h, //左上3 w, h, //右上2 }; glVertexAttribPointer(m_unAttributePosition, 2, GL_FLOAT, GL_FALSE, 0, vertices); glVertexAttrib4fv(m_unAttributeColor, m_fColor); //绘制 glDrawArrays(GL_TRIANGLES, 0, 6); }
开发者ID:Pancho2wang,项目名称:cocos2dx_shader_demo,代码行数:34,
示例19: CC_NODE_DRAW_SETUPvoid LightLayer::draw(){ CC_NODE_DRAW_SETUP(); GL::enableVertexAttribs(GL::VERTEX_ATTRIB_FLAG_POSITION | GL::VERTEX_ATTRIB_FLAG_COLOR); glUniform3f(_spotLocation, _spotPoint.x, _spotPoint.y, 0); glUniform4f(_innerColor, 0, 0, 0, 0); glUniform1f(_spotInnerRadius, 50); glUniform1f(_spotOuterRadius, 220); // // Attributes //#ifdef EMSCRIPTEN setGLBufferData(_squareVertices, 4 * sizeof(Vertex2F), 0); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 2, GL_FLOAT, GL_FALSE, 0, 0); setGLBufferData(_squareColors, 4 * sizeof(Color4F), 1); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_COLOR, 4, GL_FLOAT, GL_FALSE, 0, 0);#else glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 2, GL_FLOAT, GL_FALSE, 0, _squareVertices); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_COLOR, 4, GL_FLOAT, GL_FALSE, 0, _squareColors);#endif // EMSCRIPTEN GL::blendFunc(_blendFunc.src, _blendFunc.dst); glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); CC_INCREMENT_GL_DRAWS(1);}
开发者ID:ado137,项目名称:shader_cocos2dx,代码行数:30,
示例20: CC_NODE_DRAW_SETUPvoid ShaderNode::draw(){ CC_NODE_DRAW_SETUP(); float w = SIZE_X, h = SIZE_Y; GLfloat vertices[12] = {0, 0, w, 0, w, h, 0, 0, 0, h, w, h}; // // Uniforms // getShaderProgram()->setUniformLocationWith2f(_uniformCenter, _center.x, _center.y); getShaderProgram()->setUniformLocationWith2f(_uniformResolution, _resolution.x, _resolution.y); // time changes all the time, so it is Ok to call OpenGL directly, and not the "cached" version glUniform1f(_uniformTime, _time); GL::enableVertexAttribs(GL::VERTEX_ATTRIB_FLAG_POSITION); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 2, GL_FLOAT, GL_FALSE, 0, vertices); glDrawArrays(GL_TRIANGLES, 0, 6); CC_INCREMENT_GL_DRAWS(1);}
开发者ID:ADoby,项目名称:Project_Space_Pirate,代码行数:25,
示例21: CCAssert// overriding draw methodvoid CCParticleSystemQuad::draw(){ CCAssert(!m_pBatchNode,"draw should not be called when added to a particleBatchNode"); CC_NODE_DRAW_SETUP(); ccGLBindTexture2D( m_pTexture->getName() ); ccGLBlendFunc( m_tBlendFunc.src, m_tBlendFunc.dst ); CCAssert( m_uParticleIdx == m_uParticleCount, "Abnormal error in particle quad");#if CC_TEXTURE_ATLAS_USE_VAO // // Using VBO and VAO // glBindVertexArray( m_uVAOname );#if CC_REBIND_INDICES_BUFFER glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_pBuffersVBO[1]);#endif glDrawElements(GL_TRIANGLES, (GLsizei) m_uParticleIdx*6, GL_UNSIGNED_SHORT, 0);#if CC_REBIND_INDICES_BUFFER glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);#endif glBindVertexArray( 0 );#else // // Using VBO without VAO // #define kQuadSize sizeof(m_pQuads[0].bl) ccGLEnableVertexAttribs( kCCVertexAttribFlag_PosColorTex ); glBindBuffer(GL_ARRAY_BUFFER, m_pBuffersVBO[0]); // vertices glVertexAttribPointer(kCCVertexAttrib_Position, 3, GL_FLOAT, GL_FALSE, kQuadSize, (GLvoid*) offsetof( ccV3F_C4B_T2F, vertices)); // colors glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, kQuadSize, (GLvoid*) offsetof( ccV3F_C4B_T2F, colors)); // tex coords glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, kQuadSize, (GLvoid*) offsetof( ccV3F_C4B_T2F, texCoords)); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, m_pBuffersVBO[1]); glDrawElements(GL_TRIANGLES, (GLsizei) m_uParticleIdx*6, GL_UNSIGNED_SHORT, 0); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);#endif CC_INCREMENT_GL_DRAWS(1); CHECK_GL_ERROR_DEBUG();}
开发者ID:Atomz,项目名称:super-animation-samples,代码行数:59,
示例22: CCASSERT// overriding draw methodvoid ParticleSystemQuad::draw(){ CCASSERT(!_batchNode,"draw should not be called when added to a particleBatchNode"); CC_NODE_DRAW_SETUP(); GL::bindTexture2D( _texture->getName() ); GL::blendFunc( _blendFunc.src, _blendFunc.dst ); CCASSERT( _particleIdx == _particleCount, "Abnormal error in particle quad");#if CC_TEXTURE_ATLAS_USE_VAO // // Using VBO and VAO // GL::bindVAO(_VAOname);#if CC_REBIND_INDICES_BUFFER glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _buffersVBO[1]);#endif glDrawElements(GL_TRIANGLES, (GLsizei) _particleIdx*6, GL_UNSIGNED_SHORT, 0);#if CC_REBIND_INDICES_BUFFER glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);#endif#else // // Using VBO without VAO // #define kQuadSize sizeof(_quads[0].bl) GL::enableVertexAttribs( GL::VERTEX_ATTRIB_FLAG_POS_COLOR_TEX ); glBindBuffer(GL_ARRAY_BUFFER, _buffersVBO[0]); // vertices glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 3, GL_FLOAT, GL_FALSE, kQuadSize, (GLvoid*) offsetof( V3F_C4B_T2F, vertices)); // colors glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, kQuadSize, (GLvoid*) offsetof( V3F_C4B_T2F, colors)); // tex coords glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_TEX_COORDS, 2, GL_FLOAT, GL_FALSE, kQuadSize, (GLvoid*) offsetof( V3F_C4B_T2F, texCoords)); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, _buffersVBO[1]); glDrawElements(GL_TRIANGLES, (GLsizei) _particleIdx*6, GL_UNSIGNED_SHORT, 0); glBindBuffer(GL_ARRAY_BUFFER, 0); glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);#endif CC_INCREMENT_GL_DRAWS(1); CHECK_GL_ERROR_DEBUG();}
开发者ID:ADoby,项目名称:Project_Space_Pirate,代码行数:57,
示例23: CC_NODE_DRAW_SETUP// AtlasNode - drawvoid AtlasNode::draw(void){ CC_NODE_DRAW_SETUP(); ccGLBlendFunc( _blendFunc.src, _blendFunc.dst ); GLfloat colors[4] = {_displayedColor.r / 255.0f, _displayedColor.g / 255.0f, _displayedColor.b / 255.0f, _displayedOpacity / 255.0f}; getShaderProgram()->setUniformLocationWith4fv(_uniformColor, colors, 1); _textureAtlas->drawNumberOfQuads(_quadsToDraw, 0);}
开发者ID:bassarisse,项目名称:LostInCaves,代码行数:12,
示例24: CC_NODE_DRAW_SETUP// CCAtlasNode - drawvoid CCAtlasNode::draw(void){ CC_NODE_DRAW_SETUP(); ccGLBlendFunc( m_tBlendFunc.src, m_tBlendFunc.dst ); GLfloat colors[4] = {m_tColor.r / 255.0f, m_tColor.g / 255.0f, m_tColor.b / 255.0f, m_cOpacity / 255.0f}; getShaderProgram()->setUniformLocationWith4fv(m_nUniformColor, colors, 1); m_pTextureAtlas->drawNumberOfQuads(m_uQuadsToDraw, 0);}
开发者ID:hbbalfred,项目名称:CCXWebview,代码行数:12,
示例25: CC_NODE_DRAW_SETUP// Cocos2dxAtlasNode - drawvoid Cocos2dxAtlasNode::draw(){ CC_NODE_DRAW_SETUP(); ccGLBlendFunc( m_tBlendFunc.src, m_tBlendFunc.dst ); GLfloat colors[4] = {_displayedColor.r / 255.0f, _displayedColor.g / 255.0f, _displayedColor.b / 255.0f, _displayedOpacity / 255.0f}; getShaderProgram()->setUniformLocationWith4fv(m_nUniformColor, colors, 1); m_pTextureAtlas->drawNumberOfQuads(1, m_nQuadIndex); m_pTextureAtlas->getQuads();}
开发者ID:harveyyang,项目名称:DragonBones_Learn,代码行数:13,
示例26: CC_NODE_DRAW_SETUPvoid CCSprite3D::draw(){// m_bDepthTestEnabled = 0 == glIsEnabled(GL_DEPTH_TEST) ? false : true;//// CCDirector::sharedDirector()->setDepthTest(true);// CC_NODE_DRAW_SETUP();// getShaderProgram()->use();// getShaderProgram()->setUniformsForBuiltins(); CCPoint const & origin = ccp(0, 0); CCPoint const & destination = ccp(100, 100); ccVertex3F vertices[3] = {// {origin.x, origin.y, 100}, {destination.x, origin.y, 200}, {destination.x, destination.y, 100}, {origin.x, destination.y, 200} }; ccTex2F uv[3] = {// {0.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, 1.0f}, {0.0f, 1.0f} }; ccColor4B colors[3] = {// {255, 255, 255, 255}, {128, 128, 128, 128}, {128, 128, 128, 128}, {255, 255, 255, 255} }; ccGLBindTexture2D(mCustSkin->getName()); ccGLEnableVertexAttribs( kCCVertexAttribFlag_PosColorTex ); glVertexAttribPointer(kCCVertexAttrib_Position, 3, GL_FLOAT, GL_FALSE, 0, vertices); glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, 0, uv); glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, 0, colors); glDrawArrays(GL_TRIANGLES, 0, 3); CHECK_GL_ERROR_DEBUG(); CC_INCREMENT_GL_DRAWS(1);// m_pModel->draw();// static unsigned int uiStartFrame = 0, uiEndFrame = 182;// static float fAnimSpeed = 16.5f;// ((CCModelMd2*)m_pModel)->animate(fAnimSpeed, uiStartFrame, uiEndFrame, true);// CCDirector::sharedDirector()->setDepthTest(m_bDepthTestEnabled);}
开发者ID:vedi,项目名称:cocos2d-x,代码行数:53,
示例27: CC_NODE_DRAW_SETUPvoid TerrainTest::drawHill(){ CC_NODE_DRAW_SETUP(); GL::bindTexture2D(_stripes->getTexture()->getName()); // ccGLEnableVertexAttribs(kCCVertexAttribFlag_Position | kCCVertexAttribFlag_TexCoords); GL::enableVertexAttribs(GL::VERTEX_ATTRIB_FLAG_POSITION | GL::VERTEX_ATTRIB_FLAG_TEX_COORD); ccDrawColor4F(1.0f, 1.0f, 1.0f, 1.0f); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 2, GL_FLOAT, GL_FALSE, 0, _hillVertices); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_TEX_COORD, 2, GL_FLOAT, GL_FALSE, 0, _hillTexCoords); glDrawArrays(GL_TRIANGLE_STRIP, 0, (GLsizei)_nHillVertices); }
开发者ID:CludeX,项目名称:hill-climb-race,代码行数:13,
示例28: CC_NODE_DRAW_SETUPvoid ShaderNode::draw(Renderer *renderer, const Mat4& transform, uint32_t flags){ _customCommand.init(_globalZOrder); _customCommand.func = [=]() { CC_NODE_DRAW_SETUP(); GL::bindTexture2D(_texture->getName()); GL::enableVertexAttribs(GL::VERTEX_ATTRIB_FLAG_POSITION | GL::VERTEX_ATTRIB_FLAG_TEX_COORD); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_POSITION, 2, GL_FLOAT, GL_FALSE, 0, &_vertices[0]); glVertexAttribPointer(GLProgram::VERTEX_ATTRIB_TEX_COORD, 2, GL_FLOAT, GL_FALSE, 0, &_texCoords[0]); glDrawArrays(GL_TRIANGLE_STRIP, 0, (int)_vertices.size()); }; Director::getInstance()->getRenderer()->addCommand(&_customCommand);}
开发者ID:giangchau92,项目名称:Cocos2d-x-Effect,代码行数:13,
示例29: CC_PROFILER_START_CATEGORY/** * 绘制 */void MapCoordLine::draw(void){ CC_PROFILER_START_CATEGORY(kCCProfilerCategorySprite, "CCSprite - draw"); CCAssert(!m_pobBatchNode, "If CCSprite is being rendered by CCSpriteBatchNode, CCSprite#draw SHOULD NOT be called"); CC_NODE_DRAW_SETUP(); ccGLBlendFunc( m_sBlendFunc.src, m_sBlendFunc.dst ); if (m_pobTexture != NULL) { ccGLBindTexture2D( m_pobTexture->getName() ); } else { ccGLBindTexture2D(0); } // // Attributes // ccGLEnableVertexAttribs( kCCVertexAttribFlag_PosColorTex ); #define kQuadSize sizeof(m_sQuad.bl) if (points.size()) { long offset = (long)&points[0]; // vertex int diff = offsetof( ccV3F_C4B_T2F, vertices); glVertexAttribPointer(kCCVertexAttrib_Position, 3, GL_FLOAT, GL_FALSE, kQuadSize, (void*) (offset + diff)); // texCoods diff = offsetof( ccV3F_C4B_T2F, texCoords); glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, kQuadSize, (void*)(offset + diff)); // color diff = offsetof( ccV3F_C4B_T2F, colors); glVertexAttribPointer(kCCVertexAttrib_Color, 4, GL_UNSIGNED_BYTE, GL_TRUE, kQuadSize, (void*)(offset + diff)); glDrawArrays(GL_LINES, 0, points.size()); } CHECK_GL_ERROR_DEBUG(); CC_INCREMENT_GL_DRAWS(1); CC_PROFILER_STOP_CATEGORY(kCCProfilerCategorySprite, "CCSprite - draw");}
开发者ID:coderHsc,项目名称:sygame,代码行数:54,
注:本文中的CC_NODE_DRAW_SETUP函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ CC_POINT_PIXELS_TO_POINTS函数代码示例 C++ CC_INCREMENT_GL_DRAWS函数代码示例 |