Skip to content

Commit

Permalink
-Wpedantic fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
flibitijibibo committed Apr 1, 2020
1 parent 585d326 commit 2b018ba
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 21 deletions.
40 changes: 25 additions & 15 deletions mojoshader.h
Expand Up @@ -43,6 +43,15 @@ extern "C" {
#endif
#endif

/* -Wpedantic nameless union/struct silencing */
#ifndef MOJOSHADERNAMELESS
#ifdef __GNUC__
#define MOJOSHADERNAMELESS __extension__
#else
#define MOJOSHADERNAMELESS
#endif /* __GNUC__ */
#endif /* MOJOSHADERNAMELESS */

/*
* For determining the version of MojoShader you are using:
* const int compiled_against = MOJOSHADER_VERSION;
Expand Down Expand Up @@ -87,7 +96,7 @@ typedef enum
MOJOSHADER_TYPE_PIXEL = (1 << 0),
MOJOSHADER_TYPE_VERTEX = (1 << 1),
MOJOSHADER_TYPE_GEOMETRY = (1 << 2), /* (not supported yet.) */
MOJOSHADER_TYPE_ANY = 0xFFFFFFFF /* used for bitmasks */
MOJOSHADER_TYPE_ANY = 0x7FFFFFFF /* used for bitmasks */
} MOJOSHADER_shaderType;

/*
Expand All @@ -104,7 +113,7 @@ typedef enum
MOJOSHADER_ATTRIBUTE_UINT,
MOJOSHADER_ATTRIBUTE_FLOAT,
MOJOSHADER_ATTRIBUTE_DOUBLE,
MOJOSHADER_ATTRIBUTE_HALF_FLOAT, /* MAYBE available in your OpenGL! */
MOJOSHADER_ATTRIBUTE_HALF_FLOAT /* MAYBE available in your OpenGL! */
} MOJOSHADER_attributeType;

/*
Expand All @@ -115,7 +124,7 @@ typedef enum
MOJOSHADER_UNIFORM_UNKNOWN = -1, /* housekeeping value; never returned. */
MOJOSHADER_UNIFORM_FLOAT,
MOJOSHADER_UNIFORM_INT,
MOJOSHADER_UNIFORM_BOOL,
MOJOSHADER_UNIFORM_BOOL
} MOJOSHADER_uniformType;

/*
Expand Down Expand Up @@ -180,7 +189,7 @@ typedef enum
MOJOSHADER_SAMPLER_UNKNOWN = -1, /* housekeeping value; never returned. */
MOJOSHADER_SAMPLER_2D,
MOJOSHADER_SAMPLER_CUBE,
MOJOSHADER_SAMPLER_VOLUME,
MOJOSHADER_SAMPLER_VOLUME
} MOJOSHADER_samplerType;

/*
Expand Down Expand Up @@ -432,15 +441,15 @@ typedef enum MOJOSHADER_preshaderOpcode
MOJOSHADER_PRESHADEROP_ATAN2_SCALAR,
MOJOSHADER_PRESHADEROP_DIV_SCALAR,
MOJOSHADER_PRESHADEROP_DOT_SCALAR,
MOJOSHADER_PRESHADEROP_NOISE_SCALAR,
MOJOSHADER_PRESHADEROP_NOISE_SCALAR
} MOJOSHADER_preshaderOpcode;

typedef enum MOJOSHADER_preshaderOperandType
{
MOJOSHADER_PRESHADEROPERAND_INPUT,
MOJOSHADER_PRESHADEROPERAND_OUTPUT,
MOJOSHADER_PRESHADEROPERAND_LITERAL,
MOJOSHADER_PRESHADEROPERAND_TEMP,
MOJOSHADER_PRESHADEROPERAND_TEMP
} MOJOSHADER_preshaderOperandType;

typedef struct MOJOSHADER_preshaderOperand
Expand Down Expand Up @@ -869,10 +878,6 @@ DECLSPEC const MOJOSHADER_preshader *MOJOSHADER_parsePreshader(const unsigned ch
DECLSPEC void MOJOSHADER_freePreshader(const MOJOSHADER_preshader *preshader);


/* Effects interface... */
#include "mojoshader_effects.h"


/* Preprocessor interface... */

