33 lines
857 B
C
33 lines
857 B
C
#pragma once
|
|
#include "stdint.h"
|
|
#include "glad/glad.h"
|
|
#include "utils/gryphn_cpp_function.h"
|
|
|
|
#define MAX_OPENGL_SETS 16
|
|
#define MAX_OPENGL_BINDINGS 32
|
|
|
|
typedef enum glShaderModuleStage {
|
|
glVertex = GL_VERTEX_SHADER,
|
|
mtlFragment = GL_FRAGMENT_SHADER,
|
|
mtlMaxStage
|
|
} glShaderModuleStage;
|
|
|
|
typedef struct glCompilerInfo {
|
|
uint32_t* code;
|
|
int wordCount;
|
|
const char* entryPoint;
|
|
// glShaderModuleStage stage;
|
|
} glCompilerInfo;
|
|
|
|
typedef struct glSet { uint32_t bindings[MAX_OPENGL_BINDINGS]; } glSet;
|
|
|
|
typedef struct glShader {
|
|
char* source;
|
|
glSet sets[MAX_OPENGL_SETS];
|
|
} glShader;
|
|
|
|
typedef struct glCompiler_t* glCompiler;
|
|
GN_CPP_FUNCTION glCompiler glCreateCompiler(glCompilerInfo* info);
|
|
GN_CPP_FUNCTION glShader glCompilerCompilerShader(glCompiler compiler);
|
|
GN_CPP_FUNCTION void glDestroyCompiler(glCompiler compiler);
|