3#include "MRMesh/MRMeshFwd.h"
28 if ( data_ ==
nullptr )
44 [[nodiscard]] std::size_t
size() const noexcept
46 return dirty_ ? glSize_ : 0;
49 [[nodiscard]] std::size_t
glSize() const noexcept
54 [[nodiscard]]
bool dirty() const noexcept
61 std::size_t glSize_{ 0 };
74 auto memSize =
sizeof( T ) * glSize;
75 if ( buffer_.size() < memSize )
76 buffer_.resize( memSize );
78 return {
reinterpret_cast<T*
>( buffer_.data() ), glSize, dirty };
81 size_t heapBytes()
const {
return buffer_.heapBytes(); }
std::vector<V>-like container that is 1) resized without initialization of its elements,...
Definition MRBuffer.h:58
provides access to shared buffer with type casting
Definition MRRenderHelpers.h:19
provides shared buffer for loading different types of data to GL memory
Definition MRRenderHelpers.h:67
std::size_t size() const noexcept
returns actual buffer size
Definition MRRenderHelpers.h:44
T * data() const noexcept
returns pointer to buffer data
Definition MRRenderHelpers.h:39
MRVIEWER_API Vector2i calcTextureRes(int bufferSize, int maxTextWidth)
calc texture resolution, to fit MAX_TEXTURE_SIZE, and have minimal empty pixels
RenderBufferRef()=default
RenderBufferRef(T *data, std::size_t glSize, bool dirty)
Definition MRRenderHelpers.h:23
size_t heapBytes() const
Definition MRRenderHelpers.h:81
std::size_t glSize() const noexcept
returns number of elements that are about to be loaded or already loaded to GL memory
Definition MRRenderHelpers.h:49
RenderBufferRef< T > prepareBuffer(std::size_t glSize, bool dirty=true)
Definition MRRenderHelpers.h:70
bool dirty() const noexcept
returns true if associated data were updated
Definition MRRenderHelpers.h:54
T & operator[](std::size_t i) const noexcept
returns reference to i-th element
Definition MRRenderHelpers.h:33
only for bindings generation
Definition MRCameraOrientationPlugin.h:8