diff --git a/CMakeLists.txt b/CMakeLists.txt index b22782b1..f6e22512 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,14 +65,18 @@ elseif (SOKOL_USE_EGL_GLES3) set(slang "glsl300es") elseif (SOKOL_USE_EGL_GL) set(sokol_backend SOKOL_GLCORE) - set(slang "glsl410") + set(slang "glsl430") else() if (FIPS_IOS) set(sokol_backend SOKOL_GLES3) set(slang "glsl300es") else() set(sokol_backend SOKOL_GLCORE) - set(slang "glsl410") + if (FIPS_MACOS) + set(slang "glsl410") + else() + set(slang "glsl430") + endif() endif() endif() diff --git a/sapp/CMakeLists.txt b/sapp/CMakeLists.txt index 6c4f994a..1e3ca2e6 100644 --- a/sapp/CMakeLists.txt +++ b/sapp/CMakeLists.txt @@ -83,6 +83,20 @@ fips_begin_app(noninterleaved-sapp-ui windowed) target_compile_definitions(noninterleaved-sapp-ui PRIVATE USE_DBG_UI) fips_end_app() +fips_ide_group(Samples) +fips_begin_app(vertexpull-sapp windowed) + fips_files(vertexpull-sapp.c) + sokol_shader(vertexpull-sapp.glsl ${slang}) + fips_deps(sokol) +fips_end_app() +fips_ide_group(SamplesWithDebugUI) +fips_begin_app(vertexpull-sapp-ui windowed) + fips_files(vertexpull-sapp.c) + sokol_shader(vertexpull-sapp.glsl ${slang}) + fips_deps(sokol dbgui) + target_compile_definitions(vertexpull-sapp-ui PRIVATE USE_DBG_UI) +fips_end_app() + fips_ide_group(Samples) fips_begin_app(texcube-sapp windowed) fips_files(texcube-sapp.c) diff --git a/sapp/vertexpull-sapp.c b/sapp/vertexpull-sapp.c new file mode 100644 index 00000000..1c95bfe0 --- /dev/null +++ b/sapp/vertexpull-sapp.c @@ -0,0 +1,14 @@ +//------------------------------------------------------------------------------ +// vertexpull-sapp.c +// +// Demonstrates vertex pulling from a storage buffer. +//------------------------------------------------------------------------------ +#include "sokol_app.h" +#include "sokol_gfx.h" +#include "sokol_log.h" +#include "sokol_glue.h" +#define HANDMADE_MATH_IMPLEMENTATION +#define HANDMADE_MATH_NO_SSE +#include "HandmadeMath.h" +#include "dbgui/dbgui.h" +#include "vertexpull-sapp.glsl.h" diff --git a/sapp/vertexpull-sapp.glsl b/sapp/vertexpull-sapp.glsl new file mode 100644 index 00000000..39701438 --- /dev/null +++ b/sapp/vertexpull-sapp.glsl @@ -0,0 +1,32 @@ +@ctype mat4 hmm_mat4 + +@vs vs +uniform vs_params { + mat4 mvp; +}; + +struct vertex_t { + vec3 pos; + vec4 color; +}; + +readonly buffer ssbo { + vertex_t vtx[]; +}; + +out vec4 color; + +void main() { + gl_Position = mvp * vec4(vtx[gl_VertexIndex].pos, 1.0); + color = vtx[gl_VertexIndex].color; +} +@end + +@fs fs +in vec4 color; +out vec4 frag_color; + +void main() { + frag_color = color; +} +@end \ No newline at end of file