Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qopengltexture_p.h
Go to the documentation of this file.
1// Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB).
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QABSTRACTOPENGLTEXTURE_P_H
5#define QABSTRACTOPENGLTEXTURE_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#ifndef QT_NO_OPENGL
19
20#include <QtOpenGL/qtopenglglobal.h>
21#include "private/qobject_p.h"
22#include "qopengltexture.h"
23#include "qopengl.h"
24
25#include <cmath>
26
27namespace {
28inline double qLog2(const double x)
29{
30 return std::log(x) / std::log(2.0);
31}
32}
33
35
36class QOpenGLContext;
39
41{
42public:
44 QOpenGLTexture *qq);
46
47 Q_DECLARE_PUBLIC(QOpenGLTexture)
48
51
52 bool create();
53 void destroy();
54
55 void bind();
56 void bind(uint unit, QOpenGLTexture::TextureUnitReset reset = QOpenGLTexture::DontResetTextureUnit);
57 void release();
58 void release(uint unit, QOpenGLTexture::TextureUnitReset reset = QOpenGLTexture::DontResetTextureUnit);
59 bool isBound() const;
60 bool isBound(uint unit) const;
61
62 void allocateStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType);
63 void allocateMutableStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType);
65 void setData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace,
66 QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType,
67 const void *data, const QOpenGLPixelTransferOptions * const options);
68 void setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth,
69 int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace,
70 QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType,
71 const void *data, const QOpenGLPixelTransferOptions * const options);
72 void setCompressedData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace,
73 int dataSize, const void *data,
74 const QOpenGLPixelTransferOptions * const options);
75
76
77 void setWrapMode(QOpenGLTexture::WrapMode mode);
78 void setWrapMode(QOpenGLTexture::CoordinateDirection direction, QOpenGLTexture::WrapMode mode);
79 QOpenGLTexture::WrapMode wrapMode(QOpenGLTexture::CoordinateDirection direction) const;
80
82 int minimumMipmapLevel, int maximumMipmapLevel,
83 int minimumLayer, int maximumLayer) const;
84
85 int evaluateMipLevels() const;
86
87 inline int maximumMipLevelCount() const
88 {
89 return 1 + std::floor(qLog2(qMax(dimensions[0], qMax(dimensions[1], dimensions[2]))));
90 }
91
92 static inline int mipLevelSize(int mipLevel, int baseLevelSize)
93 {
94 return std::floor(double(qMax(1, baseLevelSize >> mipLevel)));
95 }
96
97 bool isUsingImmutableStorage() const;
98
110 int faces;
111
114
117
122
131
135
138
139 QOpenGLTexture::Features features;
140};
141
143
144#undef Q_CALL_MEMBER_FUNCTION
145
146#endif // QT_NO_OPENGL
147
148#endif // QABSTRACTOPENGLTEXTURE_P_H
\inmodule QtGui
The QOpenGLFunctions class provides cross-platform access to the OpenGL ES 2.0 API.
QOpenGLTexture::BindingTarget bindingTarget
QOpenGLTexture::SwizzleValue swizzleMask[4]
QOpenGLTexture::WrapMode wrapMode(QOpenGLTexture::CoordinateDirection direction) const
void allocateStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType)
QOpenGLTexture::Filter minFilter
void setData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options)
QOpenGLFunctions * functions
bool isUsingImmutableStorage() const
QOpenGLTexture::Filter magFilter
QOpenGLTexturePrivate(QOpenGLTexture::Target textureTarget, QOpenGLTexture *qq)
QOpenGLTexture::WrapMode wrapModes[3]
QOpenGLTexture::Target target
void resetFuncs(QOpenGLTextureHelper *funcs)
void allocateMutableStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType)
void setWrapMode(QOpenGLTexture::WrapMode mode)
int maximumMipLevelCount() const
QOpenGLTexture * q_ptr
QOpenGLTexture::DepthStencilMode depthStencilMode
QOpenGLTexture::Features features
QOpenGLTexture * createTextureView(QOpenGLTexture::Target target, QOpenGLTexture::TextureFormat viewFormat, int minimumMipmapLevel, int maximumMipmapLevel, int minimumLayer, int maximumLayer) const
QOpenGLTexture::ComparisonFunction comparisonFunction
void setCompressedData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options)
static int mipLevelSize(int mipLevel, int baseLevelSize)
QOpenGLTextureHelper * texFuncs
QOpenGLTexture::ComparisonMode comparisonMode
QOpenGLContext * context
QOpenGLTexture::TextureFormat format
QOpenGLTexture::TextureFormatClass formatClass
\inmodule QtGui
TextureFormat
This enum defines the possible texture formats.
Filter
This enum defines the filtering parameters for a QOpenGLTexture object.
WrapMode
This enum defines the possible texture coordinate wrapping modes.
SwizzleValue
This enum defines the possible mask values for texture swizzling.
BindingTarget
This enum defines the possible binding targets of texture units.
Target
This enum defines the texture target of a QOpenGLTexture object.
static VulkanServerBufferGlFunctions * funcs
direction
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
EGLOutputLayerEXT layer
constexpr const T & qMax(const T &a, const T &b)
Definition qminmax.h:42
GLint GLint GLint GLint GLint x
[0]
GLint GLenum GLsizei GLsizei GLsizei depth
GLenum mode
GLint GLsizei GLsizei height
GLenum GLsizei dataSize
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLint GLsizei width
GLenum target
GLboolean reset
#define GLuint
unsigned int uint
Definition qtypes.h:34
Target
Definition tracegen.cpp:14