void DivNode::render(GLContext* pContext, const glm::mat4& transform) { if (getCrop() && getSize() != glm::vec2(0,0)) { getCanvas()->pushClipRect(pContext, transform, m_ClipVA); } for (unsigned i = 0; i < getNumChildren(); i++) { getChild(i)->maybeRender(pContext, transform); } if (getCrop() && getSize() != glm::vec2(0,0)) { getCanvas()->popClipRect(pContext, transform, m_ClipVA); } }
void DivNode::render() { glm::vec2 viewport = getSize(); m_pClipVertexes->reset(); m_pClipVertexes->appendPos(glm::vec2(0,0), glm::vec2(0,0), Pixel32(0,0,0,0)); m_pClipVertexes->appendPos(glm::vec2(0,viewport.y), glm::vec2(0,0), Pixel32(0,0,0,0)); m_pClipVertexes->appendPos(glm::vec2(viewport.x,0), glm::vec2(0,0), Pixel32(0,0,0,0)); m_pClipVertexes->appendPos(viewport, glm::vec2(0,0), Pixel32(0,0,0,0)); m_pClipVertexes->appendQuadIndexes(0, 1, 2, 3); if (getCrop()) { getCanvas()->pushClipRect(getTransform(), m_pClipVertexes); } for (unsigned i = 0; i < getNumChildren(); i++) { getChild(i)->maybeRender(); } if (getCrop()) { glLoadMatrixf(glm::value_ptr(getTransform())); getCanvas()->popClipRect(getTransform(), m_pClipVertexes); } }
void DivNode::preRender(const VertexArrayPtr& pVA, bool bIsParentActive, float parentEffectiveOpacity) { Node::preRender(pVA, bIsParentActive, parentEffectiveOpacity); if (getCrop() && getSize() != glm::vec2(0,0)) { pVA->startSubVA(m_ClipVA); glm::vec2 viewport = getSize(); m_ClipVA.appendPos(glm::vec2(0,0), glm::vec2(0,0), Pixel32(0,0,0,0)); m_ClipVA.appendPos(glm::vec2(0,viewport.y), glm::vec2(0,0), Pixel32(0,0,0,0)); m_ClipVA.appendPos(glm::vec2(viewport.x,0), glm::vec2(0,0), Pixel32(0,0,0,0)); m_ClipVA.appendPos(viewport, glm::vec2(0,0), Pixel32(0,0,0,0)); m_ClipVA.appendQuadIndexes(0, 1, 2, 3); } for (unsigned i = 0; i < getNumChildren(); i++) { getChild(i)->preRender(pVA, bIsParentActive, getEffectiveOpacity()); } }
SDL_Surface * BaseObject::draw(SDL_Surface * original) { draw_image(xpos - originXoffset, ypos - originYoffset, sprite_sheet, original, getCrop(sprite_anim, sprite_frame)); return display_image; }