Krita Source Code Documentation
Loading...
Searching...
No Matches
KisOpenGLBufferCreationGuard.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2021 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
8
#include "
KisOpenGLBufferCreationGuard.h
"
9
10
#include "
kis_opengl.h
"
11
12
13
KisOpenGLBufferCreationGuard::KisOpenGLBufferCreationGuard
(QOpenGLBuffer *buffer,
int
size, QOpenGLBuffer::UsagePattern usagePattern)
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
22
if
(
KisOpenGL::supportsBufferMapping
()) {
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
}
31
32
KisOpenGLBufferCreationGuard::~KisOpenGLBufferCreationGuard
()
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
}
KisOpenGLBufferCreationGuard.h
KisOpenGL::supportsBufferMapping
static bool supportsBufferMapping()
Definition
kis_opengl.cpp:370
kis_opengl.h
KisOpenGLBufferCreationGuard::m_bufferPtr
quint8 * m_bufferPtr
Definition
KisOpenGLBufferCreationGuard.h:23
KisOpenGLBufferCreationGuard::~KisOpenGLBufferCreationGuard
~KisOpenGLBufferCreationGuard()
Definition
KisOpenGLBufferCreationGuard.cpp:32
KisOpenGLBufferCreationGuard::KisOpenGLBufferCreationGuard
KisOpenGLBufferCreationGuard(QOpenGLBuffer *buffer, int size, QOpenGLBuffer::UsagePattern usagePattern)
Definition
KisOpenGLBufferCreationGuard.cpp:13
KisOpenGLBufferCreationGuard::m_bufferIsMapped
bool m_bufferIsMapped
Definition
KisOpenGLBufferCreationGuard.h:24
KisOpenGLBufferCreationGuard::m_buffer
QOpenGLBuffer * m_buffer
Definition
KisOpenGLBufferCreationGuard.h:22
libs
ui
opengl
KisOpenGLBufferCreationGuard.cpp
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52