class Buffer;
class BufferBackedUniformBlock;
+class PipelineState;
class UniformBlock;
struct Color;
UniformBlock *block;
union
{
- UInt8 type_flag;
- UInt8 values[16];
+ std::uint8_t type_flag;
+ std::uint8_t values[16];
struct
{
- UInt8 type_flag;
- UInt8 *values;
+ std::uint8_t type_flag;
+ std::uint8_t *values;
} dynamic;
} indices;
SharedBlock(Program::LayoutHash);
- const UInt8 *get_uniform_indices() const;
+ const std::uint8_t *get_uniform_indices() const;
};
struct ProgramBlock
mutable BufferBackedUniformBlock *last_buffer_block;
mutable Buffer *buffer;
mutable Mask dirty;
+ std::string debug_name;
public:
ProgramData(const Program * = 0);
void update_block_uniform_indices(SharedBlock &, const Program::UniformBlockInfo &) const;
void update_block(SharedBlock &, const Program::UniformBlockInfo &) const;
+ std::vector<ProgramBlock>::const_iterator prepare_program(const Program &) const;
public:
- /** Applies uniform blocks for the currently bound program, creating them
- if needed. */
- void apply() const;
+ void apply(const Program &, PipelineState &) const;
+
+ void set_debug_name(const std::string &);
};
template<typename T, unsigned N>