MCPcopy Create free account
hub / github.com/carbonengine/trinity / GatherSprites

Method GatherSprites

trinity/Sprite2d/Tr2Sprite2d.cpp:54–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

52}
53
54void Tr2Sprite2d::GatherSprites( Tr2Sprite2dScene* renderer )
55{
56 if( !m_display || ( m_spriteEffect == TR2_SFX_NONE ) )
57 {
58 return;
59 }
60
61 if( m_isDirty )
62 {
63 if( !ValidateAndSetTextures( renderer ) )
64 {
65 return;
66 }
67
68 // Assume we're only rendering the regular sprite - these will be adjusted
69 // if there is a shadow or a glow
70 m_firstVertex = 4;
71 m_vertexCount = 4;
72
73 renderer->SetSpriteEffect( m_spriteEffect );
74
75 float displayWidth = m_displayWidth;
76 float displayHeight = m_displayHeight;
77 if( m_useSizeFromTexture )
78 {
79 displayWidth = (float)m_texturePrimary->GetSrcWidth();
80 if( displayWidth == 0.0f )
81 {
82 displayWidth = (float)m_texturePrimary->GetWidth();
83 }
84 displayHeight = (float)m_texturePrimary->GetSrcHeight();
85 if( displayHeight == 0.0f )
86 {
87 displayHeight = (float)m_texturePrimary->GetHeight();
88 }
89 }
90
91 if( m_shadowOffset.x != 0.0f || m_shadowOffset.y != 0.0f )
92 {
93 m_firstVertex = 0;
94 m_vertexCount += 4;
95 SetShadowRenderState( renderer );
96 Vector2 offsetTranslation = m_translation + m_shadowOffset;
97 renderer->PrepareSpriteVerts( &m_vertices[0], offsetTranslation, displayWidth, displayHeight, m_spriteEffect );
98 }
99
100 SetRegularRenderState( renderer );
101
102 if( m_spriteEffect == TR2_SFX_OUTLINE )
103 {
104 SetOutlineRenderState( renderer );
105 }
106
107 renderer->PrepareSpriteVerts( &m_vertices[4], m_translation, displayWidth, displayHeight, m_spriteEffect );
108
109 if( m_spriteEffect < TR2_SFX_TWO_TEXTURES && ( m_spriteEffect != TR2_SFX_BLUR ) && ( m_spriteEffect != TR2_SFX_GLOW ) && ( m_spriteEffect != TR2_SFX_OUTLINE ) )
110 {
111 for( int i = 4; i < 8; ++i )

Callers 1

RenderMethod · 0.45

Calls 7

SetSpriteEffectMethod · 0.80
GetSrcWidthMethod · 0.80
GetSrcHeightMethod · 0.80
PrepareSpriteVertsMethod · 0.80
RenderTriangleVertsMethod · 0.80
GetWidthMethod · 0.45
GetHeightMethod · 0.45

Tested by

no test coverage detected