Hi, I’m working on a game where I do some drawing on RenderTexture and then write it on some polygon shape, it’s working fine on any other device other than iPhone 5s, and also it was working before I updated xcode, any guesses what may cause that problem?
Thanks for attention.
here is the code below:
void JellyNode::onDraw(const Mat4 &transform, uint32_t flags)
{
Sprite* _sprite = Sprite::createWithTexture(_renderTexture->getSprite()->getTexture());
getGLProgram()->use();
getGLProgram()->setUniformsForBuiltins(transform);
GL::blendFunc( _sprite->getBlendFunc().src, _sprite->getBlendFunc().dst );
GL::enableVertexAttribs(GL::VERTEX_ATTRIB_FLAG_POS_COLOR_TEX );
GL::bindTexture2D( _sprite->getTexture()->getName() );
glVertexAttribPointer( GLProgram::VERTEX_ATTRIB_POSITION, 2, GL_FLOAT, GL_FALSE, sizeof(_vertexData[0]) , &_vertexData[0].vertices);
glVertexAttribPointer( GLProgram::VERTEX_ATTRIB_TEX_COORD, 2, GL_FLOAT, GL_FALSE, sizeof(_vertexData[0]), &_vertexData[0].texCoords);
glVertexAttribPointer( GLProgram::VERTEX_ATTRIB_COLOR, 4, GL_UNSIGNED_BYTE, GL_TRUE, sizeof(_vertexData[0]), &_vertexData[0].colors);
glDrawArrays(GL_TRIANGLE_FAN, 0, _allVertexCount);
CC_INCREMENT_GL_DRAWN_BATCHES_AND_VERTICES(1,_allVertexCount);
}
void JellyNode::draw(Renderer *renderer, const Mat4 &transform, uint32_t flags)
{
if( ! _vertexData || ! _sprite)
return;
_renderTexture->beginWithClear(255, 255, 255, 0);
layer->setPosition(_renderTexture->getSprite()->getContentSize() / 2);
layer->visit();
_renderTexture->end();
_customCommand.init(_globalZOrder);
_customCommand.func = CC_CALLBACK_0(JellyNode::onDraw, this, transform, flags);
renderer->addCommand(&_customCommand);
}