@@ -177,29 +177,29 @@ namespace RTE {
177
177
178
178
// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
179
179
180
- void PostProcessMan::AdjustEffectsPosToPlayerScreen (int playerScreen, BITMAP *targetBitmap, const Vector &targetBitmapOffset, std::list<PostEffect> &screenRelativeEffectsList, std::list<Box> &screenRelativeGlowBoxesList) const {
180
+ void PostProcessMan::AdjustEffectsPosToPlayerScreen (int playerScreen, BITMAP *targetBitmap, const Vector &targetBitmapOffset, std::list<PostEffect> &screenRelativeEffectsList, std::list<Box> &screenRelativeGlowBoxesList) {
181
181
int screenOcclusionOffsetX = g_CameraMan.GetScreenOcclusion (playerScreen).GetFloorIntX ();
182
182
int screenOcclusionOffsetY = g_CameraMan.GetScreenOcclusion (playerScreen).GetFloorIntY ();
183
183
int occludedOffsetX = targetBitmap->w + screenOcclusionOffsetX;
184
184
int occludedOffsetY = targetBitmap->h + screenOcclusionOffsetY;
185
185
186
186
// Copy post effects received by client if in network mode
187
187
if (g_FrameMan.GetDrawNetworkBackBuffer ()) {
188
- g_PostProcessMan. GetNetworkPostEffectsList (0 , screenRelativeEffectsList);
188
+ GetNetworkPostEffectsList (0 , screenRelativeEffectsList);
189
189
}
190
190
191
191
// Adjust for the player screen's position on the final buffer
192
192
for (const PostEffect &postEffect : screenRelativeEffectsList) {
193
193
// Make sure we won't be adding any effects to a part of the screen that is occluded by menus and such
194
194
if (postEffect.m_Pos .GetFloorIntX () > screenOcclusionOffsetX && postEffect.m_Pos .GetFloorIntY () > screenOcclusionOffsetY && postEffect.m_Pos .GetFloorIntX () < occludedOffsetX && postEffect.m_Pos .GetFloorIntY () < occludedOffsetY) {
195
- g_PostProcessMan. GetPostScreenEffectsList ()-> push_back ( PostEffect ( postEffect.m_Pos + targetBitmapOffset, postEffect.m_Bitmap , postEffect.m_BitmapHash , postEffect.m_Strength , postEffect.m_Angle ) );
195
+ m_PostSceneEffects. emplace_back ( postEffect.m_Pos + targetBitmapOffset, postEffect.m_Bitmap , postEffect.m_BitmapHash , postEffect.m_Strength , postEffect.m_Angle );
196
196
}
197
197
}
198
198
// Adjust glow areas for the player screen's position on the final buffer
199
199
for (const Box &glowBox : screenRelativeGlowBoxesList) {
200
- g_PostProcessMan. GetPostScreenGlowBoxesList ()-> push_back (glowBox);
200
+ m_PostScreenGlowBoxes. push_back (glowBox);
201
201
// Adjust each added glow area for the player screen's position on the final buffer
202
- g_PostProcessMan. GetPostScreenGlowBoxesList ()-> back ().m_Corner += targetBitmapOffset;
202
+ m_PostScreenGlowBoxes. back ().m_Corner += targetBitmapOffset;
203
203
}
204
204
}
205
205
@@ -208,9 +208,6 @@ namespace RTE {
208
208
void PostProcessMan::RegisterPostEffect (const Vector &effectPos, BITMAP *effect, size_t hash, int strength, float angle) {
209
209
// These effects get applied when there's a drawn frame that followed one or more sim updates.
210
210
// They are not only registered on drawn sim updates; flashes and stuff could be missed otherwise if they occur on undrawn sim updates.
211
- if (effect && !effect->extra ) {
212
- LazyInitBitmap (effect);
213
- }
214
211
215
212
if (effect && g_TimerMan.SimUpdatesSinceDrawn () >= 0 ) {
216
213
m_PostSceneEffects.push_back (PostEffect (effectPos, effect, hash, strength, angle));
@@ -516,7 +513,7 @@ namespace RTE {
516
513
517
514
// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
518
515
519
- void PostProcessMan::DrawPostScreenEffects () const {
516
+ void PostProcessMan::DrawPostScreenEffects () {
520
517
BITMAP *effectBitmap = nullptr ;
521
518
float effectPosX = 0 ;
522
519
float effectPosY = 0 ;
@@ -530,6 +527,9 @@ namespace RTE {
530
527
531
528
for (const PostEffect &postEffect : m_PostScreenEffects) {
532
529
if (postEffect.m_Bitmap ) {
530
+ if (!postEffect.m_Bitmap ->extra ) {
531
+ LazyInitBitmap (postEffect.m_Bitmap );
532
+ }
533
533
effectBitmap = postEffect.m_Bitmap ;
534
534
effectStrength = postEffect.m_Strength / 255 .f ;
535
535
effectPosX = postEffect.m_Pos .m_X ;
0 commit comments