20 lines
731 B
C
20 lines
731 B
C
#include "opengl_shader_module.h"
|
|
#include "opengl_shader_compiler.h"
|
|
#include "stdlib.h"
|
|
|
|
gnReturnCode openglCreateShaderModule(gnShaderModule module, gnDevice device, gnShaderModuleInfo shaderModuleInfo) {
|
|
module->shaderModule = malloc(sizeof(gnPlatformShaderModule));
|
|
glCompilerInfo info = {
|
|
.code = shaderModuleInfo.code,
|
|
.wordCount = shaderModuleInfo.size / 4,
|
|
.entryPoint = gnToCString(shaderModuleInfo.entryPoint),
|
|
};
|
|
glCompiler compiler = glCreateCompiler(&info);
|
|
module->shaderModule->shader = glCompilerCompilerShader(compiler);
|
|
glDestroyCompiler(compiler);
|
|
return GN_SUCCESS;
|
|
}
|
|
void openglDestroyShaderModule(gnShaderModule module) {
|
|
free(module->shaderModule);
|
|
}
|