Skip to content

Commit 2f214fd

Browse files
committed
make g_DrawTrans in GPU
1 parent 23f40a5 commit 2f214fd

File tree

9 files changed

+41
-18
lines changed

9 files changed

+41
-18
lines changed

Source/Entities/BunkerAssembly.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
#include "TerrainObject.h"
55
#include "BunkerAssemblyScheme.h"
66
#include "Deployment.h"
7+
#include "Draw.h"
8+
#include "FrameMan.h"
79

810
using namespace RTE;
911

@@ -391,7 +393,7 @@ void BunkerAssembly::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMo
391393
} else if (mode == g_DrawMaterial) {
392394
masked_blit(m_MaterialBitmap, pTargetBitmap, 0, 0, aDrawPos[i].GetFloorIntX(), aDrawPos[i].GetFloorIntY(), m_MaterialBitmap->w, m_MaterialBitmap->h);
393395
} else if (mode == g_DrawTrans) {
394-
draw_trans_sprite(pTargetBitmap, m_pPresentationBitmap, aDrawPos[i].GetFloorIntX(), aDrawPos[i].GetFloorIntY());
396+
DrawTexture(m_pPresentationBitmap, aDrawPos[i].GetFloorIntX(), aDrawPos[i].GetFloorIntY(), {255, 255, 255, g_FrameMan.GetCurrentAlpha()});
395397
}
396398
}
397399
}

Source/Entities/BunkerAssemblyScheme.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "BunkerAssemblyScheme.h"
22
#include "PresetMan.h"
33
#include "FrameMan.h"
4+
#include "Draw.h"
45

56
#include "GUI.h"
67
#include "AllegroBitmap.h"
@@ -295,6 +296,6 @@ void BunkerAssemblyScheme::Draw(BITMAP* pTargetBitmap, const Vector& targetPos,
295296
else if (mode == g_DrawMaterial)
296297
masked_blit(m_pPresentationBitmap, pTargetBitmap, 0, 0, aDrawPos[i].GetFloorIntX(), aDrawPos[i].GetFloorIntY(), m_pPresentationBitmap->w, m_pPresentationBitmap->h);
297298
else if (mode == g_DrawTrans)
298-
draw_trans_sprite(pTargetBitmap, m_pPresentationBitmap, aDrawPos[i].GetFloorIntX(), aDrawPos[i].GetFloorIntY());
299+
DrawTexture(m_pPresentationBitmap, aDrawPos[i].GetFloorIntX(), aDrawPos[i].GetFloorIntY(), {255, 255, 255, g_FrameMan.GetCurrentAlpha()});
299300
}
300301
}

Source/Entities/Deployment.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
#include "ACraft.h"
99
#include "ActivityMan.h"
1010
#include "DataModule.h"
11+
#include "Draw.h"
12+
#include "FrameMan.h"
1113

1214
using namespace RTE;
1315

@@ -550,9 +552,10 @@ void Deployment::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode m
550552
// Draw the spawn radius circle too
551553
circle(pTargetBitmap, aDrawPos[i].GetFloorIntX() + (pBitmap->w / 2), aDrawPos[i].GetFloorIntY() + (pBitmap->h / 2), m_SpawnRadius, c_GUIColorGray);
552554
} else if (mode == g_DrawTrans) {
555+
DrawTextureV(pBitmap, aDrawPos[i], {255, 255, 255, g_FrameMan.GetCurrentAlpha()});
553556
draw_trans_sprite(pTargetBitmap, pBitmap, aDrawPos[i].GetFloorIntX(), aDrawPos[i].GetFloorIntY());
554557
// Draw the spawn radius circle too
555-
circle(pTargetBitmap, aDrawPos[i].GetFloorIntX() + (pBitmap->w / 2), aDrawPos[i].GetFloorIntY() + (pBitmap->h / 2), m_SpawnRadius, c_GUIColorGray);
558+
DrawCircleLines(aDrawPos[i].GetFloorIntX() + (pBitmap->w / 2), aDrawPos[i].GetFloorIntY() + (pBitmap->h / 2), m_SpawnRadius, {static_cast<unsigned char>(c_GUIColorGray), 0, 0, g_FrameMan.GetCurrentAlpha()});
556559
}
557560
}
558561
}
@@ -608,7 +611,7 @@ void Deployment::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode m
608611
if (mode == g_DrawColor) {
609612
masked_blit(pBitmap, pTargetBitmap, 0, 0, aDrawPos[i].GetFloorIntX(), aDrawPos[i].GetFloorIntY(), pBitmap->w, pBitmap->h);
610613
} else if (mode == g_DrawTrans) {
611-
draw_trans_sprite(pTargetBitmap, pBitmap, aDrawPos[i].GetFloorIntX(), aDrawPos[i].GetFloorIntY());
614+
DrawTexture(pBitmap, aDrawPos[i].GetFloorIntX(), aDrawPos[i].GetFloorIntY(), {255, 255, 255, g_FrameMan.GetCurrentAlpha()});
612615
}
613616
}
614617
}

Source/Entities/MOSParticle.cpp

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
#include "Atom.h"
44
#include "PostProcessMan.h"
5-
5+
#include "Draw.h"
6+
#include "FrameMan.h"
67
#include <array>
78

89
using namespace RTE;
@@ -201,11 +202,13 @@ void MOSParticle::Draw(BITMAP* targetBitmap, const Vector& targetPos, DrawMode m
201202
draw_character_ex(targetBitmap, m_aSprite[m_Frame], spriteX, spriteY, g_WhiteColor, -1);
202203
break;
203204
case g_DrawTrans:
204-
draw_trans_sprite(targetBitmap, m_aSprite[m_Frame], spriteX, spriteY);
205+
DrawTexture(m_aSprite[m_Frame], spriteX, spriteY, {255, 255, 255, g_FrameMan.GetCurrentAlpha()});
206+
// draw_trans_sprite(targetBitmap, m_aSprite[m_Frame], spriteX, spriteY);
205207
break;
206208
case g_DrawAlpha:
207-
set_alpha_blender();
208-
draw_trans_sprite(targetBitmap, m_aSprite[m_Frame], spriteX, spriteY);
209+
DrawTexture(m_aSprite[m_Frame], spriteX, spriteY, {255, 255, 255, 255});
210+
// set_alpha_blender();
211+
// draw_trans_sprite(targetBitmap, m_aSprite[m_Frame], spriteX, spriteY);
209212
break;
210213
case g_DrawMOID:
211214
break;

Source/Entities/MOSRotating.cpp

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
#include "HDFirearm.h"
1313
#include "SoundContainer.h"
1414
#include "PostProcessMan.h"
15+
#include "FrameMan.h"
16+
#include "Draw.h"
1517

1618
#include "RTEError.h"
1719

@@ -1679,8 +1681,12 @@ void MOSRotating::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode
16791681
for (int i = 0; i < passes; ++i) {
16801682
int spriteX = aDrawPos[i].GetFloorIntX() - (pTempBitmap->w / 2);
16811683
int spriteY = aDrawPos[i].GetFloorIntY() - (pTempBitmap->h / 2);
1684+
DrawTexturePro(m_aSprite[m_Frame],
1685+
{0.0f, 0.0f, -1.0f * m_aSprite[m_Frame]->w, static_cast<float>(m_aSprite[m_Frame]->h)},
1686+
{aDrawPos[i].m_X, aDrawPos[i].m_Y, static_cast<float>(m_aSprite[m_Frame]->w), static_cast<float>(m_aSprite[m_Frame]->h)},
1687+
{m_aSprite[m_Frame]->w + m_SpriteOffset.m_X , -m_SpriteOffset.m_Y}, m_Rotation.GetRadAngle(), {255, 255, 255, g_FrameMan.GetCurrentAlpha()});
16821688
g_SceneMan.RegisterDrawing(pTargetBitmap, g_NoMOID, spriteX, spriteY, spriteX + pTempBitmap->w, spriteY + pTempBitmap->h);
1683-
draw_trans_sprite(pTargetBitmap, pTempBitmap, spriteX, spriteY);
1689+
//draw_trans_sprite(pTargetBitmap, pTempBitmap, spriteX, spriteY);
16841690
}
16851691
} else {
16861692
// Do the passes loop in here so the flipping operation doesn't get done multiple times
@@ -1708,10 +1714,14 @@ void MOSRotating::Draw(BITMAP* pTargetBitmap, const Vector& targetPos, DrawMode
17081714
// Draw the now rotated object's temporary bitmap onto the final drawing bitmap with transperency
17091715
// Do the passes loop in here so the intermediate drawing doesn't get done multiple times
17101716
for (int i = 0; i < passes; ++i) {
1717+
DrawTexturePro(m_aSprite[m_Frame],
1718+
{0.0f, 0.0f, static_cast<float>(m_aSprite[m_Frame]->w), static_cast<float>(m_aSprite[m_Frame]->h)},
1719+
{aDrawPos[i].m_X, aDrawPos[i].m_Y, static_cast<float>(m_aSprite[m_Frame]->w), static_cast<float>(m_aSprite[m_Frame]->h)},
1720+
-m_SpriteOffset, m_Rotation.GetRadAngle(), {255, 255, 255, g_FrameMan.GetCurrentAlpha()});
17111721
int spriteX = aDrawPos[i].GetFloorIntX() - (pTempBitmap->w / 2);
17121722
int spriteY = aDrawPos[i].GetFloorIntY() - (pTempBitmap->h / 2);
17131723
g_SceneMan.RegisterDrawing(pTargetBitmap, g_NoMOID, spriteX, spriteY, spriteX + pTempBitmap->w, spriteY + pTempBitmap->h);
1714-
draw_trans_sprite(pTargetBitmap, pTempBitmap, spriteX, spriteY);
1724+
// draw_trans_sprite(pTargetBitmap, pTempBitmap, spriteX, spriteY);
17151725
}
17161726
} else {
17171727
for (int i = 0; i < passes; ++i) {

Source/Entities/MOSprite.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include "AEmitter.h"
44
#include "PresetMan.h"
55
#include "SceneMan.h"
6+
#include "FrameMan.h"
7+
#include "Draw.h"
68

79
using namespace RTE;
810

@@ -455,7 +457,7 @@ void MOSprite::Draw(BITMAP* pTargetBitmap,
455457
draw_character_ex(pTargetBitmap, m_aSprite[m_Frame], spriteX, spriteY, g_WhiteColor, -1);
456458
break;
457459
case g_DrawTrans:
458-
draw_trans_sprite(pTargetBitmap, m_aSprite[m_Frame], spriteX, spriteY);
460+
DrawTexture(m_aSprite[m_Frame], spriteX, spriteY, {255, 255, 255, g_FrameMan.GetCurrentAlpha()});
459461
break;
460462
case g_DrawAlpha:
461463
set_alpha_blender();

Source/Entities/TerrainObject.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#include "TerrainObject.h"
22
#include "SLTerrain.h"
33
#include "SceneMan.h"
4+
#include "Draw.h"
5+
#include "FrameMan.h"
46

57
using namespace RTE;
68

@@ -220,10 +222,10 @@ void TerrainObject::Draw(BITMAP* targetBitmap, const Vector& targetPos, DrawMode
220222
break;
221223
case DrawMode::g_DrawTrans:
222224
if (HasFGColorBitmap()) {
223-
draw_trans_sprite(targetBitmap, m_FGColorBitmap, drawPos.at(i).GetFloorIntX(), drawPos.at(i).GetFloorIntY());
225+
DrawTexture(m_FGColorBitmap, drawPos.at(i).GetFloorIntX(), drawPos.at(i).GetFloorIntY(), {255, 255, 255, g_FrameMan.GetCurrentAlpha()});
224226
}
225227
if (HasBGColorBitmap()) {
226-
draw_trans_sprite(targetBitmap, m_BGColorBitmap, drawPos.at(i).GetFloorIntX(), drawPos.at(i).GetFloorIntY());
228+
DrawTexture(m_BGColorBitmap, drawPos.at(i).GetFloorIntX(), drawPos.at(i).GetFloorIntY(), {255, 255, 255, g_FrameMan.GetCurrentAlpha()});
227229
}
228230
break;
229231
default:

Source/Renderer/Draw.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
#include "Draw.h"
22
#include "GLResourceMan.h"
33

4-
using namespace RTE;
5-
4+
namespace RTE {
65
void DrawTexture(BITMAP* bitmap, int posX, int posY, RLColor tint) {
76
DrawTexture(g_GLResourceMan.GetStaticTextureFromBitmap(bitmap), posX, posY, tint);
87
}
@@ -19,4 +18,5 @@ using namespace RTE;
1918
}
2019
void DrawTexturePro(BITMAP* bitmap, Rectangle source, Rectangle dest, Vector2 origin, float rotation, RLColor tint) {
2120
DrawTexturePro(g_GLResourceMan.GetStaticTextureFromBitmap(bitmap), source, dest, origin, rotation, tint);
22-
}
21+
}
22+
}

Source/Renderer/raylib/rtextures.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4511,8 +4511,8 @@ void DrawTexturePro(Texture2D texture, Rectangle source, Rectangle dest, Vector2
45114511
}
45124512
else
45134513
{
4514-
float sinRotation = sinf(rotation);
4515-
float cosRotation = cosf(rotation);
4514+
float sinRotation = sinf(-rotation);
4515+
float cosRotation = cosf(-rotation);
45164516
float x = dest.x;
45174517
float y = dest.y;
45184518
float dx = -origin.x;

0 commit comments

Comments
 (0)