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

#include <KisOptimizedByteArray.h>

Classes

struct  MemoryAllocator
 
struct  PooledMemoryAllocator
 
struct  Private
 

Public Types

typedef QSharedPointer< MemoryAllocatorMemoryAllocatorSP
 
typedef std::pair< quint8 *, int > MemoryChunk
 

Public Member Functions

const quint8 * constData () const
 
MemoryAllocatorSP customMemoryAllocator () const
 
quint8 * data ()
 
void fill (quint8 value, int size=-1)
 
bool isEmpty () const
 
 KisOptimizedByteArray (const KisOptimizedByteArray &rhs)
 
 KisOptimizedByteArray (MemoryAllocatorSP allocator=MemoryAllocatorSP())
 
KisOptimizedByteArrayoperator= (const KisOptimizedByteArray &rhs)
 
void resize (int size)
 
int size () const
 
 ~KisOptimizedByteArray ()
 

Private Attributes

QSharedDataPointer< Privatem_d
 

Detailed Description

Definition at line 21 of file KisOptimizedByteArray.h.

Member Typedef Documentation

◆ MemoryAllocatorSP

◆ MemoryChunk

typedef std::pair<quint8*, int> KisOptimizedByteArray::MemoryChunk

Definition at line 24 of file KisOptimizedByteArray.h.

Constructor & Destructor Documentation

◆ KisOptimizedByteArray() [1/2]

KisOptimizedByteArray::KisOptimizedByteArray ( MemoryAllocatorSP allocator = MemoryAllocatorSP())

Definition at line 167 of file KisOptimizedByteArray.cpp.

168 : m_d(new Private(allocator))
169{
170}
QSharedDataPointer< Private > m_d

◆ KisOptimizedByteArray() [2/2]

KisOptimizedByteArray::KisOptimizedByteArray ( const KisOptimizedByteArray & rhs)

Definition at line 172 of file KisOptimizedByteArray.cpp.

173 : m_d(rhs.m_d)
174{
175}

◆ ~KisOptimizedByteArray()

KisOptimizedByteArray::~KisOptimizedByteArray ( )

Definition at line 183 of file KisOptimizedByteArray.cpp.

184{
185}

Member Function Documentation

◆ constData()

const quint8 * KisOptimizedByteArray::constData ( ) const

Definition at line 192 of file KisOptimizedByteArray.cpp.

193{
194 return const_cast<const Private*>(m_d.constData())->data.first;
195}

References data(), and m_d.

◆ customMemoryAllocator()

KisOptimizedByteArray::MemoryAllocatorSP KisOptimizedByteArray::customMemoryAllocator ( ) const

Definition at line 224 of file KisOptimizedByteArray.cpp.

225{
226 return m_d->storedAllocator;
227}

References m_d.

◆ data()

quint8 * KisOptimizedByteArray::data ( )

Definition at line 187 of file KisOptimizedByteArray.cpp.

188{
189 return const_cast<Private*>(m_d.data())->data.first;
190}

References data(), and m_d.

◆ fill()

void KisOptimizedByteArray::fill ( quint8 value,
int size = -1 )

Definition at line 208 of file KisOptimizedByteArray.cpp.

209{
210 resize(size);
211 memset(m_d->data.first, value, m_d->dataSize);
212}
float value(const T *src, size_t ch)

References m_d, resize(), size(), and value().

◆ isEmpty()

bool KisOptimizedByteArray::isEmpty ( ) const

Definition at line 219 of file KisOptimizedByteArray.cpp.

220{
221 return !m_d->dataSize;
222}

References m_d.

◆ operator=()

KisOptimizedByteArray & KisOptimizedByteArray::operator= ( const KisOptimizedByteArray & rhs)

Definition at line 177 of file KisOptimizedByteArray.cpp.

178{
179 m_d = rhs.m_d;
180 return *this;
181}

References m_d.

◆ resize()

void KisOptimizedByteArray::resize ( int size)

Definition at line 197 of file KisOptimizedByteArray.cpp.

198{
199 if (size == m_d->dataSize) return;
200
201 if (size > m_d->data.second) {
202 m_d->allocator->free(m_d->data);
203 m_d->data = m_d->allocator->alloc(size);
204 }
205 m_d->dataSize = size;
206}

References m_d, and size().

◆ size()

int KisOptimizedByteArray::size ( ) const

Definition at line 214 of file KisOptimizedByteArray.cpp.

215{
216 return m_d->dataSize;
217}

References m_d.

Member Data Documentation

◆ m_d

QSharedDataPointer<Private> KisOptimizedByteArray::m_d
private

Definition at line 68 of file KisOptimizedByteArray.h.


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