Krita Source Code Documentation
Loading...
Searching...
No Matches
KisOpenGLBufferCircularStorage::BufferBinder Struct Reference

#include <KisOpenGLBufferCircularStorage.h>

Public Member Functions

 BufferBinder (BufferBinder &&)=delete
 
 BufferBinder (const BufferBinder &)=delete
 
 BufferBinder (KisOpenGLBufferCircularStorage *bufferStorage, const void **dataPtr, int dataSize)
 
BufferBinderoperator= (BufferBinder &&)=delete
 
BufferBinderoperator= (const BufferBinder &)=delete
 
 ~BufferBinder ()
 

Private Attributes

QOpenGLBuffer * m_buffer = nullptr
 

Detailed Description

Definition at line 21 of file KisOpenGLBufferCircularStorage.h.

Constructor & Destructor Documentation

◆ BufferBinder() [1/3]

KisOpenGLBufferCircularStorage::BufferBinder::BufferBinder ( KisOpenGLBufferCircularStorage * bufferStorage,
const void ** dataPtr,
int dataSize )

When bufferStorage is non-null, fetches the next buffer from the circular storage, binds it and loads the provided data into the buffer. After loading the data pointer *dataPtr is reset to null to signal that glTexImage2D should not be provided with any pointer.

When bufferStorage is null, the binder does nothing, the data pointer *dataPtris kept unchanged.

Definition at line 14 of file KisOpenGLBufferCircularStorage.cpp.

14 {
15 if (bufferStorage) {
16 m_buffer = bufferStorage->getNextBuffer();
17 m_buffer->bind();
18 m_buffer->write(0, *dataPtr, dataSize);
19 *dataPtr = nullptr;
20 }
21
22}

References KisOpenGLBufferCircularStorage::getNextBuffer(), and m_buffer.

◆ ~BufferBinder()

KisOpenGLBufferCircularStorage::BufferBinder::~BufferBinder ( )

Definition at line 24 of file KisOpenGLBufferCircularStorage.cpp.

24 {
25 if (m_buffer) {
26 m_buffer->release();
27
30 }
31 }
32}
static bool useTextureBufferInvalidation()
static void glInvalidateBufferData(uint buffer)

References KisOpenGL::glInvalidateBufferData(), and KisOpenGL::useTextureBufferInvalidation().

◆ BufferBinder() [2/3]

KisOpenGLBufferCircularStorage::BufferBinder::BufferBinder ( const BufferBinder & )
delete

◆ BufferBinder() [3/3]

KisOpenGLBufferCircularStorage::BufferBinder::BufferBinder ( BufferBinder && )
delete

Member Function Documentation

◆ operator=() [1/2]

BufferBinder & KisOpenGLBufferCircularStorage::BufferBinder::operator= ( BufferBinder && )
delete

◆ operator=() [2/2]

BufferBinder & KisOpenGLBufferCircularStorage::BufferBinder::operator= ( const BufferBinder & )
delete

Member Data Documentation

◆ m_buffer

QOpenGLBuffer* KisOpenGLBufferCircularStorage::BufferBinder::m_buffer = nullptr
private

Definition at line 43 of file KisOpenGLBufferCircularStorage.h.


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