//----------------------------------------------------------- //----------------------------------------------------------- void SpriteComponent::Render(RenderSystem* inpRenderSystem, CameraComponent* inpCam, ShaderPass ineShaderPass) { if (ineShaderPass == ShaderPass::k_ambient) { if(IsTextureSizeCacheValid() == false) { OnTransformChanged(); SetTextureSizeCacheValid(); } if(m_vertexPositionsValid == false) { //We have been transformed so we need to recalculate our vertices UpdateVertexPositions(); m_vertexPositionsValid = true; } m_spriteData.pMaterial = mpMaterial; //Add us to the render systems dynamic batch //If we force a batch flush here then the previous sprites //will be rendered. inpRenderSystem->GetDynamicSpriteBatchPtr()->Render(m_spriteData); } }
inline void C2DRoundFrameRect::SetBorderWidth( int border_width ) { m_BorderWidth = border_width; CalculateLocalVertexPositions(); UpdateVertexPositions(); }
inline void C2DRoundRect::SetCornerRadius( int radius ) { m_CornerRadius = radius; CalculateLocalVertexPositions(); UpdateVertexPositions(); }
inline void C2DRoundRect::SetPosition( const Vector2& vMin, const Vector2& vMax ) { m_AABB.vMin = vMin; m_AABB.vMax = vMax; if( m_vecRectVertex.size() == 0 ) CalculateLocalVertexPositions(); UpdateVertexPositions(); }
inline void C2DRoundFrameRect::draw() { if( m_vecRectVertex.size() == 0 ) { CalculateLocalVertexPositions(); UpdateVertexPositions(); } // DIRECT3D9.GetDevice()->SetFVF( D3DFVF_TLVERTEX ); // DIRECT3D9.GetDevice()->DrawPrimitiveUP( D3DPT_TRIANGLESTRIP, GetNumVertices() - 2, &m_vecRectVertex[0], sizeof(TLVERTEX) ); Get2DPrimitiveRenderer().Render( &m_vecRectVertex[0], GetNumVertices(), PrimitiveType::TRIANGLE_STRIP ); }