MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / PrepareStreamers

Method PrepareStreamers

TombEngine/Renderer/RendererDrawEffect.cpp:133–206  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

131 }
132
133 void Renderer::PrepareStreamers(RenderView& view)
134 {
135 for (const auto& [itemNumber, group] : StreamerEffect.GetGroups())
136 {
137 for (const auto& [tag, pool] : group.GetPools())
138 {
139 for (const auto& streamer : pool)
140 {
141 for (int i = 0; i < streamer.GetSegments().size(); i++)
142 {
143 const auto& segment = streamer.GetSegments()[i];
144 const auto& prevSegment = streamer.GetSegments()[std::max(i - 1, 0)];
145
146 if (segment.Life <= 0.0f)
147 continue;
148
149 auto vertex0 = Vector3::Lerp(segment.PrevVertices[0], segment.Vertices[0], GetInterpolationFactor());
150 auto vertex1 = Vector3::Lerp(segment.PrevVertices[1], segment.Vertices[1], GetInterpolationFactor());
151 auto prevVertex0 = Vector3::Lerp(prevSegment.PrevVertices[0], prevSegment.Vertices[0], GetInterpolationFactor());
152 auto prevVertex1 = Vector3::Lerp(prevSegment.PrevVertices[1], prevSegment.Vertices[1], GetInterpolationFactor());
153
154 auto color = Vector4::Lerp(segment.PrevColor, segment.Color, GetInterpolationFactor());
155 auto prevColor = Vector4::Lerp(prevSegment.PrevColor, prevSegment.Color, GetInterpolationFactor());
156
157 switch (streamer.GetFeatherMode())
158 {
159 default:
160 case StreamerFeatherMode::None:
161 AddColoredQuad(
162 vertex0, vertex1,
163 prevVertex1,
164 prevVertex0,
165 color,
166 color,
167 prevColor,
168 prevColor,
169 streamer.GetBlendMode(), view);
170 break;
171
172 case StreamerFeatherMode::Center:
173 {
174 auto center = (vertex0 + vertex1) / 2;
175 auto prevCenter = (prevVertex0 + prevVertex1) / 2;
176
177 AddColoredQuad(
178 center, vertex1, prevVertex1, prevCenter,
179 color, Vector4::Zero, Vector4::Zero, prevColor,
180 streamer.GetBlendMode(), view);
181 AddColoredQuad(
182 vertex0, center, prevCenter, prevVertex0,
183 Vector4::Zero, color, prevColor, Vector4::Zero,
184 streamer.GetBlendMode(), view);
185 }
186 break;
187
188 case StreamerFeatherMode::Left:
189 AddColoredQuad(
190 vertex0, vertex1, prevVertex1, prevVertex0,

Callers

nothing calls this directly

Calls 4

LerpFunction · 0.85
GetFeatherModeMethod · 0.80
GetBlendModeMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected