Skip to content

Commit 26bb881

Browse files
committed
Replace COLOR32 macro with an inline function
1 parent 104e028 commit 26bb881

File tree

3 files changed

+23
-16
lines changed

3 files changed

+23
-16
lines changed

src/Core/Draw.h

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,26 @@ namespace Vortex {
88
// ================================================================================================
99
// Color utilities.
1010

11-
#define COLOR32_RMASK 0xFF
12-
#define COLOR32_GMASK 0xFF00
13-
#define COLOR32_BMASK 0xFF0000
14-
#define COLOR32_AMASK 0xFF000000
15-
16-
#define COLOR32_RSHIFT 0
17-
#define COLOR32_GSHIFT 8
18-
#define COLOR32_BSHIFT 16
19-
#define COLOR32_ASHIFT 24
20-
21-
// Macro to create a color32 from 8-bit RGBA values.
22-
#define COLOR32(r, g, b, a)\
23-
(color32)(((a)<<COLOR32_ASHIFT)|((b)<<COLOR32_BSHIFT)|((g)<<COLOR32_GSHIFT)|((r)<<COLOR32_RSHIFT))
11+
constexpr uint32_t kColor32_RedMask = 0xFF;
12+
constexpr uint32_t kColor32_GreenMask = 0xFF00;
13+
constexpr uint32_t kColor32_BlueMask = 0xFF0000;
14+
constexpr uint32_t kColor32_AlphaMask = 0xFF000000;
15+
16+
constexpr int kColor32_RedShift = 0;
17+
constexpr int kColor32_GreenShift = 8;
18+
constexpr int kColor32_BlueShift = 16;
19+
constexpr int kColor32_AlphaShift = 24;
20+
21+
// Inline function to create a color32 from 8-bit RGBA values.
22+
inline color32 COLOR32(int r, int g, int b, int a)
23+
{
24+
return static_cast<color32>(
25+
((a << kColor32_AlphaShift) & kColor32_AlphaMask) |
26+
((b << kColor32_BlueShift) & kColor32_BlueMask) |
27+
((g << kColor32_GreenShift) & kColor32_GreenMask) |
28+
((r << kColor32_RedShift) & kColor32_RedMask)
29+
);
30+
}
2431

2532
inline color32 Color32(int r, int g, int b, int a = 255)
2633
{
@@ -34,7 +41,7 @@ inline color32 Color32(int lum, int a = 255)
3441

3542
inline color32 Color32a(color32 rgb, int a)
3643
{
37-
return (rgb & ~COLOR32_AMASK) | (a << COLOR32_ASHIFT);
44+
return (rgb & ~kColor32_AlphaMask) | ((a << kColor32_AlphaShift) & kColor32_AlphaMask);
3845
}
3946

4047
// Common colors (float RGBA).

src/Core/TextDraw.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ static void DrawCurrentGlyphs()
151151
{
152152
if(Shader::isSupported())
153153
{
154-
if(RD->shadowColor & COLOR32_AMASK)
154+
if(RD->shadowColor & kColor32_AlphaMask)
155155
{
156156
Shader::uniform4f(RD->shader->colorLoc, ToColorf(RD->shadowColor));
157157
for(int i = 0; i < RD->glyphCount * 8; ++i) --RD->vpos[i];

src/Core/TextLayout.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ static void ReadMarkupColor(color32& out, const uchar* param, int len, color32 b
138138
out = COLOR32(channels[0], channels[1], channels[2], channels[3]);
139139
break;
140140
case 1:
141-
out = COLOR32(channels[0], channels[1], channels[2], 0) | (base & COLOR32_AMASK);
141+
out = COLOR32(channels[0], channels[1], channels[2], 0) | (base & kColor32_AlphaMask);
142142
break;
143143
case 0:
144144
out = base;

0 commit comments

Comments
 (0)