|
Blender V4.3
|
Float buffer cache for image buffers. More...
#include <image_buffer_cache.hh>
Public Member Functions | |
| ImBuf * | cached_float_buffer (ImBuf *image_buffer) |
| void | reset_usage_flags () |
| void | mark_used (const ImBuf *image_buffer) |
| void | remove_unused_buffers () |
| void | clear () |
Float buffer cache for image buffers.
Image buffers might not have float buffers which are required for the image engine. Image buffers are not allowed to have both a float buffer and a byte buffer as some functionality doesn't know what to do.
For this reason we store the float buffer in separate image buffers. The FloatBufferCache keep track of the cached buffers and if they are still used.
Definition at line 66 of file image_buffer_cache.hh.
|
inline |
Definition at line 71 of file image_buffer_cache.hh.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), BLI_assert_msg, ImBufFloatBuffer::data, ImBuf::float_buffer, IB_TAKE_OWNERSHIP, IMB_allocImBuf(), IMB_assign_float_buffer(), IMB_colormanagement_get_float_colorspace(), IMB_colormanagement_space_name_is_scene_linear(), IMB_float_from_rect(), IMB_steal_float_buffer(), ImBuf::planes, ImBuf::x, and ImBuf::y.
|
inline |
Definition at line 127 of file image_buffer_cache.hh.
References blender::Vector< T, InlineBufferCapacity, Allocator >::clear().
Referenced by blender::draw::image_engine::IMAGE_InstanceData::update_image_usage().
|
inline |
Definition at line 108 of file image_buffer_cache.hh.
|
inline |
Definition at line 118 of file image_buffer_cache.hh.
References blender::Vector< T, InlineBufferCapacity, Allocator >::remove_and_reorder(), and blender::Vector< T, InlineBufferCapacity, Allocator >::size().
Referenced by blender::draw::image_engine::ScreenSpaceDrawingMode< TextureMethod >::draw_finish().
|
inline |
Definition at line 101 of file image_buffer_cache.hh.
Referenced by blender::draw::image_engine::ScreenSpaceDrawingMode< TextureMethod >::image_sync().