diff --git a/libs/gfx/include/psemek/gfx/program.hpp b/libs/gfx/include/psemek/gfx/program.hpp index 8f233f7b..3c30644f 100644 --- a/libs/gfx/include/psemek/gfx/program.hpp +++ b/libs/gfx/include/psemek/gfx/program.hpp @@ -17,6 +17,7 @@ namespace psemek::gfx struct program { + program(std::string_view compute_source); program(std::string_view vertex_source, std::string_view fragment_source); program(std::string_view vertex_source, std::string_view geometry_source, std::string_view fragment_source); diff --git a/libs/gfx/source/program.cpp b/libs/gfx/source/program.cpp index e3d35643..4291e4d8 100644 --- a/libs/gfx/source/program.cpp +++ b/libs/gfx/source/program.cpp @@ -312,6 +312,11 @@ namespace psemek::gfx return program; } + program::program(std::string_view compute_source) + { + program_ = create_program({{gl::COMPUTE_SHADER, compute_source}}); + } + program::program(std::string_view vertex_source, std::string_view fragment_source) { program_ = create_program({{gl::VERTEX_SHADER, vertex_source}, {gl::FRAGMENT_SHADER, fragment_source}});