Added FrameBufferAttachment::resizeGLObjectBuffers(..) and releaseGLObjects(..) methods
This commit is contained in:
parent
7dbcb4b7d3
commit
079cf6c090
@ -304,6 +304,9 @@ class OSG_EXPORT FrameBufferAttachment
|
|||||||
unsigned int getTexture3DZOffset() const;
|
unsigned int getTexture3DZOffset() const;
|
||||||
unsigned int getTextureArrayLayer() const;
|
unsigned int getTextureArrayLayer() const;
|
||||||
|
|
||||||
|
void resizeGLObjectBuffers(unsigned int maxSize);
|
||||||
|
void releaseGLObjects(osg::State* = 0) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// use the Pimpl idiom to avoid dependency from
|
// use the Pimpl idiom to avoid dependency from
|
||||||
// all Texture* headers
|
// all Texture* headers
|
||||||
|
@ -565,6 +565,18 @@ unsigned int FrameBufferAttachment::getTextureArrayLayer() const
|
|||||||
return _ximpl->zoffset;
|
return _ximpl->zoffset;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FrameBufferAttachment::resizeGLObjectBuffers(unsigned int maxSize)
|
||||||
|
{
|
||||||
|
if (_ximpl->renderbufferTarget.valid()) _ximpl->renderbufferTarget->resizeGLObjectBuffers(maxSize);
|
||||||
|
if (_ximpl->textureTarget.valid()) _ximpl->textureTarget->resizeGLObjectBuffers(maxSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FrameBufferAttachment::releaseGLObjects(osg::State* state) const
|
||||||
|
{
|
||||||
|
if (_ximpl->renderbufferTarget.valid()) _ximpl->renderbufferTarget->releaseGLObjects(state);
|
||||||
|
if (_ximpl->textureTarget.valid()) _ximpl->textureTarget->releaseGLObjects(state);
|
||||||
|
}
|
||||||
|
|
||||||
/**************************************************************************
|
/**************************************************************************
|
||||||
* FrameBufferObject
|
* FrameBufferObject
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
@ -594,6 +606,11 @@ void FrameBufferObject::resizeGLObjectBuffers(unsigned int maxSize)
|
|||||||
_fboID.resize(maxSize);
|
_fboID.resize(maxSize);
|
||||||
_unsupported.resize(maxSize);
|
_unsupported.resize(maxSize);
|
||||||
_fboID.resize(maxSize);
|
_fboID.resize(maxSize);
|
||||||
|
|
||||||
|
for(AttachmentMap::iterator itr = _attachments.begin(); itr != _attachments.end(); ++itr)
|
||||||
|
{
|
||||||
|
itr->second.resizeGLObjectBuffers(maxSize);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FrameBufferObject::releaseGLObjects(osg::State* state) const
|
void FrameBufferObject::releaseGLObjects(osg::State* state) const
|
||||||
@ -618,6 +635,11 @@ void FrameBufferObject::releaseGLObjects(osg::State* state) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(AttachmentMap::const_iterator itr = _attachments.begin(); itr != _attachments.end(); ++itr)
|
||||||
|
{
|
||||||
|
itr->second.releaseGLObjects(state);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void FrameBufferObject::setAttachment(BufferComponent attachment_point, const FrameBufferAttachment &attachment)
|
void FrameBufferObject::setAttachment(BufferComponent attachment_point, const FrameBufferAttachment &attachment)
|
||||||
|
Loading…
Reference in New Issue
Block a user