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

Method GatherSprites

trinity/Sprite2d/Tr2Sprite2dLineTrace.cpp:39–203  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37}
38
39void Tr2Sprite2dLineTrace::GatherSprites( Tr2Sprite2dScene* renderer )
40{
41 CCP_STATS_ZONE( __FUNCTION__ );
42
43 if( !m_display || m_vertices.empty() || ( m_end <= m_start ) || ( m_spriteEffect == TR2_SFX_NONE ) )
44 {
45 if( !m_renderVertices.empty() )
46 {
47 ClearVertices();
48 }
49 return;
50 }
51
52 if( m_isDirty )
53 {
54 ClearVertices();
55
56 if( m_vertices.size() < 2 )
57 {
58 return;
59 }
60
61 if( !ValidateAndSetTextures( renderer ) )
62 {
63 return;
64 }
65
66 renderer->SetSpriteEffect( m_spriteEffect );
67 renderer->SetTileMode( S2D_TS_TILE_X | S2D_TS_TILE_Y );
68
69 SetRegularRenderState( renderer );
70
71 m_renderVertices.reserve( GetEstimatedVertexCount() );
72
73 DrawCall dc;
74 dc.indexCount = 0;
75 dc.indexOffset = 0;
76 dc.vertexCount = 0;
77 dc.vertexOffset = 0;
78 m_drawCalls.push_back( dc );
79
80 m_length = CalcLength();
81 float lastRelativeLength = 0.0f;
82 float length = 0.0f;
83
84 bool hasReachedStart = ( m_start == 0.0f );
85 bool hasReachedEnd = false;
86
87 Vector2 fromPos = m_vertices[0]->m_position;
88 Color fromColor = m_vertices[0]->m_color;
89
90 float prevCapAngle = 0.0f;
91
92 float end = m_end;
93 if( end > m_start + 1.0f )
94 {
95 // Prevent looping around multiple times
96 end = m_start + 1.0f;

Callers

nothing calls this directly

Calls 10

LengthFunction · 0.85
emptyMethod · 0.80
sizeMethod · 0.80
SetSpriteEffectMethod · 0.80
SetTileModeMethod · 0.80
PushTranslationMethod · 0.80
RenderTriangleVertsMethod · 0.80
PopTranslationMethod · 0.80
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected