Skip to content

Commit 4c91c8a

Browse files
committed
Removing most double decs from Metal shader
Moving to using hsGMatStateEnums.h
1 parent 91ad748 commit 4c91c8a

File tree

1 file changed

+5
-80
lines changed

1 file changed

+5
-80
lines changed

Sources/Plasma/FeatureLib/pfMetalPipeline/ShaderSrc/FixedPipelineShaders.metal

+5-80
Original file line numberDiff line numberDiff line change
@@ -52,86 +52,11 @@ using namespace metal;
5252
#include "ShaderVertex.h"
5353
#include "ShaderTypes.h"
5454

55-
//copying this direction from hsGMatState because I am a horrible person but we can't import the header here in since it includes a lot of class stuff.
56-
//FIXME: Come up with something better.
57-
enum hsGMatMiscFlags: uint32_t {
58-
kMiscWireFrame = 0x1, // dev (running out of bits)
59-
kMiscDrawMeshOutlines = 0x2, // dev, currently unimplemented
60-
kMiscTwoSided = 0x4, // view,dev
61-
kMiscDrawAsSplats = 0x8, // dev? bwt
62-
kMiscAdjustPlane = 0x10,
63-
kMiscAdjustCylinder = 0x20,
64-
kMiscAdjustSphere = 0x40,
65-
kMiscAdjust = kMiscAdjustPlane | kMiscAdjustCylinder| kMiscAdjustSphere,
66-
kMiscTroubledLoner = 0x80,
67-
kMiscBindSkip = 0x100,
68-
kMiscBindMask = 0x200,
69-
kMiscBindNext = 0x400,
70-
kMiscLightMap = 0x800,
71-
kMiscUseReflectionXform = 0x1000, // Use the calculated reflection environment
72-
// texture transform instead of layer->GetTransform()
73-
kMiscPerspProjection = 0x2000,
74-
kMiscOrthoProjection = 0x4000,
75-
kMiscProjection = kMiscPerspProjection | kMiscOrthoProjection,
76-
77-
kMiscRestartPassHere = 0x8000, // Tells pipeline to start a new pass beginning with this layer
78-
// Kinda like troubledLoner, but only cuts off lower layers, not
79-
// higher ones (kMiscBindNext sometimes does this by implication)
80-
81-
kMiscBumpLayer = 0x10000,
82-
kMiscBumpDu = 0x20000,
83-
kMiscBumpDv = 0x40000,
84-
kMiscBumpDw = 0x80000,
85-
kMiscBumpChans = kMiscBumpDu | kMiscBumpDv | kMiscBumpDw,
86-
87-
kMiscNoShadowAlpha = 0x100000,
88-
kMiscUseRefractionXform = 0x200000, // Use a refraction-like hack.
89-
kMiscCam2Screen = 0x400000, // Expects tex coords to be XYZ in camera space. Does a cam to screen (not NDC) projection
90-
// and swaps Z with W, so that the texture projection can produce projected 2D screen coordinates.
91-
92-
kAllMiscFlags = 0xffffffff
93-
};
94-
95-
enum hsGMatBlendFlags: uint32_t {
96-
kBlendTest = 0x1, // dev
97-
// Rest of blends are mutually exclusive
98-
kBlendAlpha = 0x2, // dev
99-
kBlendMult = 0x4, // dev
100-
kBlendAdd = 0x8, // dev
101-
kBlendAddColorTimesAlpha = 0x10, // dev
102-
kBlendAntiAlias = 0x20,
103-
kBlendDetail = 0x40,
104-
kBlendNoColor = 0x80, // dev
105-
kBlendMADD = 0x100,
106-
kBlendDot3 = 0x200,
107-
kBlendAddSigned = 0x400,
108-
kBlendAddSigned2X = 0x800,
109-
kBlendMask = kBlendAlpha
110-
| kBlendMult
111-
| kBlendAdd
112-
| kBlendAddColorTimesAlpha
113-
| kBlendDetail
114-
| kBlendMADD
115-
| kBlendDot3
116-
| kBlendAddSigned
117-
| kBlendAddSigned2X,
118-
kBlendInvertAlpha = 0x1000, // dev
119-
kBlendInvertColor = 0x2000, // dev
120-
kBlendAlphaMult = 0x4000,
121-
kBlendAlphaAdd = 0x8000,
122-
kBlendNoVtxAlpha = 0x10000,
123-
kBlendNoTexColor = 0x20000,
124-
kBlendNoTexAlpha = 0x40000,
125-
kBlendInvertVtxAlpha = 0x80000, // Invert ONLY the vertex alpha source
126-
kBlendAlphaAlways = 0x100000, // Alpha test always passes (even for alpha=0).
127-
kBlendInvertFinalColor = 0x200000,
128-
kBlendInvertFinalAlpha = 0x400000,
129-
kBlendEnvBumpNext = 0x800000,
130-
kBlendSubtract = 0x1000000,
131-
kBlendRevSubtract = 0x2000000,
132-
kBlendAlphaTestHigh = 0x4000000,
133-
kBlendAlphaPremultiplied = 0x8000000
134-
};
55+
#define GMAT_STATE_ENUM_START(name) enum name {
56+
#define GMAT_STATE_ENUM_VALUE(name, val) name = val,
57+
#define GMAT_STATE_ENUM_END(name) };
58+
59+
#include "hsGMatStateEnums.h"
13560

13661
enum plUVWSrcModifiers: uint32_t {
13762
kUVWPassThru = 0x00000000,

0 commit comments

Comments
 (0)