#ifndef MSP_GL_PROGRAMDATA_H_
#define MSP_GL_PROGRAMDATA_H_
-#include <map>
#include <stdexcept>
#include <msp/datafile/objectloader.h>
#include "datatype.h"
};
class Buffer;
-class BufferBackedUniformBlock;
class PipelineState;
class Program;
class UniformBlock;
struct TaggedUniform
{
Tag tag;
- DataType type;
- unsigned array_size;
- unsigned data_offset;
- unsigned data_size;
-
- TaggedUniform();
+ DataType type = VOID;
+ unsigned array_size = 0;
+ unsigned data_offset = 0;
+ unsigned data_size = 0;
};
struct SharedBlock
const Program *tied_program;
std::vector<TaggedUniform> uniforms;
std::vector<char> uniform_data;
- unsigned generation;
+ unsigned generation = 0;
mutable std::vector<SharedBlock> blocks;
mutable std::vector<ProgramBlock> programs;
- mutable UniformBlock *last_buffer_block;
- mutable Buffer *buffer;
- mutable Mask dirty;
+ mutable UniformBlock *last_buffer_block = 0;
+ mutable Buffer *buffer = 0;
+ mutable Mask dirty = 0;
std::string debug_name;
public: