//-----------------------------------------------------------
 //-----------------------------------------------------------
 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);
     }
 }
Beispiel #2
0
inline void C2DRoundFrameRect::SetBorderWidth( int border_width )
{
	m_BorderWidth = border_width;

	CalculateLocalVertexPositions();

	UpdateVertexPositions();
}
Beispiel #3
0
inline void C2DRoundRect::SetCornerRadius( int radius )
{
	m_CornerRadius = radius;

	CalculateLocalVertexPositions();

	UpdateVertexPositions();
}
Beispiel #4
0
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();
}
Beispiel #5
0
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 );
}