30 const std::vector<ShaderStageIOSlot>& inputs,
31 const std::vector<ShaderStageBufferLayout>& layouts);
36 size_t vertex_offset)
const;
49 struct VertexAttribPointer {
52 GLenum
type = GL_FLOAT;
53 GLenum normalized = GL_FALSE;
57 std::vector<VertexAttribPointer> vertex_attrib_arrays_;
59 std::unordered_map<std::string, GLint> uniform_locations_;
61 using BindingMap = std::unordered_map<std::string, std::vector<GLint>>;
62 BindingMap binding_map_ = {};
64 const std::vector<GLint>& ComputeUniformLocations(
65 const ShaderMetadata* metadata);
67 GLint ComputeTextureLocation(
const ShaderMetadata* metadata);
69 bool BindUniformBuffer(
const ProcTableGLES& gl,
73 std::optional<size_t> BindTextures(
const ProcTableGLES& gl,
74 const Bindings& bindings,
76 size_t unit_start_index = 0);
static const uint8_t buffer[]