void SubSkin::doRender() { if (!mVisible || mEmptyView) return; VertexQuad* quad = reinterpret_cast<VertexQuad*>(mRenderItem->getCurrentVertexBuffer()); const RenderTargetInfo& info = mRenderItem->getRenderTarget()->getInfo(); float vertex_z = mNode->getNodeDepth(); float vertex_left = mCurrentCoord.left + mCroppedParent->getAbsoluteLeft(); float vertex_right = vertex_left + mCurrentCoord.width; float vertex_top = info.pixHeight - (float)(mCurrentCoord.top + mCroppedParent->getAbsoluteTop()); float vertex_bottom = vertex_top - mCurrentCoord.height; quad->set( vertex_left, vertex_top, vertex_right, vertex_bottom, vertex_z, mCurrentTexture.left, mCurrentTexture.top, mCurrentTexture.right, mCurrentTexture.bottom, mCurrentColour ); mRenderItem->setLastVertexCount(VertexQuad::VertexCount); }
void RotatingSkin::doRender() { if ((!mVisible) || mEmptyView) return; VertexQuad* quad = (VertexQuad*)mRenderItem->getCurrentVertextBuffer(); const RenderTargetInfo& info = mRenderItem->getRenderTarget()->getInfo(); float vertex_z = info.maximumDepth; float vertex_left_base = ((info.pixScaleX * (float)(mCurrentCoord.left + mCroppedParent->getAbsoluteLeft() + mCenterPos.left) + info.hOffset) * 2) - 1; float vertex_top_base = -(((info.pixScaleY * (float)(mCurrentCoord.top + mCroppedParent->getAbsoluteTop() + mCenterPos.top) + info.vOffset) * 2) - 1); // FIXME: do it only when size changes recalculateAngles(); quad->set( vertex_left_base + cos(-mAngle + mBaseAngles[0]) * mBaseDistances[0] * info.pixScaleX * -2, vertex_top_base + sin(-mAngle + mBaseAngles[0]) * mBaseDistances[0] * info.pixScaleY * -2, vertex_left_base + cos(-mAngle + mBaseAngles[3]) * mBaseDistances[3] * info.pixScaleX * -2, vertex_top_base + sin(-mAngle + mBaseAngles[3]) * mBaseDistances[3] * info.pixScaleY * -2, vertex_left_base + cos(-mAngle + mBaseAngles[2]) * mBaseDistances[2] * info.pixScaleX * -2, vertex_top_base + sin(-mAngle + mBaseAngles[2]) * mBaseDistances[2] * info.pixScaleY * -2, vertex_left_base + cos(-mAngle + mBaseAngles[1]) * mBaseDistances[1] * info.pixScaleX * -2, vertex_top_base + sin(-mAngle + mBaseAngles[1]) * mBaseDistances[1] * info.pixScaleY * -2, vertex_z, mCurrentTexture.left, mCurrentTexture.top, mCurrentTexture.right, mCurrentTexture.bottom, mCurrentColour ); mRenderItem->setLastVertexCount(VertexQuad::VertexCount); }