56 lines
3.8 KiB
C
56 lines
3.8 KiB
C
/*
|
|
File: cwasm_webgl_js_imports.h
|
|
Author: Taylor Robbins
|
|
Date: 09\01\2025
|
|
*/
|
|
|
|
#ifndef _CWASM_WEBGL_JS_IMPORTS_H
|
|
#define _CWASM_WEBGL_JS_IMPORTS_H
|
|
|
|
typedef int GlId; // Really this is just an index into a javascript array that holds the real reference to the WebGL object
|
|
typedef int GlEnum;
|
|
|
|
MAYBE_EXTERN_C GlId jsGlCreateBuffer();
|
|
MAYBE_EXTERN_C void jsGlBindBuffer(GlEnum bufferType, GlId bufferId);
|
|
MAYBE_EXTERN_C void jsGlBufferData(GlEnum bufferType, u32 dataLength, const void* dataPntr, GlEnum usageHint);
|
|
MAYBE_EXTERN_C GlId jsGlCreateVertexArray();
|
|
MAYBE_EXTERN_C void jsGlBindVertexArray(GlId vaoId);
|
|
MAYBE_EXTERN_C void jsGlEnableVertexAttribArray(GlEnum location);
|
|
MAYBE_EXTERN_C void jsGlVertexAttribPointer(GlEnum attribLocation, int componentCount, GlEnum componentType, bool normalized, int stride, int offset);
|
|
MAYBE_EXTERN_C GlId jsGlCreateShader(GlEnum shaderType);
|
|
MAYBE_EXTERN_C void jsGlShaderSource(GlId shaderId, int sourceLength, const char* sourcePntr);
|
|
MAYBE_EXTERN_C void jsGlCompileShader(GlId shaderId);
|
|
MAYBE_EXTERN_C bool jsGlGetShaderParameterBool(GlId shaderId, GlEnum parameter);
|
|
MAYBE_EXTERN_C int jsGlGetShaderParameterInt(GlId shaderId, GlEnum parameter);
|
|
MAYBE_EXTERN_C GlId jsGlCreateProgram();
|
|
MAYBE_EXTERN_C void jsGlAttachShader(GlId programId, GlId shaderId);
|
|
MAYBE_EXTERN_C void jsGlLinkProgram(GlId programId);
|
|
MAYBE_EXTERN_C void jsGlUseProgram(GlId programId);
|
|
MAYBE_EXTERN_C bool jsGlGetProgramParameterBool(GlId programId, GlEnum parameter);
|
|
MAYBE_EXTERN_C int jsGlGetProgramParameterInt(GlId programId, GlEnum parameter);
|
|
MAYBE_EXTERN_C void jsGlClearColor(r32 rValue, r32 gValue, r32 bValue, r32 aValue);
|
|
MAYBE_EXTERN_C void jsGlClear(int bufferBits);
|
|
MAYBE_EXTERN_C void jsGlDrawArrays(GlEnum geometryType, int startIndex, int count);
|
|
MAYBE_EXTERN_C GlId jsGlGetUniformLocation(GlId programId, int nameLength, const char* namePntr);
|
|
MAYBE_EXTERN_C void jsGlUniform1f(GlId locationId, r32 value);
|
|
MAYBE_EXTERN_C void jsGlUniform2f(GlId locationId, r32 value0, r32 value1);
|
|
MAYBE_EXTERN_C void jsGlUniform3f(GlId locationId, r32 value0, r32 value1, r32 value2);
|
|
MAYBE_EXTERN_C void jsGlUniform4f(GlId locationId, r32 value0, r32 value1, r32 value2, r32 value3);
|
|
MAYBE_EXTERN_C void jsGlUniform1fv(GlId locationId, int valuesCount, const r32* valuesPntr);
|
|
MAYBE_EXTERN_C void jsGlUniform2fv(GlId locationId, int valuesCount, const r32* valuesPntr); //TODO: Change valuesPntr to v2*
|
|
MAYBE_EXTERN_C void jsGlUniform3fv(GlId locationId, int valuesCount, const r32* valuesPntr); //TODO: Change valuesPntr to v3*
|
|
MAYBE_EXTERN_C void jsGlUniform4fv(GlId locationId, int valuesCount, const r32* valuesPntr); //TODO: Change valuesPntr to v4*
|
|
MAYBE_EXTERN_C void jsGlUniform1i(GlId locationId, int value);
|
|
MAYBE_EXTERN_C void jsGlUniform2i(GlId locationId, int value0, int value1);
|
|
MAYBE_EXTERN_C void jsGlUniform3i(GlId locationId, int value0, int value1, int value2);
|
|
MAYBE_EXTERN_C void jsGlUniform4i(GlId locationId, int value0, int value1, int value2, int value3);
|
|
MAYBE_EXTERN_C void jsGlUniform1iv(GlId locationId, int valuesCount, const int* valuesPntr);
|
|
MAYBE_EXTERN_C void jsGlUniform2iv(GlId locationId, int valuesCount, const int* valuesPntr); //TODO: Change valuesPntr to v2i*
|
|
MAYBE_EXTERN_C void jsGlUniform3iv(GlId locationId, int valuesCount, const int* valuesPntr); //TODO: Change valuesPntr to v3i*
|
|
MAYBE_EXTERN_C void jsGlUniform4iv(GlId locationId, int valuesCount, const int* valuesPntr); //TODO: Change valuesPntr to v4i*
|
|
MAYBE_EXTERN_C void jsGlUniformMatrix2fv(GlId locationId, const r32* valuesPntr); //TODO: Change valuesPntr to mat2*
|
|
MAYBE_EXTERN_C void jsGlUniformMatrix3fv(GlId locationId, const r32* valuesPntr); //TODO: Change valuesPntr to mat3*
|
|
MAYBE_EXTERN_C void jsGlUniformMatrix4fv(GlId locationId, const r32* valuesPntr); //TODO: Change valuesPntr to mat4*
|
|
|
|
#endif // _CWASM_WEBGL_JS_IMPORTS_H
|