mkxp-z/shader/sprite.pgl.h
刘皓 2cd8202af3
Convert GLSL shaders to PortableGL's shader format
PortableGL supports shaders, but requires them to be compiled
ahead-of-time to C or C++.

I'll write a compiler later to translate from GLSL to this format
automatically at build time.
2025-03-13 16:16:17 -04:00

47 lines
810 B
C

#include <portablegl.h>
#include <stdbool.h>
#ifdef __cplusplus
extern "C" {
#endif
struct SpriteUniforms
{
pgl_mat4 projMat;
pgl_mat4 spriteMat;
pgl_vec2 texSizeInv;
pgl_vec2 patternSizeInv;
pgl_vec2 patternScroll;
pgl_vec2 patternZoom;
bool renderPattern;
bool patternTile;
GLuint texture;
pgl_vec4 tone;
float opacity;
pgl_vec4 color;
float bushDepth;
float bushOpacity;
GLuint pattern;
int patternBlendType;
float patternOpacity;
bool invert;
};
struct SpriteAttribs
{
pgl_vec2 position;
pgl_vec2 texCoord;
};
struct SpriteVarying
{
pgl_vec2 v_texCoord;
pgl_vec2 v_patCoord;
};
void mkxpSpriteVS(float *output, pgl_vec4 *attribs, Shader_Builtins *builtins, void *uniforms);
void mkxpSpriteFS(float *input, Shader_Builtins *builtins, void *uniforms);
#ifdef __cplusplus
}
#endif