#pragma once #include "../../Result.hpp" #include "../../types.hpp" #include "../../utils.hpp" #include "Uniform.hpp" #include "DeviceMemory.hpp" #include #include #include namespace amalgine { class ShaderFrame { DISABLE_COPY(ShaderFrame) friend class ShaderProgram; public: ~ShaderFrame(); ShaderFrame(ShaderFrame &&other); ShaderFrame& operator=(ShaderFrame &&other); DeviceMemory* get_input_by_name(const char *name); Result get_uniform_by_name(const char *name); void draw(); private: ShaderFrame(u32 shader_program_id); private: u32 shader_program_id; u32 vertex_array_object_id; // TODO: Use a const char* as a key instead std::map> shader_inputs; }; }