]> git.tdb.fi Git - libs/gl.git/blobdiff - source/render/programdata.cpp
Overhaul texture management in rendering classes
[libs/gl.git] / source / render / programdata.cpp
index ec273c2277532c9f8a985341663ce9c4ea5836c6..0f641a4afbdf1f75dde9bb5803f5458f90abcc55 100644 (file)
@@ -154,7 +154,11 @@ bool ProgramData::validate_tag(Tag tag) const
 #endif
        {
                if(tied_program)
-                       tied_program->get_uniform_info(tag);
+               {
+                       const Program::UniformInfo &info = tied_program->get_uniform_info(tag);
+                       if(is_image(info.type))
+                               throw invalid_operation("ProgramData::uniform");
+               }
                return true;
        }
 #ifdef DEBUG
@@ -608,8 +612,12 @@ void ProgramData::update_block(SharedBlock &block, const Program::UniformBlockIn
 {
        const UInt8 *indices = block.get_uniform_indices();
        for(unsigned i=0; i<info.uniforms.size(); ++i)
-               if(indices[i]!=0xFF)
+       {
+               if(is_image(info.uniforms[i]->type))
+                       ;  // Temporarily ignore deprecated use of sampler uniforms in ProgramData
+               else if(indices[i]!=0xFF)
                        block.block->attach(*info.uniforms[i], *uniforms[indices[i]].value);
+       }
 }
 
 void ProgramData::apply() const