Created
November 3, 2019 17:16
-
-
Save corporateshark/f77e134376f89af0f586954fdccb234f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Author: Sergey Kosarevsky [email protected] | |
#pragma once | |
#include "glslang/Include/ShaderTypes.h" | |
#include "glslang/Include/ResourceLimits.h" | |
#include "glslang/MachineIndependent/Versions.h" | |
typedef void* ShaderHandle; | |
typedef void* ProgramHandle; | |
struct ShaderCompilationInput | |
{ | |
size_t size; // sizeof(ShaderCompilationInput) | |
// | |
glslang::EShSource lang; | |
EShLanguage stage; | |
glslang::EShClient client; | |
glslang::EShTargetClientVersion clientVersion; | |
glslang::EShTargetLanguage targetLanguage; | |
glslang::EShTargetLanguageVersion targetLanguageVersion; | |
const char* code; | |
const TBuiltInResource* builtInResources; | |
int defaultVersion; | |
EProfile defaultProfile; | |
bool forceDefaultVersionAndProfile; | |
bool forwardCompatible; | |
EShMessages messages; | |
}; | |
struct ProgramLinkOptions | |
{ | |
size_t size; // sizeof(ProgramLinkOptions) | |
// | |
EShMessages messages; | |
}; | |
void glslangInitializeProcess(); | |
void glslangFinalizeProcess(); | |
ShaderHandle glslangShaderCreate(const ShaderCompilationInput*); | |
void glslangShaderDelete(ShaderHandle); | |
bool glslangShaderPreprocess(ShaderHandle, const ShaderCompilationInput*); | |
bool glslangShaderParse(ShaderHandle, const ShaderCompilationInput*); | |
const char* glslangShaderGetPreprocessedCode(ShaderHandle); | |
const char* glslangShaderGetInfoLog(ShaderHandle); | |
const char* glslangShaderGetInfoDebugLog(ShaderHandle); | |
ProgramHandle glslangProgramCreate(); | |
void glslangProgramDelete(ProgramHandle); | |
void glslangProgramAddShader(ProgramHandle, ShaderHandle); | |
bool glslangProgramLink(ProgramHandle, const ProgramLinkOptions*); | |
void glslangProgramSPIRVGenerate(ProgramHandle, EShLanguage); | |
size_t glslangProgramSPIRVGetSize( ProgramHandle ); | |
void glslangProgramSPIRVGet( ProgramHandle, unsigned int* ); | |
const char* glslangProgramSPIRVGetMessages(ProgramHandle); | |
const char* glslangProgramGetInfoLog(ProgramHandle); | |
const char* glslangProgramGetInfoDebugLog(ProgramHandle); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment