Krita Source Code Documentation
Loading...
Searching...
No Matches
KisOpenGLBufferCreationGuard Struct Reference

#include <KisOpenGLBufferCreationGuard.h>

Public Member Functions

quint8 * data ()
 
 KisOpenGLBufferCreationGuard (QOpenGLBuffer *buffer, int size, QOpenGLBuffer::UsagePattern usagePattern)
 
 ~KisOpenGLBufferCreationGuard ()
 

Private Attributes

QOpenGLBuffer * m_buffer
 
bool m_bufferIsMapped = false
 
quint8 * m_bufferPtr = 0
 

Detailed Description

Definition at line 13 of file KisOpenGLBufferCreationGuard.h.

Constructor & Destructor Documentation

◆ KisOpenGLBufferCreationGuard()

KisOpenGLBufferCreationGuard::KisOpenGLBufferCreationGuard ( QOpenGLBuffer * buffer,
int size,
QOpenGLBuffer::UsagePattern usagePattern )

Definition at line 13 of file KisOpenGLBufferCreationGuard.cpp.

14{
15 m_buffer = buffer;
16
17 m_buffer->create();
18 m_buffer->setUsagePattern(usagePattern);
19 m_buffer->bind();
20 m_buffer->allocate(size);
21
23 m_bufferPtr = reinterpret_cast<quint8*>(m_buffer->map(QOpenGLBuffer::WriteOnly));
24 m_bufferIsMapped = true;
25 }
26
27 if (!m_bufferPtr) {
28 m_bufferPtr = new quint8[size];
29 }
30}
static bool supportsBufferMapping()
int size(const Forest< T > &forest)
Definition KisForest.h:1232

References m_buffer, m_bufferIsMapped, m_bufferPtr, and KisOpenGL::supportsBufferMapping().

◆ ~KisOpenGLBufferCreationGuard()

KisOpenGLBufferCreationGuard::~KisOpenGLBufferCreationGuard ( )

Definition at line 32 of file KisOpenGLBufferCreationGuard.cpp.

33{
34 if (m_bufferIsMapped) {
35 m_buffer->unmap();
36 } else {
37 m_buffer->write(0, m_bufferPtr, m_buffer->size());
38 delete[] m_bufferPtr;
39 }
40 m_buffer->release();
41}

References m_buffer, m_bufferIsMapped, and m_bufferPtr.

Member Function Documentation

◆ data()

quint8 * KisOpenGLBufferCreationGuard::data ( )
inline

Definition at line 17 of file KisOpenGLBufferCreationGuard.h.

17 {
18 return m_bufferPtr;
19 }

References m_bufferPtr.

Member Data Documentation

◆ m_buffer

QOpenGLBuffer* KisOpenGLBufferCreationGuard::m_buffer
private

Definition at line 22 of file KisOpenGLBufferCreationGuard.h.

◆ m_bufferIsMapped

bool KisOpenGLBufferCreationGuard::m_bufferIsMapped = false
private

Definition at line 24 of file KisOpenGLBufferCreationGuard.h.

◆ m_bufferPtr

quint8* KisOpenGLBufferCreationGuard::m_bufferPtr = 0
private

Definition at line 23 of file KisOpenGLBufferCreationGuard.h.


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