X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Frender%2Fprogramdata.cpp;fp=source%2Frender%2Fprogramdata.cpp;h=65934d382ae29fad792c0b67031a406658b7b3fb;hb=1b23728908f5ec9beb08b2b70737c3903745fddc;hp=1ef013ddac86e5a6be72643fe711764f01428d30;hpb=b877c737bc5f759e6da25f886ad965e4a274cf2a;p=libs%2Fgl.git diff --git a/source/render/programdata.cpp b/source/render/programdata.cpp index 1ef013dd..65934d38 100644 --- a/source/render/programdata.cpp +++ b/source/render/programdata.cpp @@ -159,7 +159,7 @@ bool ProgramData::validate_tag(Tag tag) const { if(tied_program) { - const Program::UniformInfo &info = tied_program->get_uniform_info(tag); + const ReflectData::UniformInfo &info = tied_program->get_uniform_info(tag); if(is_image(info.type)) throw invalid_operation("ProgramData::uniform"); } @@ -473,25 +473,25 @@ int ProgramData::find_uniform_index(Tag tag) const vector::iterator ProgramData::get_program(const Program &prog) const { - Program::LayoutHash prog_hash = prog.get_uniform_layout_hash(); + ReflectData::LayoutHash prog_hash = prog.get_uniform_layout_hash(); auto i = lower_bound_member(programs, prog_hash, &ProgramBlock::prog_hash); if(i!=programs.end() && i->prog_hash==prog_hash) return i; - const vector &block_infos = prog.get_uniform_blocks(); + const vector &block_infos = prog.get_uniform_blocks(); unsigned index = i-programs.begin(); programs.insert(i, 1+block_infos.size(), ProgramBlock(prog_hash)); /* Block indices may change if new shared blocks need to be inserted. Store the hashes so they can be matched up later. */ - vector block_hashes; + vector block_hashes; block_hashes.reserve(programs.size()); for(const ProgramBlock &b: programs) block_hashes.push_back(b.block_index>=0 ? blocks[b.block_index].block_hash : 0); for(unsigned j=0; j::iterator ProgramData::get_program(const Progr return programs.begin()+index; } -void ProgramData::update_block_uniform_indices(SharedBlock &block, const Program::UniformBlockInfo &info) const +void ProgramData::update_block_uniform_indices(SharedBlock &block, const ReflectData::UniformBlockInfo &info) const { uint8_t *indices = block.indices.values; if(info.uniforms.size()>16) @@ -586,7 +586,7 @@ void ProgramData::update_block_uniform_indices(SharedBlock &block, const Program } } -void ProgramData::update_block(SharedBlock &block, const Program::UniformBlockInfo &info) const +void ProgramData::update_block(SharedBlock &block, const ReflectData::UniformBlockInfo &info) const { const uint8_t *indices = block.get_uniform_indices(); for(unsigned i=0; i::const_iterator ProgramData::prepare_program(c dirty = 0; } - const vector &block_infos = prog.get_uniform_blocks(); + const vector &block_infos = prog.get_uniform_blocks(); if(prog_begin->masks.dirty==ALL_ONES) { @@ -628,7 +628,7 @@ vector::const_iterator ProgramData::prepare_program(c Refresh uniform indices within the program's blocks. */ prog_begin->masks.used = 0; auto j = prog_begin+1; - for(const Program::UniformBlockInfo &b: block_infos) + for(const ReflectData::UniformBlockInfo &b: block_infos) { SharedBlock &shared = blocks[j->block_index]; if(shared.dirty==ALL_ONES) @@ -642,7 +642,7 @@ vector::const_iterator ProgramData::prepare_program(c // Update the contents of all dirty blocks. bool buffered_blocks_updated = false; auto j = prog_begin+1; - for(const Program::UniformBlockInfo &b: block_infos) + for(const ReflectData::UniformBlockInfo &b: block_infos) { SharedBlock &shared = blocks[j->block_index]; if(shared.dirty) @@ -684,7 +684,7 @@ vector::const_iterator ProgramData::prepare_program(c void ProgramData::apply(const Program &prog, PipelineState &state) const { auto prog_begin = prepare_program(prog); - Program::LayoutHash prog_hash = prog_begin->prog_hash; + ReflectData::LayoutHash prog_hash = prog_begin->prog_hash; for(auto i=prog_begin+1; (i!=programs.end() && i->prog_hash==prog_hash); ++i) if(i->block) { @@ -725,7 +725,7 @@ void ProgramData::TaggedUniform::replace_value(Uniform *v) } -ProgramData::SharedBlock::SharedBlock(Program::LayoutHash h): +ProgramData::SharedBlock::SharedBlock(ReflectData::LayoutHash h): block_hash(h), used(0), dirty(0), @@ -740,7 +740,7 @@ const uint8_t *ProgramData::SharedBlock::get_uniform_indices() const } -ProgramData::ProgramBlock::ProgramBlock(Program::LayoutHash h): +ProgramData::ProgramBlock::ProgramBlock(ReflectData::LayoutHash h): prog_hash(h), bind_point(-1), block_index(-1)