Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
G
glslang
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Chen Yisong
glslang
Commits
8f0c6bd7
Unverified
Commit
8f0c6bd7
authored
Aug 17, 2020
by
John Kessenich
Committed by
GitHub
Aug 17, 2020
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2369 from ezdiy/c_api_export
GLSLANG_EXPORT for C APIs.
parents
758b3072
1fde85ab
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
58 additions
and
42 deletions
+58
-42
spirv_c_interface.cpp
SPIRV/CInterface/spirv_c_interface.cpp
+5
-5
glslang_c_interface.cpp
glslang/CInterface/glslang_c_interface.cpp
+15
-15
glslang_c_interface.h
glslang/Include/glslang_c_interface.h
+38
-22
No files found.
SPIRV/CInterface/spirv_c_interface.cpp
View file @
8f0c6bd7
...
...
@@ -79,7 +79,7 @@ static EShLanguage c_shader_stage(glslang_stage_t stage)
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
;
glslang
::
SpvOptions
spvOptions
;
...
...
@@ -92,19 +92,19 @@ void glslang_program_SPIRV_generate(glslang_program_t* program, glslang_stage_t
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
));
}
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
();
}
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
();
}
glslang/CInterface/glslang_c_interface.cpp
View file @
8f0c6bd7
...
...
@@ -160,9 +160,9 @@ private:
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
)
{
...
...
@@ -320,7 +320,7 @@ static EProfile c_shader_profile(glslang_profile_t profile)
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
)
{
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
;
}
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
();
}
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
;
/* 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
();
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
)
return
;
...
...
@@ -391,14 +391,14 @@ void glslang_shader_delete(glslang_shader_t* 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
();
p
->
program
=
new
glslang
::
TProgram
();
return
p
;
}
void
glslang_program_delete
(
glslang_program_t
*
program
)
GLSLANG_EXPORT
void
glslang_program_delete
(
glslang_program_t
*
program
)
{
if
(
!
program
)
return
;
...
...
@@ -407,22 +407,22 @@ void glslang_program_delete(glslang_program_t* 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
);
}
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
);
}
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
();
}
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
();
}
glslang/Include/glslang_c_interface.h
View file @
8f0c6bd7
...
...
@@ -203,28 +203,44 @@ typedef struct glsl_include_callbacks_s {
extern
"C"
{
#endif
int
glslang_initialize_process
();
void
glslang_finalize_process
();
glslang_shader_t
*
glslang_shader_create
(
const
glslang_input_t
*
input
);
void
glslang_shader_delete
(
glslang_shader_t
*
shader
);
int
glslang_shader_preprocess
(
glslang_shader_t
*
shader
,
const
glslang_input_t
*
input
);
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
();
void
glslang_program_delete
(
glslang_program_t
*
program
);
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
void
glslang_program_SPIRV_generate
(
glslang_program_t
*
program
,
glslang_stage_t
stage
);
size_t
glslang_program_SPIRV_get_size
(
glslang_program_t
*
program
);
void
glslang_program_SPIRV_get
(
glslang_program_t
*
program
,
unsigned
int
*
);
unsigned
int
*
glslang_program_SPIRV_get_ptr
(
glslang_program_t
*
program
);
const
char
*
glslang_program_SPIRV_get_messages
(
glslang_program_t
*
program
);
const
char
*
glslang_program_get_info_log
(
glslang_program_t
*
program
);
const
char
*
glslang_program_get_info_debug_log
(
glslang_program_t
*
program
);
#ifdef GLSLANG_IS_SHARED_LIBRARY
#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
#ifndef GLSLANG_EXPORT
#define GLSLANG_EXPORT
#endif
GLSLANG_EXPORT
int
glslang_initialize_process
();
GLSLANG_EXPORT
void
glslang_finalize_process
();
GLSLANG_EXPORT
glslang_shader_t
*
glslang_shader_create
(
const
glslang_input_t
*
input
);
GLSLANG_EXPORT
void
glslang_shader_delete
(
glslang_shader_t
*
shader
);
GLSLANG_EXPORT
int
glslang_shader_preprocess
(
glslang_shader_t
*
shader
,
const
glslang_input_t
*
input
);
GLSLANG_EXPORT
int
glslang_shader_parse
(
glslang_shader_t
*
shader
,
const
glslang_input_t
*
input
);
GLSLANG_EXPORT
const
char
*
glslang_shader_get_preprocessed_code
(
glslang_shader_t
*
shader
);
GLSLANG_EXPORT
const
char
*
glslang_shader_get_info_log
(
glslang_shader_t
*
shader
);
GLSLANG_EXPORT
const
char
*
glslang_shader_get_info_debug_log
(
glslang_shader_t
*
shader
);
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
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment