copy
- @H_403_29@#include"BYGraySprite.h"
- @H_403_29@BYGraySprite::BYGraySprite(){
- @H_403_29@
- @H_403_29@}
- @H_403_29@BYGraySprite::~BYGraySprite(){
- @H_403_29@BYGraySprite*BYGraySprite::create(char*pszFileName){
- @H_403_29@BYGraySprite*graySprite=newBYGraySprite;
- if(graySprite&&graySprite->initWithFile(pszFileName)){
- @H_403_29@graySprite->autorelease();
- returngraySprite;
- @H_403_29@}else{
- @H_403_29@CC_SAFE_RELEASE(graySprite);
- returnNULL;
- @H_403_29@}
- boolBYGraySprite::initWithTexture(CCTexture2D*pTexture,153); font-weight:bold; background-color:inherit">constCCRect&tRect){
- do{
- @H_403_29@CC_BREAK_IF(!CCSprite::initWithTexture(pTexture,tRect));
- @H_403_29@GLchar*pszFragSource=
- @H_403_29@"#ifdefGL_ES\n\
- @H_403_29@precisionmediumpfloat;\n\
- @H_403_29@#endif\n\
- @H_403_29@uniformsampler2Du_texture;\n\
- @H_403_29@varyingvec2v_texCoord;\n\
- @H_403_29@varyingvec4v_fragmentColor;\n\
- voidmain(void)\n\
- @H_403_29@{\n\
- @H_403_29@//ConverttogreyscaleusingNTSCweightings\n\
- floatgrey=dot(texture2D(u_texture,v_texCoord).rgba,vec4(0.5,0.0,0.7));\n\
- @H_403_29@gl_FragColor=vec4(grey,0.0);\n\
- @H_403_29@}";
- @H_403_29@CCGLProgram*pProgram=newCCGLProgram();
- @H_403_29@pProgram->initWithVertexShaderByteArray(ccPositionTextureColor_vert,pszFragSource);
- this->setShaderProgram(pProgram);
- @H_403_29@pProgram->release();
- @H_403_29@CHECK_GL_ERROR_DEBUG();
- this->getShaderProgram()->addAttribute(kCCAttributeNamePosition,kCCVertexAttrib_Position);
- this->getShaderProgram()->addAttribute(kCCAttributeNameColor,kCCVertexAttrib_Color);
- this->getShaderProgram()->addAttribute(kCCAttributeNameTexCoord,kCCVertexAttrib_TexCoords);
- @H_403_29@CHECK_GL_ERROR_DEBUG();
- this->getShaderProgram()->link();
- this->getShaderProgram()->updateUniforms();
- returntrue;
- while(0);
- false;
- voidBYGraySprite::draw(){
- @H_403_29@ccGLEnableVertexAttribs(kCCVertexAttribFlag_PosColorTex);
- @H_403_29@ccGLBlendFunc(m_sBlendFunc.src,m_sBlendFunc.dst);
- this->getShaderProgram()->use();
- this->getShaderProgram()->setUniformForModelViewProjectionMatrix();
- @H_403_29@ccGLBindTexture2D(this->getTexture()->getName());
- @H_403_29@#definekQuadSizesizeof(m_sQuad.bl)
- longoffset=(long)&m_sQuad;
- @H_403_29@//vertex
- @H_403_29@intdiff=offsetof(ccV3F_C4B_T2F,vertices);
- @H_403_29@glVertexAttribPointer(kCCVertexAttrib_Position,3,GL_FLOAT,GL_FALSE,kQuadSize,(void*)(offset+diff));
- //texCoods
- @H_403_29@diff=offsetof(ccV3F_C4B_T2F,texCoords);
- @H_403_29@glVertexAttribPointer(kCCVertexAttrib_TexCoords,2,0); background-color:inherit">//color
- @H_403_29@glVertexAttribPointer(kCCVertexAttrib_Color,4,GL_UNSIGNED_BYTE,GL_TRUE,248)"> @H_403_29@glDrawArrays(GL_TRIANGLE_STRIP,4);
- @H_403_29@CC_INCREMENT_GL_DRAWS(1);
- @H_403_29@}