Further shader compilation development.
This commit is contained in:
@@ -3,13 +3,18 @@
|
||||
#include <unordered_map>
|
||||
#include "assets/dynamic_data_stores/dynamic_shader_source_store.hpp"
|
||||
#include "opengl/shader_program_lookup.hpp"
|
||||
#include "opengl/handles/shader_handle.hpp"
|
||||
#include "opengl/handles/shader_program_handle.hpp"
|
||||
#include "../metadata/shader_source_metadata.hpp"
|
||||
#include "shading/shader_program_requirements.hpp"
|
||||
|
||||
namespace zgl
|
||||
{
|
||||
|
||||
template<typename Capabilities>
|
||||
class shader_program_compiler
|
||||
{
|
||||
|
||||
public:
|
||||
public:
|
||||
|
||||
|
||||
// compile shader programs for given requirements
|
||||
@@ -22,21 +27,24 @@ class shader_program_compiler
|
||||
const dynamic_shader_source_store& shader_sources
|
||||
);
|
||||
|
||||
void compile_shaders(
|
||||
void compile_shader_programs(
|
||||
const dynamic_shader_source_store& shader_sources,
|
||||
std::span<const shader_program::metadata_type> required_capabilities,
|
||||
std::vector<shader_handle>& shader_handles
|
||||
std::span<const shading::shader_program_metadata> requirements,
|
||||
std::vector<shader_program_handle>& shader_handles
|
||||
);
|
||||
|
||||
// create metadata for all sources
|
||||
|
||||
// get
|
||||
|
||||
ś
|
||||
protected:
|
||||
|
||||
|
||||
|
||||
private:
|
||||
std::unordered_map<dynamic_shader_source_store::id_type, Capabilities> shader_capabilities;
|
||||
std::vector<shading::compiled_shader_metadata_type, shader_handle> shader_lookup;
|
||||
std::vector<shading::shader_program_metadata, shader_program_handle> shader_program_lookup;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user