X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fopengl%2Fprogram_backend.h;h=1a548ed69116d66d96bdd28e5194abb1cd441dfd;hb=cebf1330ef6773b7b4496dc279ec02a7ca4351bb;hp=2a223ff5ae1b50ffc46fc343c4a45996a04208cc;hpb=e70662d7812464159f2e47f4bebb69d88f89ae93;p=libs%2Fgl.git diff --git a/source/backends/opengl/program_backend.h b/source/backends/opengl/program_backend.h index 2a223ff5..1a548ed6 100644 --- a/source/backends/opengl/program_backend.h +++ b/source/backends/opengl/program_backend.h @@ -20,15 +20,10 @@ protected: VERTEX, GEOMETRY, FRAGMENT, + COMPUTE, MAX_STAGES }; - struct TransientData - { - std::map textures; - std::map blocks; - }; - struct UniformCall { using FuncPtr = void (*)(unsigned, unsigned, const void *); @@ -52,17 +47,18 @@ protected: bool has_stages() const; unsigned add_stage(Stage); - void add_glsl_stages(const GlslModule &, const std::map &, TransientData &); + void add_glsl_stages(const GlslModule &, const std::map &); void compile_glsl_stage(const GlslModule &, unsigned); void add_spirv_stages(const SpirVModule &, const std::map &); - void finalize(const Module &, TransientData &); + void link(const Module &); void query_uniforms(); void query_uniform_blocks(const std::vector &); void query_attributes(); - void apply_bindings(const TransientData &); void finalize_uniforms(); + bool is_compute() const { return stage_ids[COMPUTE]; } + void set_debug_name(const std::string &); void set_stage_debug_name(unsigned, Stage); };