Merge pull request #466 from openscenegraph/revert-454-imagebinding

Revert "BindingTextureImage: a more complex condition for  _texture->apply ?"
This commit is contained in:
OpenSceneGraph git repository 2018-02-02 09:54:48 +00:00 committed by GitHub
commit a1132442ff
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 5 additions and 9 deletions

View File

@ -730,8 +730,6 @@ class OSG_EXPORT Texture : public osg::StateAttribute
void setShadowAmbient(float shadow_ambient) { _shadow_ambient = shadow_ambient; }
float getShadowAmbient() const { return _shadow_ambient; }
/** Gets the texture BufferData */
virtual const BufferData* getBufferData() const { return getImage(0); }
/** Sets the texture image for the specified face. */
virtual void setImage(unsigned int face, Image* image) = 0;
@ -741,7 +739,6 @@ class OSG_EXPORT Texture : public osg::StateAttribute
/** Gets the texture image for the specified face. */
virtual Image* getImage(unsigned int face) = 0;
/** Gets the const texture image for specified face. */
virtual const Image* getImage(unsigned int face) const = 0;

View File

@ -84,11 +84,11 @@ class OSG_EXPORT TextureBuffer : public Texture
/** Bind the texture buffer.*/
virtual void apply(State& state) const;
/** Set BufferData attached */
/** Set setBufferData attached */
void setBufferData(BufferData *bo);
/** Get BufferData attached */
virtual const BufferData * getBufferData() const { return _bufferData.get(); }
/** Set setBufferData attached */
const BufferData * getBufferData()const {return _bufferData.get();}
protected :
virtual ~TextureBuffer();

View File

@ -19,9 +19,8 @@ void BindImageTexture::apply(osg::State&state) const
{
if(_target.valid())
{
Texture::TextureObject *to = _target->getTextureObject( state.getContextID() );
GLBufferObject *globj = _target->getBufferData()->getBufferObject()->getGLBufferObject( state.getContextID() );
if( !globj || globj->isDirty() )
osg::Texture::TextureObject *to = _target->getTextureObject( state.getContextID() );
if( !to )
{
// _target never been applied yet
_target->apply(state);