Krita Source Code Documentation
Loading...
Searching...
No Matches
DataBuffer Class Reference

#include <kis_texture_tile_update_info.h>

Public Member Functions

void allocate (int pixelSize)
 
quint8 * data () const
 
 DataBuffer (DataBuffer &&rhs)
 
 DataBuffer (int pixelSize, KisTextureTileInfoPoolSP pool)
 
 DataBuffer (KisTextureTileInfoPoolSP pool)
 
DataBufferoperator= (DataBuffer &&rhs)
 
int pixelSize () const
 
KisTextureTileInfoPoolSP pool () const
 
int size () const
 
void swap (DataBuffer &other)
 
 ~DataBuffer ()
 

Private Attributes

quint8 * m_data {nullptr}
 
int m_pixelSize
 
KisTextureTileInfoPoolSP m_pool
 

Detailed Description

A buffer object for temporary data needed during the update process.

  • the buffer is allocated from the common pool to avoid memory fragmentation
  • the buffer's lifetime defines the lifetime of the allocated chunk of memory, so you don't have to thing about freeing the memory

Definition at line 39 of file kis_texture_tile_update_info.h.

Constructor & Destructor Documentation

◆ DataBuffer() [1/3]

DataBuffer::DataBuffer ( KisTextureTileInfoPoolSP pool)
inline

Definition at line 42 of file kis_texture_tile_update_info.h.

43 : m_data(0),
44 m_pixelSize(0),
46 {
47 }
KisTextureTileInfoPoolSP pool() const
KisTextureTileInfoPoolSP m_pool

◆ DataBuffer() [2/3]

DataBuffer::DataBuffer ( int pixelSize,
KisTextureTileInfoPoolSP pool )
inline

Definition at line 49 of file kis_texture_tile_update_info.h.

50 : m_data(0),
51 m_pixelSize(0),
53 {
55 }
void allocate(int pixelSize)

References allocate(), and pixelSize().

◆ DataBuffer() [3/3]

DataBuffer::DataBuffer ( DataBuffer && rhs)
inline

Definition at line 57 of file kis_texture_tile_update_info.h.

58 : m_data(rhs.m_data),
60 m_pool(rhs.m_pool)
61 {
62 rhs.m_data = 0;
63 }

◆ ~DataBuffer()

DataBuffer::~DataBuffer ( )
inline

Definition at line 70 of file kis_texture_tile_update_info.h.

70 {
71 if (m_data) {
73 }
74 }

References m_data, m_pixelSize, and m_pool.

Member Function Documentation

◆ allocate()

void DataBuffer::allocate ( int pixelSize)
inline

Definition at line 76 of file kis_texture_tile_update_info.h.

76 {
77 Q_ASSERT(!m_data);
78
80 m_data = m_pool->malloc(m_pixelSize);
81 }

References m_data, m_pixelSize, m_pool, and pixelSize().

◆ data()

quint8 * DataBuffer::data ( ) const
inline

Definition at line 83 of file kis_texture_tile_update_info.h.

83 {
84 return m_data;
85 }

References m_data.

◆ operator=()

DataBuffer & DataBuffer::operator= ( DataBuffer && rhs)
inline

Definition at line 65 of file kis_texture_tile_update_info.h.

65 {
66 swap(rhs);
67 return *this;
68 }
void swap(DataBuffer &other)

References swap().

◆ pixelSize()

int DataBuffer::pixelSize ( ) const
inline

Definition at line 101 of file kis_texture_tile_update_info.h.

101 {
102 return m_pixelSize;
103 }

References m_pixelSize.

◆ pool()

KisTextureTileInfoPoolSP DataBuffer::pool ( ) const
inline

Definition at line 97 of file kis_texture_tile_update_info.h.

97 {
98 return m_pool;
99 }

References m_pool.

◆ size()

int DataBuffer::size ( ) const
inline

Definition at line 93 of file kis_texture_tile_update_info.h.

93 {
94 return m_data ? m_pool->chunkSize(m_pixelSize) : 0;
95 }

References m_data, m_pixelSize, and m_pool.

◆ swap()

void DataBuffer::swap ( DataBuffer & other)
inline

Definition at line 87 of file kis_texture_tile_update_info.h.

87 {
88 std::swap(other.m_pixelSize, m_pixelSize);
89 std::swap(other.m_data, m_data);
90 std::swap(other.m_pool, m_pool);
91 }

References m_data, m_pixelSize, and m_pool.

Member Data Documentation

◆ m_data

quint8* DataBuffer::m_data {nullptr}
private

Definition at line 108 of file kis_texture_tile_update_info.h.

108{nullptr};

◆ m_pixelSize

int DataBuffer::m_pixelSize
private

Definition at line 109 of file kis_texture_tile_update_info.h.

◆ m_pool

KisTextureTileInfoPoolSP DataBuffer::m_pool
private

Definition at line 110 of file kis_texture_tile_update_info.h.


The documentation for this class was generated from the following file: