parent
b60e067b43
commit
1fde85ab96
@ -79,7 +79,7 @@ static EShLanguage c_shader_stage(glslang_stage_t stage)
|
|||||||
return EShLangCount;
|
return EShLangCount;
|
||||||
}
|
}
|
||||||
|
|
||||||
void glslang_program_SPIRV_generate(glslang_program_t* program, glslang_stage_t stage)
|
GLSLANG_EXPORT void glslang_program_SPIRV_generate(glslang_program_t* program, glslang_stage_t stage)
|
||||||
{
|
{
|
||||||
spv::SpvBuildLogger logger;
|
spv::SpvBuildLogger logger;
|
||||||
glslang::SpvOptions spvOptions;
|
glslang::SpvOptions spvOptions;
|
||||||
@ -92,19 +92,19 @@ void glslang_program_SPIRV_generate(glslang_program_t* program, glslang_stage_t
|
|||||||
program->loggerMessages = logger.getAllMessages();
|
program->loggerMessages = logger.getAllMessages();
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t glslang_program_SPIRV_get_size(glslang_program_t* program) { return program->spirv.size(); }
|
GLSLANG_EXPORT size_t glslang_program_SPIRV_get_size(glslang_program_t* program) { return program->spirv.size(); }
|
||||||
|
|
||||||
void glslang_program_SPIRV_get(glslang_program_t* program, unsigned int* out)
|
GLSLANG_EXPORT void glslang_program_SPIRV_get(glslang_program_t* program, unsigned int* out)
|
||||||
{
|
{
|
||||||
memcpy(out, program->spirv.data(), program->spirv.size() * sizeof(unsigned int));
|
memcpy(out, program->spirv.data(), program->spirv.size() * sizeof(unsigned int));
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int* glslang_program_SPIRV_get_ptr(glslang_program_t* program)
|
GLSLANG_EXPORT unsigned int* glslang_program_SPIRV_get_ptr(glslang_program_t* program)
|
||||||
{
|
{
|
||||||
return program->spirv.data();
|
return program->spirv.data();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* glslang_program_SPIRV_get_messages(glslang_program_t* program)
|
GLSLANG_EXPORT const char* glslang_program_SPIRV_get_messages(glslang_program_t* program)
|
||||||
{
|
{
|
||||||
return program->loggerMessages.empty() ? nullptr : program->loggerMessages.c_str();
|
return program->loggerMessages.empty() ? nullptr : program->loggerMessages.c_str();
|
||||||
}
|
}
|
||||||
|
@ -160,9 +160,9 @@ private:
|
|||||||
void* context;
|
void* context;
|
||||||
};
|
};
|
||||||
|
|
||||||
int glslang_initialize_process() { return static_cast<int>(glslang::InitializeProcess()); }
|
GLSLANG_EXPORT int glslang_initialize_process() { return static_cast<int>(glslang::InitializeProcess()); }
|
||||||
|
|
||||||
void glslang_finalize_process() { glslang::FinalizeProcess(); }
|
GLSLANG_EXPORT void glslang_finalize_process() { glslang::FinalizeProcess(); }
|
||||||
|
|
||||||
static EShLanguage c_shader_stage(glslang_stage_t stage)
|
static EShLanguage c_shader_stage(glslang_stage_t stage)
|
||||||
{
|
{
|
||||||
@ -320,7 +320,7 @@ static EProfile c_shader_profile(glslang_profile_t profile)
|
|||||||
return EProfile();
|
return EProfile();
|
||||||
}
|
}
|
||||||
|
|
||||||
glslang_shader_t* glslang_shader_create(const glslang_input_t* input)
|
GLSLANG_EXPORT glslang_shader_t* glslang_shader_create(const glslang_input_t* input)
|
||||||
{
|
{
|
||||||
if (!input || !input->code) {
|
if (!input || !input->code) {
|
||||||
printf("Error creating shader: null input(%p)/input->code\n", input);
|
printf("Error creating shader: null input(%p)/input->code\n", input);
|
||||||
@ -344,12 +344,12 @@ glslang_shader_t* glslang_shader_create(const glslang_input_t* input)
|
|||||||
return shader;
|
return shader;
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* glslang_shader_get_preprocessed_code(glslang_shader_t* shader)
|
GLSLANG_EXPORT const char* glslang_shader_get_preprocessed_code(glslang_shader_t* shader)
|
||||||
{
|
{
|
||||||
return shader->preprocessedGLSL.c_str();
|
return shader->preprocessedGLSL.c_str();
|
||||||
}
|
}
|
||||||
|
|
||||||
int glslang_shader_preprocess(glslang_shader_t* shader, const glslang_input_t* input)
|
GLSLANG_EXPORT int glslang_shader_preprocess(glslang_shader_t* shader, const glslang_input_t* input)
|
||||||
{
|
{
|
||||||
DirStackFileIncluder Includer;
|
DirStackFileIncluder Includer;
|
||||||
/* TODO: use custom callbacks if they are available in 'i->callbacks' */
|
/* TODO: use custom callbacks if they are available in 'i->callbacks' */
|
||||||
@ -365,7 +365,7 @@ int glslang_shader_preprocess(glslang_shader_t* shader, const glslang_input_t* i
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
int glslang_shader_parse(glslang_shader_t* shader, const glslang_input_t* input)
|
GLSLANG_EXPORT int glslang_shader_parse(glslang_shader_t* shader, const glslang_input_t* input)
|
||||||
{
|
{
|
||||||
const char* preprocessedCStr = shader->preprocessedGLSL.c_str();
|
const char* preprocessedCStr = shader->preprocessedGLSL.c_str();
|
||||||
shader->shader->setStrings(&preprocessedCStr, 1);
|
shader->shader->setStrings(&preprocessedCStr, 1);
|
||||||
@ -378,11 +378,11 @@ int glslang_shader_parse(glslang_shader_t* shader, const glslang_input_t* input)
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* glslang_shader_get_info_log(glslang_shader_t* shader) { return shader->shader->getInfoLog(); }
|
GLSLANG_EXPORT const char* glslang_shader_get_info_log(glslang_shader_t* shader) { return shader->shader->getInfoLog(); }
|
||||||
|
|
||||||
const char* glslang_shader_get_info_debug_log(glslang_shader_t* shader) { return shader->shader->getInfoDebugLog(); }
|
GLSLANG_EXPORT const char* glslang_shader_get_info_debug_log(glslang_shader_t* shader) { return shader->shader->getInfoDebugLog(); }
|
||||||
|
|
||||||
void glslang_shader_delete(glslang_shader_t* shader)
|
GLSLANG_EXPORT void glslang_shader_delete(glslang_shader_t* shader)
|
||||||
{
|
{
|
||||||
if (!shader)
|
if (!shader)
|
||||||
return;
|
return;
|
||||||
@ -391,14 +391,14 @@ void glslang_shader_delete(glslang_shader_t* shader)
|
|||||||
delete (shader);
|
delete (shader);
|
||||||
}
|
}
|
||||||
|
|
||||||
glslang_program_t* glslang_program_create()
|
GLSLANG_EXPORT glslang_program_t* glslang_program_create()
|
||||||
{
|
{
|
||||||
glslang_program_t* p = new glslang_program_t();
|
glslang_program_t* p = new glslang_program_t();
|
||||||
p->program = new glslang::TProgram();
|
p->program = new glslang::TProgram();
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
void glslang_program_delete(glslang_program_t* program)
|
GLSLANG_EXPORT void glslang_program_delete(glslang_program_t* program)
|
||||||
{
|
{
|
||||||
if (!program)
|
if (!program)
|
||||||
return;
|
return;
|
||||||
@ -407,22 +407,22 @@ void glslang_program_delete(glslang_program_t* program)
|
|||||||
delete (program);
|
delete (program);
|
||||||
}
|
}
|
||||||
|
|
||||||
void glslang_program_add_shader(glslang_program_t* program, glslang_shader_t* shader)
|
GLSLANG_EXPORT void glslang_program_add_shader(glslang_program_t* program, glslang_shader_t* shader)
|
||||||
{
|
{
|
||||||
program->program->addShader(shader->shader);
|
program->program->addShader(shader->shader);
|
||||||
}
|
}
|
||||||
|
|
||||||
int glslang_program_link(glslang_program_t* program, int messages)
|
GLSLANG_EXPORT int glslang_program_link(glslang_program_t* program, int messages)
|
||||||
{
|
{
|
||||||
return (int)program->program->link((EShMessages)messages);
|
return (int)program->program->link((EShMessages)messages);
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* glslang_program_get_info_log(glslang_program_t* program)
|
GLSLANG_EXPORT const char* glslang_program_get_info_log(glslang_program_t* program)
|
||||||
{
|
{
|
||||||
return program->program->getInfoLog();
|
return program->program->getInfoLog();
|
||||||
}
|
}
|
||||||
|
|
||||||
const char* glslang_program_get_info_debug_log(glslang_program_t* program)
|
GLSLANG_EXPORT const char* glslang_program_get_info_debug_log(glslang_program_t* program)
|
||||||
{
|
{
|
||||||
return program->program->getInfoDebugLog();
|
return program->program->getInfoDebugLog();
|
||||||
}
|
}
|
||||||
|
@ -203,28 +203,44 @@ typedef struct glsl_include_callbacks_s {
|
|||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
int glslang_initialize_process();
|
#ifdef GLSLANG_IS_SHARED_LIBRARY
|
||||||
void glslang_finalize_process();
|
#ifdef _WIN32
|
||||||
|
#ifdef GLSLANG_EXPORTING
|
||||||
|
#define GLSLANG_EXPORT __declspec(dllexport)
|
||||||
|
#else
|
||||||
|
#define GLSLANG_EXPORT __declspec(dllimport)
|
||||||
|
#endif
|
||||||
|
#elif __GNUC__ >= 4
|
||||||
|
#define GLSLANG_EXPORT __attribute__((visibility("default")))
|
||||||
|
#endif
|
||||||
|
#endif // GLSLANG_IS_SHARED_LIBRARY
|
||||||
|
|
||||||
glslang_shader_t* glslang_shader_create(const glslang_input_t* input);
|
#ifndef GLSLANG_EXPORT
|
||||||
void glslang_shader_delete(glslang_shader_t* shader);
|
#define GLSLANG_EXPORT
|
||||||
int glslang_shader_preprocess(glslang_shader_t* shader, const glslang_input_t* input);
|
#endif
|
||||||
int glslang_shader_parse(glslang_shader_t* shader, const glslang_input_t* input);
|
|
||||||
const char* glslang_shader_get_preprocessed_code(glslang_shader_t* shader);
|
|
||||||
const char* glslang_shader_get_info_log(glslang_shader_t* shader);
|
|
||||||
const char* glslang_shader_get_info_debug_log(glslang_shader_t* shader);
|
|
||||||
|
|
||||||
glslang_program_t* glslang_program_create();
|
GLSLANG_EXPORT int glslang_initialize_process();
|
||||||
void glslang_program_delete(glslang_program_t* program);
|
GLSLANG_EXPORT void glslang_finalize_process();
|
||||||
void glslang_program_add_shader(glslang_program_t* program, glslang_shader_t* shader);
|
|
||||||
int glslang_program_link(glslang_program_t* program, int messages); // glslang_messages_t
|
GLSLANG_EXPORT glslang_shader_t* glslang_shader_create(const glslang_input_t* input);
|
||||||
void glslang_program_SPIRV_generate(glslang_program_t* program, glslang_stage_t stage);
|
GLSLANG_EXPORT void glslang_shader_delete(glslang_shader_t* shader);
|
||||||
size_t glslang_program_SPIRV_get_size(glslang_program_t* program);
|
GLSLANG_EXPORT int glslang_shader_preprocess(glslang_shader_t* shader, const glslang_input_t* input);
|
||||||
void glslang_program_SPIRV_get(glslang_program_t* program, unsigned int*);
|
GLSLANG_EXPORT int glslang_shader_parse(glslang_shader_t* shader, const glslang_input_t* input);
|
||||||
unsigned int* glslang_program_SPIRV_get_ptr(glslang_program_t* program);
|
GLSLANG_EXPORT const char* glslang_shader_get_preprocessed_code(glslang_shader_t* shader);
|
||||||
const char* glslang_program_SPIRV_get_messages(glslang_program_t* program);
|
GLSLANG_EXPORT const char* glslang_shader_get_info_log(glslang_shader_t* shader);
|
||||||
const char* glslang_program_get_info_log(glslang_program_t* program);
|
GLSLANG_EXPORT const char* glslang_shader_get_info_debug_log(glslang_shader_t* shader);
|
||||||
const char* glslang_program_get_info_debug_log(glslang_program_t* program);
|
|
||||||
|
GLSLANG_EXPORT glslang_program_t* glslang_program_create();
|
||||||
|
GLSLANG_EXPORT void glslang_program_delete(glslang_program_t* program);
|
||||||
|
GLSLANG_EXPORT void glslang_program_add_shader(glslang_program_t* program, glslang_shader_t* shader);
|
||||||
|
GLSLANG_EXPORT int glslang_program_link(glslang_program_t* program, int messages); // glslang_messages_t
|
||||||
|
GLSLANG_EXPORT void glslang_program_SPIRV_generate(glslang_program_t* program, glslang_stage_t stage);
|
||||||
|
GLSLANG_EXPORT size_t glslang_program_SPIRV_get_size(glslang_program_t* program);
|
||||||
|
GLSLANG_EXPORT void glslang_program_SPIRV_get(glslang_program_t* program, unsigned int*);
|
||||||
|
GLSLANG_EXPORT unsigned int* glslang_program_SPIRV_get_ptr(glslang_program_t* program);
|
||||||
|
GLSLANG_EXPORT const char* glslang_program_SPIRV_get_messages(glslang_program_t* program);
|
||||||
|
GLSLANG_EXPORT const char* glslang_program_get_info_log(glslang_program_t* program);
|
||||||
|
GLSLANG_EXPORT const char* glslang_program_get_info_debug_log(glslang_program_t* program);
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user