Krita Source Code Documentation
Loading...
Searching...
No Matches
KisOpenGLBufferCircularStorage.h
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#ifndef KISOPENGLBUFFERCIRCULARSTORAGE_H
8#define KISOPENGLBUFFERCIRCULARSTORAGE_H
9
10#include <QScopedPointer>
11#include <QOpenGLBuffer>
12
19{
20public:
22 {
34 BufferBinder(KisOpenGLBufferCircularStorage *bufferStorage, const void **dataPtr, int dataSize);
36
37 BufferBinder(const BufferBinder &) = delete;
41
42 private:
43 QOpenGLBuffer *m_buffer = nullptr;
44 };
45
47 KisOpenGLBufferCircularStorage(QOpenGLBuffer::Type type);
49
54
55 void allocate(int numBuffers, int bufferSize);
56 QOpenGLBuffer* getNextBuffer();
57 bool isValid() const;
58 int size() const;
59
60 void reset();
61
63
64private:
65 void addBuffersImpl(size_t buffersToAdd, int bufferSize);
66
67 struct Private;
68 const QScopedPointer<Private> m_d;
69};
70
71#endif // KISOPENGLBUFFERCIRCULARSTORAGE_H
BufferBinder & operator=(const BufferBinder &)=delete
BufferBinder(KisOpenGLBufferCircularStorage *bufferStorage, const void **dataPtr, int dataSize)
BufferBinder & operator=(BufferBinder &&)=delete
BufferBinder(const BufferBinder &)=delete
void addBuffersImpl(size_t buffersToAdd, int bufferSize)
KisOpenGLBufferCircularStorage(const KisOpenGLBufferCircularStorage &)=delete
KisOpenGLBufferCircularStorage & operator=(KisOpenGLBufferCircularStorage &&)=delete
KisOpenGLBufferCircularStorage & operator=(const KisOpenGLBufferCircularStorage &)=delete
KisOpenGLBufferCircularStorage(KisOpenGLBufferCircularStorage &&)=delete
void allocate(int numBuffers, int bufferSize)