/*
Expand Down Expand Up @@ -1211,13 +1216,13 @@ typedef enum MOJOSHADER_astDataTypeType
MOJOSHADER_AST_DATATYPE_MATRIX,
MOJOSHADER_AST_DATATYPE_BUFFER,
MOJOSHADER_AST_DATATYPE_FUNCTION,
MOJOSHADER_AST_DATATYPE_USER,
MOJOSHADER_AST_DATATYPE_USER
} MOJOSHADER_astDataTypeType;
#define MOJOSHADER_AST_DATATYPE_CONST (1 << 31)

typedef union MOJOSHADER_astDataType MOJOSHADER_astDataType;

// This is just part of DataTypeStruct, never appears outside of it.
/* This is just part of DataTypeStruct, never appears outside of it. */
typedef struct MOJOSHADER_astDataTypeStructMember
{
const MOJOSHADER_astDataType *datatype;
Expand Down Expand Up @@ -1423,7 +1428,7 @@ typedef enum MOJOSHADER_astIfAttributes
MOJOSHADER_AST_IFATTR_IFALL,
MOJOSHADER_AST_IFATTR_IFANY,
MOJOSHADER_AST_IFATTR_PREDICATE,
MOJOSHADER_AST_IFATTR_PREDICATEBLOCK,
MOJOSHADER_AST_IFATTR_PREDICATEBLOCK
} MOJOSHADER_astIfAttributes;

typedef enum MOJOSHADER_astSwitchAttributes
Expand Down Expand Up @@ -2205,7 +2210,7 @@ typedef struct MOJOSHADER_irMove /* load/store. */
MOJOSHADER_irNodeInfo ir; /* Always MOJOSHADER_IR_MOVE */
MOJOSHADER_irExpression *dst; /* must result in a temp or mem! */
MOJOSHADER_irExpression *src;
int writemask; // for write-masking vector channels.
int writemask; /* for write-masking vector channels. */
} MOJOSHADER_irMove;

typedef struct MOJOSHADER_irExprStmt /* evaluate expression, throw it away. */
Expand All @@ -2218,7 +2223,7 @@ typedef struct MOJOSHADER_irJump /* unconditional jump */
{
MOJOSHADER_irNodeInfo ir; /* Always MOJOSHADER_IR_JUMP */
int label;
// !!! FIXME: possible label list, for further optimization passes.
/* !!! FIXME: possible label list, for further optimization passes. */
} MOJOSHADER_irJump;

typedef struct MOJOSHADER_irCJump /* conditional jump */
Expand Down Expand Up @@ -3302,6 +3307,11 @@ int MOJOSHADER_mtlGetVertexAttribLocation(MOJOSHADER_mtlShader *vert,
*/
DECLSPEC const char *MOJOSHADER_mtlGetError(void);


/* Effects interface... */
#include "mojoshader_effects.h"


#ifdef __cplusplus
}
#endif
Expand Down
11 changes: 5 additions & 6 deletions mojoshader_effects.h
Expand Up @@ -153,7 +153,7 @@ typedef enum MOJOSHADER_shadeMode
{
MOJOSHADER_SHADE_FLAT = 1,
MOJOSHADER_SHADE_GOURAUD = 2,
MOJOSHADER_SHADE_PHONG = 3,
MOJOSHADER_SHADE_PHONG = 3
} MOJOSHADER_shadeMode;

typedef enum MOJOSHADER_blendMode
Expand Down Expand Up @@ -230,7 +230,7 @@ typedef enum MOJOSHADER_vertexBlendFlags
MOJOSHADER_VBF_2WEIGHTS = 2,
MOJOSHADER_VBF_3WEIGHTS = 3,
MOJOSHADER_VBF_TWEENING = 255,
MOJOSHADER_VBF_0WEIGHTS = 256,
MOJOSHADER_VBF_0WEIGHTS = 256
} MOJOSHADER_vertexBlendFlags;

typedef enum MOJOSHADER_patchedEdgeStyle
Expand Down Expand Up @@ -318,7 +318,7 @@ typedef struct MOJOSHADER_effectValue
const char *semantic;
MOJOSHADER_symbolTypeInfo type;
unsigned int value_count;
union
MOJOSHADERNAMELESS union
{
/* Raw value types */
void *values;
Expand Down Expand Up @@ -407,7 +407,7 @@ typedef struct MOJOSHADER_effectShader
unsigned int *params;
unsigned int sampler_count;
MOJOSHADER_samplerStateRegister *samplers;
union
MOJOSHADERNAMELESS union
{
const MOJOSHADER_parseData *shader;
const MOJOSHADER_preshader *preshader;
Expand Down Expand Up @@ -435,7 +435,7 @@ typedef struct MOJOSHADER_effectTexture
typedef union MOJOSHADER_effectObject
{
MOJOSHADER_symbolType type;
union
MOJOSHADERNAMELESS union
{
MOJOSHADER_effectShader shader;
MOJOSHADER_effectSamplerMap mapping;
Expand Down Expand Up @@ -804,7 +804,6 @@ DECLSPEC void MOJOSHADER_glEffectEnd(MOJOSHADER_glEffect *glEffect);
/* Metal effect interface... */

typedef struct MOJOSHADER_mtlEffect MOJOSHADER_mtlEffect;
typedef struct MOJOSHADER_mtlShader MOJOSHADER_mtlShader;
typedef struct MOJOSHADER_mtlShaderState MOJOSHADER_mtlShaderState;

/* Fully compile/link the shaders found within the effect.
Expand Down

0 comments on commit 2b018ba

Please sign in to comment.