Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_texture_tile.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2010 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef KIS_TEXTURE_TILE_H_
7#define KIS_TEXTURE_TILE_H_
8
9#include <QRect>
10#include <QRectF>
11// no forward-declaration, used to get GL* primitive types defined
12#include <QOpenGLFunctions>
13
14#include "kis_opengl.h"
15
16
19class QOpenGLBuffer;
20
21
23
24 // real width and height
25 int width {0};
26 int height {0};
27
28 // width and height minus border padding?
31
32 // size of the border padding
33 int border {0};
34
35 GLint internalFormat {0};
36 GLint format {0};
37 GLint type {0};
38};
39
41{
42public:
43 KisTextureTile(const QRect &imageRect, const KisGLTexturesInfo *texturesInfo,
44 const QByteArray &fillData, KisOpenGL::FilterMode mode,
45 KisOpenGLBufferCircularStorage *bufferStorage, int numMipmapLevels, QOpenGLFunctions *f);
47
49 m_bufferStorage = bufferStorage;
50 }
51
52 void setNumMipmapLevels(int num) {
54 }
55
56 void update(const KisTextureTileUpdateInfo &updateInfo, bool blockMipmapRegeneration);
57
58 inline QRect tileRectInImagePixels() {
60 }
61
62 inline QRect textureRectInImagePixels() {
64 }
65
66 inline QRectF tileRectInTexturePixels() {
68 }
69
70 QRectF imageRectInTexturePixels(const QRect &imageRect) const;
71
77 int bindToActiveTexture(bool blockMipmapRegeneration);
78
79private:
80 inline void setTextureParameters();
81 inline void restoreTextureParameters();
82
84 void setPreparedLodPlane(int lod);
85 void regenerateMipmap();
86
88
97 QOpenGLFunctions *f;
100 Q_DISABLE_COPY(KisTextureTile)
101};
102
103#endif /* KIS_TEXTURE_TILE_H_ */
104
QRect textureRectInImagePixels()
QRect m_textureRectInImagePixels
const KisGLTexturesInfo * m_texturesInfo
QOpenGLFunctions * f
void restoreTextureParameters()
void setNumMipmapLevels(int num)
QRect tileRectInImagePixels()
QRectF m_tileRectInTexturePixels
QRectF tileRectInTexturePixels()
void setPreparedLodPlane(int lod)
KisOpenGL::FilterMode m_filter
KisTextureTile(const QRect &imageRect, const KisGLTexturesInfo *texturesInfo, const QByteArray &fillData, KisOpenGL::FilterMode mode, KisOpenGLBufferCircularStorage *bufferStorage, int numMipmapLevels, QOpenGLFunctions *f)
void update(const KisTextureTileUpdateInfo &updateInfo, bool blockMipmapRegeneration)
void setBufferStorage(KisOpenGLBufferCircularStorage *bufferStorage)
void setNeedsMipmapRegeneration()
int bindToActiveTexture(bool blockMipmapRegeneration)
QRect m_tileRectInImagePixels
KisOpenGLBufferCircularStorage * m_bufferStorage
QRectF imageRectInTexturePixels(const QRect &imageRect) const
void fillData(KisPaintDeviceSP pd, int w, int h, QDataStream &stream)