void TFBatchNodeObject::clearAllBatchNode() { if (getBatchNode()) { getBatchNode()->removeFromParentAndCleanup(true); } setBatchNode(NULL); }
bool TFBatchNodeObject::init() { setBatchNode(TEXTURE_CACHE->createSpriteBatchNode(getBatchNodeName())); if (NULL == getBatchNode()) { return false; } return true; }
// designated initializer bool Sprite::initWithTexture(Texture2D *texture, const Rect& rect, bool rotated) { bool result; if (Node::init()) { _batchNode = nullptr; _recursiveDirty = false; setDirty(false); _opacityModifyRGB = true; _blendFunc = BlendFunc::ALPHA_PREMULTIPLIED; _flippedX = _flippedY = false; // default transform anchor: center setAnchorPoint(Vec2(0.5f, 0.5f)); // zwoptex default values _offsetPosition.setZero(); // clean the Quad memset(&_quad, 0, sizeof(_quad)); // Atlas: Color _quad.bl.colors = Color4B::WHITE; _quad.br.colors = Color4B::WHITE; _quad.tl.colors = Color4B::WHITE; _quad.tr.colors = Color4B::WHITE; // shader state setGLProgramState(GLProgramState::getOrCreateWithGLProgramName(GLProgram::SHADER_NAME_POSITION_TEXTURE_COLOR_NO_MVP)); // update texture (calls updateBlendFunc) setTexture(texture); setTextureRect(rect, rotated, rect.size); _polyInfo.setQuad(&_quad); // by default use "Self Render". // if the sprite is added to a batchnode, then it will automatically switch to "batchnode Render" setBatchNode(nullptr); result = true; } else { result = false; } _recursiveDirty = true; setDirty(true); return result; }
/** * 使用纹理初始化 */ bool MapCoordLine::initWithTexture(CCTexture2D *pTexture, const CCRect& rect, bool rotated) { m_pobBatchNode = NULL; // shader program setShaderProgram(CCShaderCache::sharedShaderCache()->programForKey(kCCShader_PositionTextureColor)); m_bRecursiveDirty = false; setDirty(false); m_bOpacityModifyRGB = true; m_nOpacity = 255; m_sColor = m_sColorUnmodified = ccWHITE; m_sBlendFunc.src = CC_BLEND_SRC; m_sBlendFunc.dst = CC_BLEND_DST; m_bFlipX = m_bFlipY = false; // default transform anchor: center setAnchorPoint(ccp(0.5f, 0.5f)); // zwoptex default values m_obOffsetPosition = CCPointZero; m_bHasChildren = false; // clean the Quad memset(&m_sQuad, 0, sizeof(m_sQuad)); // update texture (calls updateBlendFunc) setTexture(pTexture); setTextureRect(rect, rotated, rect.size); // by default use "Self Render". // if the sprite is added to a batchnode, then it will automatically switch to "batchnode Render" setBatchNode(NULL); return true; }