34 other.source_buffer =
nullptr;
35 other.float_buffer =
nullptr;
47 this->source_buffer = other.source_buffer;
50 other.source_buffer =
nullptr;
51 other.float_buffer =
nullptr;
80 "Expected float buffer to be scene_linear or data - if there are code paths where this "
81 "isn't the case we should convert those and add to the FloatBufferCache as well.");
87 if (item.source_buffer == image_buffer) {
89 return item.float_buffer;
106 buffer.is_used =
false;
113 if (item.source_buffer == image_buffer) {
122 for (
int64_t i = cache_.size() - 1;
i >= 0;
i--) {
123 if (!cache_[
i].is_used) {
124 cache_.remove_and_reorder(
i);
#define BLI_assert_msg(a, msg)
bool IMB_colormanagement_space_name_is_scene_linear(const char *name)
bool IMB_colormanagement_space_name_is_data(const char *name)
const char * IMB_colormanagement_get_float_colorspace(const ImBuf *ibuf)
float * IMB_steal_float_buffer(ImBuf *ibuf)
void IMB_assign_float_buffer(ImBuf *ibuf, float *buffer_data, ImBufOwnership ownership)
void IMB_freeImBuf(ImBuf *ibuf)
ImBuf * IMB_allocImBuf(unsigned int x, unsigned int y, unsigned char planes, unsigned int flags)
void IMB_float_from_byte(ImBuf *ibuf)
ImBufFloatBuffer float_buffer
Float buffer cache for image buffers.
ImBuf * cached_float_buffer(ImBuf *image_buffer)
void mark_used(const ImBuf *image_buffer)
void remove_unused_buffers()
FloatImageBuffer & operator=(FloatImageBuffer &&other) noexcept
FloatImageBuffer(ImBuf *source_buffer, ImBuf *float_buffer)
FloatImageBuffer(FloatImageBuffer &&other) noexcept
virtual ~FloatImageBuffer()