From f98dc74aa0e4557509cadedc78c6700873920b97 Mon Sep 17 00:00:00 2001 From: Eidolon Date: Sun, 15 Mar 2026 15:38:51 -0500 Subject: [PATCH] Fix bitflags enum EPolyFlags for C++ --- src/hardware/hw_defs.h | 58 ++++++++++++++++++++---------------------- 1 file changed, 28 insertions(+), 30 deletions(-) diff --git a/src/hardware/hw_defs.h b/src/hardware/hw_defs.h index 1ce225f19..3f492f9a2 100644 --- a/src/hardware/hw_defs.h +++ b/src/hardware/hw_defs.h @@ -214,38 +214,36 @@ typedef struct // Flags describing how to render a polygon // You pass a combination of these flags to DrawPolygon() -enum EPolyFlags -{ - // Mutually exclusive blend flags - PF_Masked = 0x00000001, // Poly is alpha scaled and 0 alpha pixels are discarded (holes in texture) - PF_Translucent = 0x00000002, // Poly is transparent, alpha = level of transparency - PF_Environment = 0x00000004, // Poly should be drawn environment mapped. (Hurdler: used for text drawing) - PF_Additive = 0x00000008, // Source blending factor is additive. - PF_Subtractive = 0x00000010, // Subtractive color blending - PF_ReverseSubtract = 0x00000020, // Reverse subtract, used in wall splats (decals) - PF_Multiplicative = 0x00000040, // Multiplicative color blending - PF_Invert = 0x00000100, // Polygon inverts the colours of what it's in front of - PF_Fog = 0x20000000, // Fog blocks - PF_NoAlphaTest = 0x40000000, // Disables alpha testing - PF_Blending = (PF_Masked|PF_Translucent|PF_Environment|PF_Additive|PF_Subtractive|PF_ReverseSubtract|PF_Multiplicative|PF_Invert|PF_Fog) & ~PF_NoAlphaTest, - PF_EnvironmentTrans = (PF_Translucent|PF_Additive|PF_Subtractive|PF_ReverseSubtract|PF_Multiplicative|PF_Environment), +typedef int EPolyFlags; +// Mutually exclusive blend flags +#define PF_Masked (0x00000001) // Poly is alpha scaled and 0 alpha pixels are discarded (holes in texture) +#define PF_Translucent (0x00000002) // Poly is transparent, alpha = level of transparency +#define PF_Environment (0x00000004) // Poly should be drawn environment mapped. (Hurdler: used for text drawing) +#define PF_Additive (0x00000008) // Source blending factor is additive. +#define PF_Subtractive (0x00000010) // Subtractive color blending +#define PF_ReverseSubtract (0x00000020) // Reverse subtract, used in wall splats (decals) +#define PF_Multiplicative (0x00000040) // Multiplicative color blending +#define PF_Invert (0x00000100) // Polygon inverts the colours of what it's in front of +#define PF_Fog (0x20000000) // Fog blocks +#define PF_NoAlphaTest (0x40000000) // Disables alpha testing +#define PF_Blending (((PF_Masked)|(PF_Translucent)|(PF_Environment)|(PF_Additive)|(PF_Subtractive)|(PF_ReverseSubtract)|(PF_Multiplicative)|(PF_Invert)|(PF_Fog)) & ~(PF_NoAlphaTest)) +#define PF_EnvironmentTrans (((PF_Translucent)|(PF_Additive)|(PF_Subtractive)|(PF_ReverseSubtract)|(PF_Multiplicative)|(PF_Environment))) - // other flag bits - PF_Occlude = 0x00000100, // Updates the depth buffer - PF_NoDepthTest = 0x00000200, // Disables the depth test mode - PF_Invisible = 0x00000400, // Disables write to color buffer - PF_Decal = 0x00000800, // Enables polygon offset - PF_Modulated = 0x00001000, // Modulation (multiply output with constant RGBA) +// other flag bits +#define PF_Occlude (0x00000100) // Updates the depth buffer +#define PF_NoDepthTest (0x00000200) // Disables the depth test mode +#define PF_Invisible (0x00000400) // Disables write to color buffer +#define PF_Decal (0x00000800) // Enables polygon offset +#define PF_Modulated (0x00001000) // Modulation (multiply output with constant RGBA) // When set, pass the color constant into the FSurfaceInfo -> PolyColor - PF_NoTexture = 0x00002000, // Disables texturing - PF_Corona = 0x00004000, // Tells the renderer we are drawing a corona - PF_ColorMapped = 0x00008000, // Surface has "tint" and "fade" colors, which are sent as uniforms to a shader. - PF_RemoveYWrap = 0x00010000, // Forces clamp texture on Y - PF_ForceWrapX = 0x00020000, // Forces repeat texture on X - PF_ForceWrapY = 0x00040000, // Forces repeat texture on Y - PF_Ripple = 0x00100000, // Water ripple effect. The current backend doesn't use it for anything. - PF_WireFrame = 0x00200000, // Draws vertices as lines instead of triangles -}; +#define PF_NoTexture (0x00002000) // Disables texturing +#define PF_Corona (0x00004000) // Tells the renderer we are drawing a corona +#define PF_ColorMapped (0x00008000) // Surface has "tint" and "fade" colors, which are sent as uniforms to a shader. +#define PF_RemoveYWrap (0x00010000) // Forces clamp texture on Y +#define PF_ForceWrapX (0x00020000) // Forces repeat texture on X +#define PF_ForceWrapY (0x00040000) // Forces repeat texture on Y +#define PF_Ripple (0x00100000) // Water ripple effect. The current backend doesn't use it for anything. +#define PF_WireFrame (0x00200000) // Draws vertices as lines instead of triangles enum ESurfFlags