Auf dieser Seite

QOpenGLTexture Class

Die Klasse „QOpenGLTexture“ kapselt ein OpenGL-Texturobjekt. Mehr...

Header: #include <QOpenGLTexture>

Öffentliche Typen

enum BindingTarget { BindingTarget1D, BindingTarget1DArray, BindingTarget2D, BindingTarget2DArray, BindingTarget3D, …, BindingTargetBuffer }
enum ComparisonFunction { CompareLessEqual, CompareGreaterEqual, CompareLess, CompareGreater, CompareEqual, …, CompareNever }
enum ComparisonMode { CompareRefToTexture, CompareNone }
enum CoordinateDirection { DirectionS, DirectionT, DirectionR }
enum CubeMapFace { CubeMapPositiveX, CubeMapNegativeX, CubeMapPositiveY, CubeMapNegativeY, CubeMapPositiveZ, CubeMapNegativeZ }
enum DepthStencilMode { DepthMode, StencilMode }
enum Feature { ImmutableStorage, ImmutableMultisampleStorage, TextureRectangle, TextureArrays, Texture3D, …, TextureMipMapLevel }
flags Features
enum Filter { Nearest, Linear, NearestMipMapNearest, NearestMipMapLinear, LinearMipMapNearest, LinearMipMapLinear }
enum MipMapGeneration { GenerateMipMaps, DontGenerateMipMaps }
enum PixelFormat { NoSourceFormat, Red, RG, RGB, BGR, …, LuminanceAlpha }
enum PixelType { NoPixelType, Int8, UInt8, Int16, UInt16, …, Float32_D32_UInt32_S8_X24 }
enum SwizzleComponent { SwizzleRed, SwizzleGreen, SwizzleBlue, SwizzleAlpha }
enum SwizzleValue { RedValue, GreenValue, BlueValue, AlphaValue, ZeroValue, OneValue }
enum Target { Target1D, Target1DArray, Target2D, Target2DArray, Target3D, …, TargetBuffer }
enum TextureFormat { NoFormat, R8_UNorm, RG8_UNorm, RGB8_UNorm, RGBA8_UNorm, …, LuminanceAlphaFormat }
enum TextureUnitReset { ResetTextureUnit, DontResetTextureUnit }
enum WrapMode { Repeat, MirroredRepeat, ClampToEdge, ClampToBorder }

Öffentliche Funktionen

QOpenGLTexture(QOpenGLTexture::Target target)
QOpenGLTexture(const QImage &image, QOpenGLTexture::MipMapGeneration genMipMaps = GenerateMipMaps)
void allocateStorage()
void allocateStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType)
void bind()
void bind(uint unit, QOpenGLTexture::TextureUnitReset reset = DontResetTextureUnit)
QColor borderColor() const
void borderColor(float *border) const
void borderColor(int *border) const
void borderColor(unsigned int *border) const
QOpenGLTexture::ComparisonFunction comparisonFunction() const
QOpenGLTexture::ComparisonMode comparisonMode() const
bool create()
QOpenGLTexture *createTextureView(QOpenGLTexture::Target target, QOpenGLTexture::TextureFormat viewFormat, int minimumMipmapLevel, int maximumMipmapLevel, int minimumLayer, int maximumLayer) const
int depth() const
QOpenGLTexture::DepthStencilMode depthStencilMode() const
void destroy()
int faces() const
QOpenGLTexture::TextureFormat format() const
void generateMipMaps()
void generateMipMaps(int baseLevel, bool resetBaseLevel = true)
int height() const
bool isAutoMipMapGenerationEnabled() const
bool isBound() const
bool isBound(uint unit)
bool isCreated() const
bool isFixedSamplePositions() const
bool isStorageAllocated() const
bool isTextureView() const
int layers() const
std::pair<float, float> levelOfDetailRange() const
float levelofDetailBias() const
QOpenGLTexture::Filter magnificationFilter() const
float maximumAnisotropy() const
float maximumLevelOfDetail() const
int maximumMipLevels() const
std::pair<QOpenGLTexture::Filter, QOpenGLTexture::Filter> minMagFilters() const
QOpenGLTexture::Filter minificationFilter() const
float minimumLevelOfDetail() const
int mipBaseLevel() const
std::pair<int, int> mipLevelRange() const
int mipLevels() const
int mipMaxLevel() const
void release()
void release(uint unit, QOpenGLTexture::TextureUnitReset reset = DontResetTextureUnit)
int samples() const
void setAutoMipMapGenerationEnabled(bool enabled)
void setBorderColor(const QColor &color)
void setBorderColor(float r, float g, float b, float a)
void setBorderColor(int r, int g, int b, int a)
void setBorderColor(uint r, uint g, uint b, uint a)
void setComparisonFunction(QOpenGLTexture::ComparisonFunction function)
void setComparisonMode(QOpenGLTexture::ComparisonMode mode)
void setCompressedData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setCompressedData(int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setCompressedData(int mipLevel, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setCompressedData(int mipLevel, int layer, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setCompressedData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setData(const QImage &image, QOpenGLTexture::MipMapGeneration genMipMaps = GenerateMipMaps)
void setData(QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setData(int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setData(int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, int layer, QOpenGLTexture::CubeMapFace face, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, int layer, QOpenGLTexture::CubeMapFace face, int layerCount, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setDepthStencilMode(QOpenGLTexture::DepthStencilMode mode)
void setFixedSamplePositions(bool fixed)
void setFormat(QOpenGLTexture::TextureFormat format)
void setLayers(int layers)
void setLevelOfDetailRange(float min, float max)
void setLevelofDetailBias(float bias)
void setMagnificationFilter(QOpenGLTexture::Filter filter)
void setMaximumAnisotropy(float anisotropy)
void setMaximumLevelOfDetail(float value)
void setMinMagFilters(QOpenGLTexture::Filter minificationFilter, QOpenGLTexture::Filter magnificationFilter)
void setMinificationFilter(QOpenGLTexture::Filter filter)
void setMinimumLevelOfDetail(float value)
void setMipBaseLevel(int baseLevel)
void setMipLevelRange(int baseLevel, int maxLevel)
void setMipLevels(int levels)
void setMipMaxLevel(int maxLevel)
void setSamples(int samples)
void setSize(int width, int height = 1, int depth = 1)
void setSwizzleMask(QOpenGLTexture::SwizzleComponent component, QOpenGLTexture::SwizzleValue value)
void setSwizzleMask(QOpenGLTexture::SwizzleValue r, QOpenGLTexture::SwizzleValue g, QOpenGLTexture::SwizzleValue b, QOpenGLTexture::SwizzleValue a)
void setWrapMode(QOpenGLTexture::WrapMode mode)
void setWrapMode(QOpenGLTexture::CoordinateDirection direction, QOpenGLTexture::WrapMode mode)
QOpenGLTexture::SwizzleValue swizzleMask(QOpenGLTexture::SwizzleComponent component) const
QOpenGLTexture::Target target() const
GLuint textureId() const
int width() const
QOpenGLTexture::WrapMode wrapMode(QOpenGLTexture::CoordinateDirection direction) const

Statische öffentliche Mitglieder

GLuint boundTextureId(QOpenGLTexture::BindingTarget target)
GLuint boundTextureId(uint unit, QOpenGLTexture::BindingTarget target)
bool hasFeature(QOpenGLTexture::Feature feature)

Ausführliche Beschreibung

QOpenGLTexture erleichtert die Arbeit mit OpenGL-Texturen und den unzähligen Funktionen und Zielen, die diese je nach den Möglichkeiten Ihrer OpenGL-Implementierung bieten.

Das typische Verwendungsmuster für QOpenGLTexture lautet

  • Instanziieren Sie das Objekt unter Angabe des Texturzieltyps
  • Legen Sie Eigenschaften fest, die die Speicheranforderungen beeinflussen, z. B. Speicherformat und Abmessungen
  • Weisen Sie den serverseitigen Speicher zu
  • Optional: Hochladen der Pixeldaten
  • Optional weitere Eigenschaften festlegen, z. B. Filter- und Randoptionen
  • Mit Textur rendern oder in eine Textur rendern

Im typischen Fall, in dem einfach ein „ QImage “ als Quelle für die Textur-Pixeldaten verwendet wird, werden die meisten der oben genannten Schritte automatisch ausgeführt.

// Prepare texture
QOpenGLTexture *texture = new QOpenGLTexture(QImage(fileName).flipped());
texture->setMinificationFilter(QOpenGLTexture::LinearMipMapLinear);
texture->setMagnificationFilter(QOpenGLTexture::Linear);
...
// Render with texture
texture->bind();
glDrawArrays(...);

Beachten Sie, dass die „ QImage “ vertikal gespiegelt wird, um der Tatsache Rechnung zu tragen, dass OpenGL und „ QImage “ entgegengesetzte Richtungen für die y-Achse verwenden. Eine weitere Möglichkeit wäre, Ihre Texturkoordinaten zu transformieren.

Warnung: Es wird davon ausgegangen, dassalle von QOpenGLTexture verarbeiteten Daten vertrauenswürdig sind. Pixel- und Bilddaten werden an die zugrunde liegende OpenGL-Implementierung weitergeleitet. Anwendungsentwicklern wird empfohlen, die möglichen Auswirkungen sorgfältig abzuwägen, bevor sie vom Benutzer bereitgestellte Inhalte an Funktionen wie setData() übergeben.

Dokumentation zum Mitgliedstyp

enum QOpenGLTexture::BindingTarget

Diese Enumeration definiert die möglichen Bindungsziele von Textureinheiten.

KonstanteWertBeschreibung
QOpenGLTexture::BindingTarget1D0x8068Entspricht GL_TEXTURE_BINDING_1D
QOpenGLTexture::BindingTarget1DArray0x8C1CEntspricht GL_TEXTURE_BINDING_1D_ARRAY
QOpenGLTexture::BindingTarget2D0x8069Entspricht GL_TEXTURE_BINDING_2D
QOpenGLTexture::BindingTarget2DArray0x8C1DEntspricht GL_TEXTURE_BINDING_2D_ARRAY
QOpenGLTexture::BindingTarget3D0x806AEntspricht GL_TEXTURE_BINDING_3D
QOpenGLTexture::BindingTargetCubeMap0x8514Entspricht GL_TEXTURE_BINDING_CUBE_MAP
QOpenGLTexture::BindingTargetCubeMapArray0x900AEntspricht GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
QOpenGLTexture::BindingTarget2DMultisample0x9104Entspricht GL_TEXTURE_BINDING_2D_MULTISAMPLE
QOpenGLTexture::BindingTarget2DMultisampleArray0x9105Entspricht GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
QOpenGLTexture::BindingTargetRectangle0x84F6Entspricht GL_TEXTURE_BINDING_RECTANGLE
QOpenGLTexture::BindingTargetBuffer0x8C2CEntspricht GL_TEXTURE_BINDING_BUFFER

enum QOpenGLTexture::ComparisonFunction

Diese Enumeration legt fest, welcher Vergleichsoperator verwendet wird, wenn der Texturvergleich für diese Textur aktiviert ist.

KonstanteWertBeschreibung
QOpenGLTexture::CompareLessEqual0x0203Entspricht GL_LEQUAL.
QOpenGLTexture::CompareGreaterEqual0x0206Entspricht GL_GEQUAL.
QOpenGLTexture::CompareLess0x0201Entspricht GL_LESS.
QOpenGLTexture::CompareGreater0x0204Entspricht GL_GREATER.
QOpenGLTexture::CompareEqual0x0202Entspricht GL_EQUAL.
QOpenGLTexture::CompareNotEqual0x0205Entspricht GL_NOTEQUAL.
QOpenGLTexture::CompareAlways0x0207Entspricht GL_ALWAYS.
QOpenGLTexture::CompareNever0x0200Entspricht GL_NEVER.

enum QOpenGLTexture::ComparisonMode

Diese Enumeration legt fest, welcher Vergleichsmodus beim Abtasten dieser Textur verwendet wird.

KonstanteWertBeschreibung
QOpenGLTexture::CompareRefToTexture0x884EEntspricht GL_COMPARE_REF_TO_TEXTURE.
QOpenGLTexture::CompareNone0x0000Entspricht GL_NONE.

enum QOpenGLTexture::CoordinateDirection

Diese Enumeration definiert die möglichen Richtungen der Texturkoordinaten

KonstanteWertBeschreibung
QOpenGLTexture::DirectionS0x2802Die horizontale Richtung. Entspricht GL_TEXTURE_WRAP_S
QOpenGLTexture::DirectionT0x2803Die vertikale Richtung. Entspricht GL_TEXTURE_WRAP_T
QOpenGLTexture::DirectionR0x8072Die Tiefenrichtung. Entspricht GL_TEXTURE_WRAP_R

enum QOpenGLTexture::CubeMapFace

Diese Enumeration definiert die möglichen CubeMap-Flächen.

KonstanteWertBeschreibung
QOpenGLTexture::CubeMapPositiveX0x8515Entspricht GL_TEXTURE_CUBE_MAP_POSITIVE_X
QOpenGLTexture::CubeMapNegativeX0x8516Entspricht GL_TEXTURE_CUBE_MAP_NEGATIVE_X
QOpenGLTexture::CubeMapPositiveY0x8517Entspricht GL_TEXTURE_CUBE_MAP_POSITIVE_Y
QOpenGLTexture::CubeMapNegativeY0x8518Entspricht GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
QOpenGLTexture::CubeMapPositiveZ0x8519Entspricht GL_TEXTURE_CUBE_MAP_POSITIVE_Z
QOpenGLTexture::CubeMapNegativeZ0x851AEntspricht GL_TEXTURE_CUBE_MAP_NEGATIVE_Z

enum QOpenGLTexture::DepthStencilMode

Diese Enumeration legt fest, auf welchen Bestandteil einer Tiefen-/Stencil-Textur beim Abtasten der Textur zugegriffen wird.

KonstanteWertBeschreibung
QOpenGLTexture::DepthMode0x1902Entspricht GL_DEPTH_COMPONENT.
QOpenGLTexture::StencilMode0x1901Entspricht GL_STENCIL_INDEX.

enum QOpenGLTexture::Feature
flags QOpenGLTexture::Features

Diese Enumeration definiert die OpenGL-Funktionen im Zusammenhang mit Texturen, auf deren Vorhandensein geprüft werden kann.

KonstanteWertBeschreibung
QOpenGLTexture::ImmutableStorage0x00000001Unterstützung für unveränderlichen Texturspeicher
QOpenGLTexture::ImmutableMultisampleStorage0x00000002Unterstützung für unveränderlichen Texturspeicher mit Multisample-Zielen
QOpenGLTexture::TextureRectangle0x00000004Unterstützung für das GL_TEXTURE_RECTANGLE-Ziel
QOpenGLTexture::TextureArrays0x00000008Unterstützung für Texturziele mit Array-Ebenen
QOpenGLTexture::Texture3D0x00000010Unterstützung für das dreidimensionale Texturziel
QOpenGLTexture::TextureMultisample0x00000020Unterstützung für Texturziele mit Multisample-Fähigkeiten
QOpenGLTexture::TextureBuffer0x00000040Unterstützung für Texturen, die OpenGL-Pufferobjekte als Datenquelle verwenden
QOpenGLTexture::TextureCubeMapArrays0x00000080Unterstützung für Cubemap-Array-Texturziele
QOpenGLTexture::Swizzle0x00000100Unterstützung für Swizzle-Masken für Texturkomponenten
QOpenGLTexture::StencilTexturing0x00000200Unterstützung für Stencil-Texturierung (d. h. das Nachschlagen von Tiefen- oder Stencil-Komponenten einer Textur im kombinierten Tiefen-/Stencil-Format in GLSL-Shadern).
QOpenGLTexture::AnisotropicFiltering0x00000400Unterstützung für anisotropes Textur-Filtering
QOpenGLTexture::NPOTTextures0x00000800Grundlegende Unterstützung für Texturen, die keine Potenz von zwei sind
QOpenGLTexture::NPOTTextureRepeat0x00001000Vollständige Unterstützung für Texturen, die keine Potenz von zwei sind, einschließlich Texturwiederholungsmodi
QOpenGLTexture::Texture1D0x00002000Unterstützung für das eindimensionale Texturziel
QOpenGLTexture::TextureComparisonOperators0x00004000Unterstützung für Texturvergleichsoperatoren
QOpenGLTexture::TextureMipMapLevel0x00008000Unterstützung für die Festlegung der Basis- und maximalen Mipmap-Ebenen

Der Typ „Features“ ist ein Typedef für QFlags<Feature>. Er speichert eine ODER-Kombination von Feature-Werten.

enum QOpenGLTexture::Filter

Diese Enumeration definiert die Filterparameter für ein „ QOpenGLTexture “-Objekt.

KonstanteWertBeschreibung
QOpenGLTexture::Nearest0x2600Entspricht GL_NEAREST
QOpenGLTexture::Linear0x2601Entspricht GL_LINEAR
QOpenGLTexture::NearestMipMapNearest0x2700Entspricht GL_NEAREST_MIPMAP_NEAREST
QOpenGLTexture::NearestMipMapLinear0x2702Entspricht GL_NEAREST_MIPMAP_LINEAR
QOpenGLTexture::LinearMipMapNearest0x2701Entspricht GL_LINEAR_MIPMAP_NEAREST
QOpenGLTexture::LinearMipMapLinear0x2703Entspricht GL_LINEAR_MIPMAP_LINEAR

enum QOpenGLTexture::MipMapGeneration

Diese Enumeration definiert die Optionen zur Steuerung der Mipmap-Erzeugung.

KonstanteWertBeschreibung
QOpenGLTexture::GenerateMipMaps0Mipmaps sollen generiert werden
QOpenGLTexture::DontGenerateMipMaps1Mipmaps sollten nicht generiert werden

enum QOpenGLTexture::PixelFormat

Diese Enumeration definiert die möglichen clientseitigen Pixelformate für einen Pixelübertragungsvorgang.

KonstanteWertBeschreibung
QOpenGLTexture::NoSourceFormat0Entspricht GL_NONE
QOpenGLTexture::Red0x1903Entspricht GL_RED
QOpenGLTexture::RG0x8227Entspricht GL_RG
QOpenGLTexture::RGB0x1907Entspricht GL_RGB
QOpenGLTexture::BGR0x80E0Entspricht GL_BGR
QOpenGLTexture::RGBA0x1908Entspricht GL_RGBA
QOpenGLTexture::BGRA0x80E1Entspricht GL_BGRA
QOpenGLTexture::Red_Integer0x8D94Entspricht GL_RED_INTEGER
QOpenGLTexture::RG_Integer0x8228Entspricht GL_RG_INTEGER
QOpenGLTexture::RGB_Integer0x8D98Entspricht GL_RGB_INTEGER
QOpenGLTexture::BGR_Integer0x8D9AEntspricht GL_BGR_INTEGER
QOpenGLTexture::RGBA_Integer0x8D99Entspricht GL_RGBA_INTEGER
QOpenGLTexture::BGRA_Integer0x8D9BEntspricht GL_BGRA_INTEGER
QOpenGLTexture::Stencil0x1901Entspricht GL_STENCIL_INDEX. Eingeführt in Qt 5.4
QOpenGLTexture::Depth0x1902Entspricht GL_DEPTH_COMPONENT
QOpenGLTexture::DepthStencil0x84F9Entspricht GL_DEPTH_STENCIL
QOpenGLTexture::Alpha0x1906Entspricht GL_ALPHA (nur OpenGL ES 2)
QOpenGLTexture::Luminance0x1909Entspricht GL_LUMINANCE (nur OpenGL ES 2)
QOpenGLTexture::LuminanceAlpha0x190AEntspricht GL_LUMINANCE_ALPHA (nur OpenGL ES 2)

enum QOpenGLTexture::PixelType

Diese Enumeration definiert die möglichen Pixeldatentypen für eine Pixelübertragung

KonstanteWertBeschreibung
QOpenGLTexture::NoPixelType0Entspricht GL_NONE
QOpenGLTexture::Int80x1400Entspricht GL_BYTE
QOpenGLTexture::UInt80x1401Entspricht GL_UNSIGNED_BYTE
QOpenGLTexture::Int160x1402Entspricht GL_SHORT
QOpenGLTexture::UInt160x1403Entspricht GL_UNSIGNED_SHORT
QOpenGLTexture::Int320x1404Entspricht GL_INT
QOpenGLTexture::UInt320x1405Entspricht GL_UNSIGNED_INT
QOpenGLTexture::Float160x140BEntspricht GL_HALF_FLOAT
QOpenGLTexture::Float16OES0x8D61Entspricht GL_HALF_FLOAT_OES
QOpenGLTexture::Float320x1406Entspricht GL_FLOAT
QOpenGLTexture::UInt32_RGB9_E50x8C3EEntspricht GL_UNSIGNED_INT_5_9_9_9_REV
QOpenGLTexture::UInt32_RG11B10F0x8C3BEntspricht GL_UNSIGNED_INT_10F_11F_11F_REV
QOpenGLTexture::UInt8_RG3B20x8032Entspricht GL_UNSIGNED_BYTE_3_3_2
QOpenGLTexture::UInt8_RG3B2_Rev0x8362Entspricht GL_UNSIGNED_BYTE_2_3_3_REV
QOpenGLTexture::UInt16_RGB5A10x8034Entspricht GL_UNSIGNED_SHORT_5_5_5_1
QOpenGLTexture::UInt16_RGB5A1_Rev0x8366Entspricht GL_UNSIGNED_SHORT_1_5_5_5_REV
QOpenGLTexture::UInt16_R5G6B50x8363Entspricht GL_UNSIGNED_SHORT_5_6_5
QOpenGLTexture::UInt16_R5G6B5_Rev0x8364Entspricht GL_UNSIGNED_SHORT_5_6_5_REV
QOpenGLTexture::UInt16_RGBA40x8033Entspricht GL_UNSIGNED_SHORT_4_4_4_4
QOpenGLTexture::UInt16_RGBA4_Rev0x8365Entspricht GL_UNSIGNED_SHORT_4_4_4_4_REV
QOpenGLTexture::UInt32_RGBA80x8035Entspricht GL_UNSIGNED_INT_8_8_8_8
QOpenGLTexture::UInt32_RGBA8_Rev0x8367Entspricht GL_UNSIGNED_INT_8_8_8_8_REV
QOpenGLTexture::UInt32_RGB10A20x8036Entspricht GL_UNSIGNED_INT_10_10_10_2
QOpenGLTexture::UInt32_RGB10A2_Rev0x8368Entspricht GL_UNSIGNED_INT_2_10_10_10_REV
QOpenGLTexture::UInt32_D24S80x84FAEntspricht GL_UNSIGNED_INT_24_8. Eingeführt in Qt 5.4
QOpenGLTexture::Float32_D32_UInt32_S8_X240x8DADEntspricht GL_FLOAT_32_UNSIGNED_INT_24_8_REV. Eingeführt in Qt 5.4

enum QOpenGLTexture::SwizzleComponent

Diese Enumeration definiert die Farbkomponenten der Textur, denen eine Swizzle-Maske zugewiesen werden kann.

KonstanteWertBeschreibung
QOpenGLTexture::SwizzleRed0x8E42Die rote Komponente. Entspricht GL_TEXTURE_SWIZZLE_R
QOpenGLTexture::SwizzleGreen0x8E43Die grüne Komponente. Entspricht GL_TEXTURE_SWIZZLE_G
QOpenGLTexture::SwizzleBlue0x8E44Die blaue Komponente. Entspricht GL_TEXTURE_SWIZZLE_B
QOpenGLTexture::SwizzleAlpha0x8E45Die Alpha-Komponente. Entspricht GL_TEXTURE_SWIZZLE_A

enum QOpenGLTexture::SwizzleValue

Diese Enumeration definiert die möglichen Maskenwerte für das Textur-Swizzling.

KonstanteWertBeschreibung
QOpenGLTexture::RedValue0x1903Ordnet die Komponente dem Rotkanal zu. Entspricht GL_RED
QOpenGLTexture::GreenValue0x1904Ordnet die Komponente dem grünen Kanal zu. Entspricht GL_GREEN
QOpenGLTexture::BlueValue0x1905Ordnet die Komponente dem Blaukanal zu. Entspricht GL_BLUE
QOpenGLTexture::AlphaValue0x1906Ordnet die Komponente dem Alphakanal zu. Entspricht GL_ALPHA
QOpenGLTexture::ZeroValue0Ordnet die Komponente einem festen Wert von 0 zu. Entspricht GL_ZERO
QOpenGLTexture::OneValue1Ordnet die Komponente einem festen Wert von 1 zu. Entspricht GL_ONE

enum QOpenGLTexture::Target

Diese Enumeration definiert das Texturziel eines „ QOpenGLTexture “-Objekts. Weitere Informationen zum Erstellen von Array-Texturen finden Sie unter „Array-Textur“.

KonstanteWertBeschreibung
QOpenGLTexture::Target1D0x0DE0Eine eindimensionale Textur. Entspricht GL_TEXTURE_1D.
QOpenGLTexture::Target1DArray0x8C18Ein Array aus eindimensionalen Texturen. Entspricht GL_TEXTURE_1D_ARRAY
QOpenGLTexture::Target2D0x0DE1Eine zweidimensionale Textur. Entspricht GL_TEXTURE_2D
QOpenGLTexture::Target2DArray0x8C1AEin Array aus zweidimensionalen Texturen. Entspricht GL_TEXTURE_2D_ARRAY
QOpenGLTexture::Target3D0x806FEine dreidimensionale Textur. Entspricht GL_TEXTURE_3D
QOpenGLTexture::TargetCubeMap0x8513Eine Cubemap-Textur. Entspricht GL_TEXTURE_CUBE_MAP
QOpenGLTexture::TargetCubeMapArray0x9009Ein Array von Cubemap-Texturen. Entspricht GL_TEXTURE_CUBE_MAP_ARRAY
QOpenGLTexture::Target2DMultisample0x9100Eine zweidimensionale Textur mit Multisample-Unterstützung. Entspricht GL_TEXTURE_2D_MULTISAMPLE
QOpenGLTexture::Target2DMultisampleArray0x9102Ein Array aus zweidimensionalen Texturen mit Multisample-Unterstützung. Entspricht GL_TEXTURE_2D_MULTISAMPLE_ARRAY
QOpenGLTexture::TargetRectangle0x84F5Eine rechteckige zweidimensionale Textur. Entspricht GL_TEXTURE_RECTANGLE
QOpenGLTexture::TargetBuffer0x8C2AEine Textur mit Daten aus einem OpenGL-Pufferobjekt. Entspricht GL_TEXTURE_BUFFER

enum QOpenGLTexture::TextureFormat

Diese Enumeration definiert die möglichen Texturformate. Je nach Ihrer OpenGL-Implementierung wird möglicherweise nur eine Teilmenge davon unterstützt.

KonstanteWertBeschreibung
QOpenGLTexture::NoFormat0Entspricht GL_NONE
QOpenGLTexture::R8_UNorm0x8229Entspricht GL_R8
QOpenGLTexture::RG8_UNorm0x822BEntspricht GL_RG8
QOpenGLTexture::RGB8_UNorm0x8051Entspricht GL_RGB8
QOpenGLTexture::RGBA8_UNorm0x8058Entspricht GL_RGBA8
QOpenGLTexture::R16_UNorm0x822AEntspricht GL_R16
QOpenGLTexture::RG16_UNorm0x822CEntspricht GL_RG16
QOpenGLTexture::RGB16_UNorm0x8054Entspricht GL_RGB16
QOpenGLTexture::RGBA16_UNorm0x805BEntspricht GL_RGBA16
QOpenGLTexture::R8_SNorm0x8F94Entspricht GL_R8_SNORM
QOpenGLTexture::RG8_SNorm0x8F95Entspricht GL_RG8_SNORM
QOpenGLTexture::RGB8_SNorm0x8F96Entspricht GL_RGB8_SNORM
QOpenGLTexture::RGBA8_SNorm0x8F97Entspricht GL_RGBA8_SNORM
QOpenGLTexture::R16_SNorm0x8F98Entspricht GL_R16_SNORM
QOpenGLTexture::RG16_SNorm0x8F99Entspricht GL_RG16_SNORM
QOpenGLTexture::RGB16_SNorm0x8F9AEntspricht GL_RGB16_SNORM
QOpenGLTexture::RGBA16_SNorm0x8F9BEntspricht GL_RGBA16_SNORM
QOpenGLTexture::R8U0x8232Entspricht GL_R8UI
QOpenGLTexture::RG8U0x8238Entspricht GL_RG8UI
QOpenGLTexture::RGB8U0x8D7DEntspricht GL_RGB8UI
QOpenGLTexture::RGBA8U0x8D7CEntspricht GL_RGBA8UI
QOpenGLTexture::R16U0x8234Entspricht GL_R16UI
QOpenGLTexture::RG16U0x823AEntspricht GL_RG16UI
QOpenGLTexture::RGB16U0x8D77Entspricht GL_RGB16UI
QOpenGLTexture::RGBA16U0x8D76Entspricht GL_RGBA16UI
QOpenGLTexture::R32U0x8236Entspricht GL_R32UI
QOpenGLTexture::RG32U0x823CEntspricht GL_RG32UI
QOpenGLTexture::RGB32U0x8D71Entspricht GL_RGB32UI
QOpenGLTexture::RGBA32U0x8D70Entspricht GL_RGBA32UI
QOpenGLTexture::R8I0x8231Entspricht GL_R8I
QOpenGLTexture::RG8I0x8237Entspricht GL_RG8I
QOpenGLTexture::RGB8I0x8D8FEntspricht GL_RGB8I
QOpenGLTexture::RGBA8I0x8D8EEntspricht GL_RGBA8I
QOpenGLTexture::R16I0x8233Entspricht GL_R16I
QOpenGLTexture::RG16I0x8239Entspricht GL_RG16I
QOpenGLTexture::RGB16I0x8D89Entspricht GL_RGB16I
QOpenGLTexture::RGBA16I0x8D88Entspricht GL_RGBA16I
QOpenGLTexture::R32I0x8235Entspricht GL_R32I
QOpenGLTexture::RG32I0x823BEntspricht GL_RG32I
QOpenGLTexture::RGB32I0x8D83Entspricht GL_RGB32I
QOpenGLTexture::RGBA32I0x8D82Entspricht GL_RGBA32I
QOpenGLTexture::R16F0x822DEntspricht GL_R16F
QOpenGLTexture::RG16F0x822FEntspricht GL_RG16F
QOpenGLTexture::RGB16F0x881BEntspricht GL_RGB16F
QOpenGLTexture::RGBA16F0x881AEntspricht GL_RGBA16F
QOpenGLTexture::R32F0x822EEntspricht GL_R32F
QOpenGLTexture::RG32F0x8230Entspricht GL_RG32F
QOpenGLTexture::RGB32F0x8815Entspricht GL_RGB32F
QOpenGLTexture::RGBA32F0x8814Entspricht GL_RGBA32F
QOpenGLTexture::RGB9E50x8C3DEntspricht GL_RGB9_E5
QOpenGLTexture::RG11B10F0x8C3AEntspricht GL_R11F_G11F_B10F
QOpenGLTexture::RG3B20x2A10Entspricht GL_R3_G3_B2
QOpenGLTexture::R5G6B50x8D62Entspricht GL_RGB565
QOpenGLTexture::RGB5A10x8057Entspricht GL_RGB5_A1
QOpenGLTexture::RGBA40x8056Entspricht GL_RGBA4
QOpenGLTexture::RGB10A20x906FEntspricht GL_RGB10_A2UI
QOpenGLTexture::D160x81A5Entspricht GL_DEPTH_COMPONENT16
QOpenGLTexture::D240x81A6Entspricht GL_DEPTH_COMPONENT24
QOpenGLTexture::D24S80x88F0Entspricht GL_DEPTH24_STENCIL8
QOpenGLTexture::D320x81A7Entspricht GL_DEPTH_COMPONENT32
QOpenGLTexture::D32F0x8CACEntspricht GL_DEPTH_COMPONENT32F
QOpenGLTexture::D32FS8X240x8CADEntspricht GL_DEPTH32F_STENCIL8
QOpenGLTexture::S80x8D48Entspricht GL_STENCIL_INDEX8. Eingeführt in Qt 5.4
QOpenGLTexture::RGB_DXT10x83F0Entspricht GL_COMPRESSED_RGB_S3TC_DXT1_EXT
QOpenGLTexture::RGBA_DXT10x83F1Entspricht GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
QOpenGLTexture::RGBA_DXT30x83F2Entspricht GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
QOpenGLTexture::RGBA_DXT50x83F3Entspricht GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
QOpenGLTexture::R_ATI1N_UNorm0x8DBBEntspricht GL_COMPRESSED_RED_RGTC1
QOpenGLTexture::R_ATI1N_SNorm0x8DBCEntspricht GL_COMPRESSED_SIGNED_RED_RGTC1
QOpenGLTexture::RG_ATI2N_UNorm0x8DBDEntspricht GL_COMPRESSED_RG_RGTC2
QOpenGLTexture::RG_ATI2N_SNorm0x8DBEEntspricht GL_COMPRESSED_SIGNED_RG_RGTC2
QOpenGLTexture::RGB_BP_UNSIGNED_FLOAT0x8E8FEntspricht GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
QOpenGLTexture::RGB_BP_SIGNED_FLOAT0x8E8EEntspricht GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
QOpenGLTexture::RGB_BP_UNorm0x8E8CEntspricht GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
QOpenGLTexture::R11_EAC_UNorm0x9270Entspricht GL_COMPRESSED_R11_EAC
QOpenGLTexture::R11_EAC_SNorm0x9271Entspricht GL_COMPRESSED_SIGNED_R11_EAC
QOpenGLTexture::RG11_EAC_UNorm0x9272Entspricht GL_COMPRESSED_RG11_EAC
QOpenGLTexture::RG11_EAC_SNorm0x9273Entspricht GL_COMPRESSED_SIGNED_RG11_EAC
QOpenGLTexture::RGB8_ETC20x9274Entspricht GL_COMPRESSED_RGB8_ETC2
QOpenGLTexture::SRGB8_ETC20x9275Entspricht GL_COMPRESSED_SRGB8_ETC2
QOpenGLTexture::RGB8_PunchThrough_Alpha1_ETC20x9276Entspricht GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
QOpenGLTexture::SRGB8_PunchThrough_Alpha1_ETC20x9277Entspricht GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
QOpenGLTexture::RGBA8_ETC2_EAC0x9278Entspricht GL_COMPRESSED_RGBA8_ETC2_EAC
QOpenGLTexture::SRGB8_Alpha8_ETC2_EAC0x9279Entspricht GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
QOpenGLTexture::RGB8_ETC10x8D64Entspricht GL_ETC1_RGB8_OES
QOpenGLTexture::RGBA_ASTC_4x40x93B0Entspricht GL_COMPRESSED_RGBA_ASTC_4x4_KHR
QOpenGLTexture::RGBA_ASTC_5x40x93B1Entspricht GL_COMPRESSED_RGBA_ASTC_5x4_KHR
QOpenGLTexture::RGBA_ASTC_5x50x93B2Entspricht GL_COMPRESSED_RGBA_ASTC_5x5_KHR
QOpenGLTexture::RGBA_ASTC_6x50x93B3Entspricht GL_COMPRESSED_RGBA_ASTC_6x5_KHR
QOpenGLTexture::RGBA_ASTC_6x60x93B4Entspricht GL_COMPRESSED_RGBA_ASTC_6x6_KHR
QOpenGLTexture::RGBA_ASTC_8x50x93B5Entspricht GL_COMPRESSED_RGBA_ASTC_8x5_KHR
QOpenGLTexture::RGBA_ASTC_8x60x93B6Entspricht GL_COMPRESSED_RGBA_ASTC_8x6_KHR
QOpenGLTexture::RGBA_ASTC_8x80x93B7Entspricht GL_COMPRESSED_RGBA_ASTC_8x8_KHR
QOpenGLTexture::RGBA_ASTC_10x50x93B8Entspricht GL_COMPRESSED_RGBA_ASTC_10x5_KHR
QOpenGLTexture::RGBA_ASTC_10x60x93B9Entspricht GL_COMPRESSED_RGBA_ASTC_10x6_KHR
QOpenGLTexture::RGBA_ASTC_10x80x93BAEntspricht GL_COMPRESSED_RGBA_ASTC_10x8_KHR
QOpenGLTexture::RGBA_ASTC_10x100x93BBEntspricht GL_COMPRESSED_RGBA_ASTC_10x10_KHR
QOpenGLTexture::RGBA_ASTC_12x100x93BCEntspricht GL_COMPRESSED_RGBA_ASTC_12x10_KHR
QOpenGLTexture::RGBA_ASTC_12x120x93BDEntspricht GL_COMPRESSED_RGBA_ASTC_12x12_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_4x40x93D0Entspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_5x40x93D1Entspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_5x50x93D2Entspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_6x50x93D3Entspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_6x60x93D4Entspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_8x50x93D5Entspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_8x60x93D6Entspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_8x80x93D7Entspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_10x50x93D8Entspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_10x60x93D9Entspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_10x80x93DAEntspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_10x100x93DBEntspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_12x100x93DCEntspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_12x120x93DDEntspricht GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
QOpenGLTexture::SRGB80x8C41Entspricht GL_SRGB8
QOpenGLTexture::SRGB8_Alpha80x8C43Entspricht GL_SRGB8_ALPHA8
QOpenGLTexture::SRGB_DXT10x8C4CEntspricht GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
QOpenGLTexture::SRGB_Alpha_DXT10x8C4DEntspricht GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
QOpenGLTexture::SRGB_Alpha_DXT30x8C4EEntspricht GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
QOpenGLTexture::SRGB_Alpha_DXT50x8C4FEntspricht GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
QOpenGLTexture::SRGB_BP_UNorm0x8E8DEntspricht GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
QOpenGLTexture::DepthFormat0x1902Entspricht GL_DEPTH_COMPONENT (nur OpenGL ES 3 oder ES 2 mit OES_depth_texture)
QOpenGLTexture::AlphaFormat0x1906Entspricht GL_ALPHA (nur OpenGL ES 2)
QOpenGLTexture::RGBFormat0x1907Entspricht GL_RGB (nur OpenGL ES 2)
QOpenGLTexture::RGBAFormat0x1908Entspricht GL_RGBA (nur OpenGL ES 2)
QOpenGLTexture::LuminanceFormat0x1909Entspricht GL_LUMINANCE (nur OpenGL ES 2)
QOpenGLTexture::LuminanceAlphaFormat0x190AEntspricht GL_LUMINANCE_ALPHA (nur OpenGL ES 2)

enum QOpenGLTexture::TextureUnitReset

Diese Enumeration definiert Optionen zur Steuerung der Aktivierung der Textur-Einheit.

KonstanteWertBeschreibung
QOpenGLTexture::ResetTextureUnit0Die zuvor aktive Textur-Einheit wird zurückgesetzt
QOpenGLTexture::DontResetTextureUnit1Die zuvor aktive Textur-Einheit wird nicht zurückgesetzt

enum QOpenGLTexture::WrapMode

Diese Enumeration definiert die möglichen Umschaltmodi für Texturkoordinaten.

KonstanteWertBeschreibung
QOpenGLTexture::Repeat0x2901Die Texturkoordinate wird wiederholt. Entspricht GL_REPEAT
QOpenGLTexture::MirroredRepeat0x8370Die Texturkoordinaten werden um 0 und 1 gespiegelt. Entspricht GL_MIRRORED_REPEAT
QOpenGLTexture::ClampToEdge0x812FBegrenzt die Texturkoordinaten auf [0,1]. Entspricht GL_CLAMP_TO_EDGE
QOpenGLTexture::ClampToBorder0x812DWie bei ClampToEdge, blendet jedoch zusätzlich die Samples bei 0 und 1 mit einer festen Randfarbe ein. Entspricht GL_CLAMP_TO_BORDER

Dokumentation der Member-Funktionen

[explicit] QOpenGLTexture::QOpenGLTexture(QOpenGLTexture::Target target)

Erstellt ein `QOpenGLTexture`-Objekt, das später an ` target` gebunden werden kann.

Dabei wird das zugrunde liegende OpenGL-Texturobjekt nicht erstellt. Daher ist für die Erstellung mit diesem Konstruktor kein gültiger aktueller OpenGL-Kontext erforderlich.

[explicit] QOpenGLTexture::QOpenGLTexture(const QImage &image, QOpenGLTexture::MipMapGeneration genMipMaps = GenerateMipMaps)

Erstellt ein QOpenGLTexture-Objekt, das später an das 2D-Texturziel gebunden werden kann und die in ` image` enthaltenen Pixeldaten enthält. Wenn Sie eine Kette von Mipmaps generieren möchten, setzen Sie ` genMipMaps ` auf ` true ` (dies ist die Standardeinstellung).

Hierbei wird das zugrunde liegende OpenGL-Texturobjekt erstellt. Daher erfordert die Erstellung mit diesem Konstruktor einen gültigen aktuellen OpenGL-Kontext.

Hinweis: image wird automatisch in QImage::Format_RGBA8888 konvertiert, was bei großen Bildern mit einem anderen Format Auswirkungen auf die Leistung haben kann.

void QOpenGLTexture::allocateStorage()

Weist diesem Texturobjekt serverseitigen Speicherplatz zu, wobei das Format, die Abmessungen, die Mipmap-Ebenen, die Array-Ebenen und die Cubemap-Flächen berücksichtigt werden.

Sobald Speicherplatz zugewiesen wurde, können diese Eigenschaften nicht mehr geändert werden.

Sofern unterstützt, nutzt ` QOpenGLTexture ` unveränderlichen Texturspeicher.

Sobald Speicherplatz für die Textur zugewiesen wurde, können Pixeldaten über eine der Überladungen von ` setData()` hochgeladen werden.

Hinweis: Wenn kein unveränderlicher Texturspeicher verfügbar ist, werden ein Standard-Pixelformat und ein Standard-Pixeltyp verwendet, um den veränderbaren Speicher zu erstellen. Sie können die andere Überladung von `allocateStorage()` verwenden, um das Pixelformat und den Pixeltyp, die bei der Zuweisung von veränderbarem Speicher verwendet werden sollen, genau anzugeben; dies ist besonders nützlich bei bestimmten OpenGL ES-Implementierungen (insbesondere OpenGL ES 2), bei denen das zum Zeitpunkt der Zuweisung verwendete Pixelformat und der Pixeltyp exakt mit dem Format und dem Typ übereinstimmen müssen, die an jeden nachfolgenden Aufruf von ` setData()` übergeben werden.

Siehe auch ` isStorageAllocated()` und ` setData()`.

void QOpenGLTexture::allocateStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType)

Weist diesem Texturobjekt serverseitigen Speicherplatz zu, wobei das Format, die Abmessungen, die Mipmap-Ebenen, die Array-Ebenen und die Cubemap-Flächen berücksichtigt werden.

Sobald Speicherplatz zugewiesen wurde, können diese Eigenschaften nicht mehr geändert werden.

Sofern unterstützt, nutzt ` QOpenGLTexture ` unveränderlichen Texturspeicher. Ist jedoch kein unveränderlicher Texturspeicher verfügbar, werden die angegebenen ` pixelFormat ` und ` pixelType ` zur Zuweisung von veränderlichem Speicher verwendet; beachten Sie, dass diese in bestimmten OpenGL-Implementierungen (insbesondere OpenGL ES 2) exakt mit dem Format und dem Typ übereinstimmen müssen, die an einen nachfolgenden Aufruf von ` setData()` übergeben werden.

Sobald Speicher für die Textur zugewiesen wurde, können Pixeldaten über eine der Überladungen von ` setData()` hochgeladen werden.

Siehe auch „ isStorageAllocated()“ und „ setData()“.

void QOpenGLTexture::bind()

Bindet diese Textur an die derzeit aktive Textureinheit, sodass sie für das Rendering bereit ist. Beachten Sie, dass Sie Objekte vom Typ „ QOpenGLTexture “ nicht binden müssen, um sie zu ändern, da die Implementierung die Erweiterung „EXT_direct_state_access“ nutzt, sofern diese verfügbar ist, und sie simuliert, falls dies nicht der Fall ist.

Siehe auch „ release()“.

void QOpenGLTexture::bind(uint unit, QOpenGLTexture::TextureUnitReset reset = DontResetTextureUnit)

Bindet diese Textur an die Textureinheit „ unit “, sodass sie für das Rendering bereit ist. Beachten Sie, dass Sie Objekte vom Typ „ QOpenGLTexture “ nicht binden müssen, um sie zu ändern, da die Implementierung die Erweiterung „EXT_direct_state_access“ nutzt, sofern diese verfügbar ist, und sie simuliert, falls dies nicht der Fall ist.

Wenn der Parameter ` reset ` den Wert ` true ` hat, setzt diese Funktion die aktive Einheit auf die Textur-Einheit zurück, die beim Aufruf aktiv war.

Siehe auch release().

QColor QOpenGLTexture::borderColor() const

Gibt die Rahmenfarbe dieser Textur zurück.

Siehe auch „ setBorderColor()“.

void QOpenGLTexture::borderColor(float *border) const

Schreibt die Farbe des Texturrandes in die ersten vier Elemente des Arrays, auf das border verweist.

Siehe auch setBorderColor().

void QOpenGLTexture::borderColor(int *border) const

Schreibt die Farbe des Texturrandes in die ersten vier Elemente des Arrays, auf das border verweist.

Dies ist eine überladene Funktion.

void QOpenGLTexture::borderColor(unsigned int *border) const

Schreibt die Farbe des Texturrandes in die ersten vier Elemente des Arrays, auf das border verweist.

Dies ist eine überladene Funktion.

[static] GLuint QOpenGLTexture::boundTextureId(QOpenGLTexture::BindingTarget target)

Gibt den „ textureId “ der Textur zurück, die an den „ target “ der derzeit aktiven Textureinheit gebunden ist.

[static] GLuint QOpenGLTexture::boundTextureId(uint unit, QOpenGLTexture::BindingTarget target)

Gibt den „ textureId “ der Textur zurück, die an den „ target “ der Textureinheit „ unit “ gebunden ist.

QOpenGLTexture::ComparisonFunction QOpenGLTexture::comparisonFunction() const

Gibt den für diese Textur festgelegten Texturvergleichsoperator zurück. Standardmäßig verfügt eine Textur über eine Vergleichsfunktion vom Typ „ CompareLessEqual “.

Siehe auch ` setComparisonFunction()`.

QOpenGLTexture::ComparisonMode QOpenGLTexture::comparisonMode() const

Gibt den für diese Textur festgelegten Texturvergleichsmodus zurück. Standardmäßig ist für eine Textur der Vergleichsmodus „ CompareNone “ (d. h., Vergleiche sind deaktiviert) eingestellt.

Siehe auch „ setComparisonMode()“.

bool QOpenGLTexture::create()

Erstellt das zugrunde liegende OpenGL-Texturobjekt. Dazu ist ein aktuell gültiger OpenGL-Kontext erforderlich. Falls das Texturobjekt bereits existiert, führt diese Funktion keine Aktion aus.

Sobald das Texturobjekt erstellt ist, können Sie den Objektnamen über die Funktion ` textureId()` abrufen. Dies kann nützlich sein, wenn Sie einige direkte OpenGL-Aufrufe im Zusammenhang mit dieser Textur ausführen möchten.

Normalerweise sollte es nicht notwendig sein, diese Funktion direkt aufzurufen, da alle Funktionen, die Eigenschaften des Texturobjekts festlegen, implizit create() für Sie aufrufen.

Gibt ` true ` zurück, wenn die Erstellung erfolgreich war, andernfalls ` false`.

Siehe auch ` destroy()`, ` isCreated()` und ` textureId()`.

QOpenGLTexture *QOpenGLTexture::createTextureView(QOpenGLTexture::Target target, QOpenGLTexture::TextureFormat viewFormat, int minimumMipmapLevel, int maximumMipmapLevel, int minimumLayer, int maximumLayer) const

Versucht, eine Texturansicht für diese Textur zu erstellen. Eine Texturansicht ist insofern mit einer Ansicht in SQL vergleichbar, als sie eine eingeschränkte oder neu interpretierte Ansicht der Originaldaten darstellt. Texturansichten belegen keinen zusätzlichen serverseitigen Speicherplatz, sondern nutzen stattdessen den Speicherpuffer der Quelltextur.

Texturansichten sind nur bei Verwendung von unveränderlichem Speicher verfügbar. Weitere Informationen zu Texturansichten finden Sie unter http://www.opengl.org/wiki/Texture_Storage#Texture_views.

Das Argument „ target “ gibt das für die Ansicht zu verwendende Ziel an. Je nach dem Ziel der ursprünglichen Textur können nur bestimmte Ziele verwendet werden. Beispielsweise kann eine Ansicht auf eine „ Target1DArray “-Textur entweder „ Target1DArray “ oder „ Target1D “ angeben; im letzteren Fall muss die Anzahl der Array-Ebenen, die mit „ minimumLayer “ und „ maximumLayer “ angegeben werden, jedoch genau 1 betragen.

Ähnliche Einschränkungen gelten für die „ viewFormat “. Weitere Details finden Sie unter dem obigen Link und in der Spezifikation.

Die Argumente „ minimumMipmapLevel “, „ maximumMipmapLevel “, „ minimumLayer “ und „ maximumLayer “ dienen dazu, die Teile der Textur einzuschränken, auf die die Texturansicht zugreifen kann.

Schlägt die Erstellung der Texturansicht fehl, gibt diese Funktion 0 zurück. Bei erfolgreicher Ausführung gibt die Funktion einen Zeiger auf ein neues ` QOpenGLTexture `-Objekt zurück, das über seine Funktion ` isTextureView()` den Wert ` true ` zurückgibt.

Siehe auch ` isTextureView()`.

int QOpenGLTexture::depth() const

Gibt die Tiefe einer 3D-Textur zurück.

Siehe auch „ width()“, „ height()“ und „ setSize()“.

QOpenGLTexture::DepthStencilMode QOpenGLTexture::depthStencilMode() const

Gibt den Tiefen-Stencil-Modus für Texturen zurück, die ein kombiniertes Tiefen-/Stencil-Format verwenden.

Siehe auch „ setDepthStencilMode()“.

void QOpenGLTexture::destroy()

Löscht das zugrunde liegende OpenGL-Texturobjekt. Dazu ist ein aktuell gültiger OpenGL-Kontext erforderlich.

Siehe auch create(), isCreated() und textureId().

int QOpenGLTexture::faces() const

Gibt die Anzahl der Flächen dieser Textur zurück. Bei Zielen vom Typ „Cubemap“ und „Cubemap-Array“ ist dieser Wert 6.

Bei Zielen, die nicht vom Typ „Cubemap“ sind, wird der Wert 1 zurückgegeben.

QOpenGLTexture::TextureFormat QOpenGLTexture::format() const

Gibt das Format dieses Texturobjekts zurück.

Siehe auch „ setFormat()“.

void QOpenGLTexture::generateMipMaps()

Erzeugt Mipmaps für dieses Texturobjekt, beginnend mit Mipmap-Ebene 0. Wenn Sie ein Texturziel und eine Filteroption verwenden, die Mipmaps erfordern, und Sie die automatische Mipmap-Erzeugung deaktiviert haben, müssen Sie diese Funktion oder die Überladung aufrufen, um die Mipmap-Kette zu erstellen.

Hinweis: DieMipmap -Erzeugung wird für komprimierte Texturen mit OpenGL ES nicht unterstützt.

Siehe auch setAutoMipMapGenerationEnabled(), setMipLevels() und mipLevels().

void QOpenGLTexture::generateMipMaps(int baseLevel, bool resetBaseLevel = true)

Erzeugt Mipmaps für dieses Texturobjekt ausgehend von der Mipmap-Stufe baseLevel. Wenn Sie ein Texturziel und eine Filteroption verwenden, die Mipmaps erfordern, und Sie die automatische Mipmap-Erzeugung deaktiviert haben, müssen Sie diese Funktion oder die Überladung aufrufen, um die Mipmap-Kette zu erstellen.

Die Erzeugung von Mipmaps oberhalb von „ baseLevel “ erfolgt durch Setzen der Mipmap-Basisstufe auf „ baseLevel “ und anschließendes Erzeugen der Mipmap-Kette. Wenn „ resetBaseLevel “ den Wert „ true “ annimmt, wird die „baseLevel“-Einstellung der Textur auf ihren vorherigen Wert zurückgesetzt.

Siehe auch „ setAutoMipMapGenerationEnabled()“, „ setMipLevels()“ und „ mipLevels()“.

[static] bool QOpenGLTexture::hasFeature(QOpenGLTexture::Feature feature)

Gibt „ true “ zurück, wenn Ihre OpenGL-Implementierung und -Version die Textur-Funktion „ feature “ unterstützt.

int QOpenGLTexture::height() const

Gibt die Höhe einer 2D- oder 3D-Textur zurück.

Siehe auch „ width()“, „ depth()“ und „ setSize()“.

bool QOpenGLTexture::isAutoMipMapGenerationEnabled() const

Gibt zurück, ob die automatische Mipmap-Erstellung für dieses Texturobjekt aktiviert ist.

Siehe auch setAutoMipMapGenerationEnabled() und generateMipMaps().

bool QOpenGLTexture::isBound() const

Gibt „ true “ zurück, wenn diese Textur an das entsprechende Ziel der derzeit aktiven Textureinheit gebunden ist.

Siehe auch „ bind()“ und „ release()“.

bool QOpenGLTexture::isBound(uint unit)

Gibt „ true “ zurück, wenn diese Textur an das entsprechende Ziel der Textureinheit „ unit “ gebunden ist.

Siehe auch bind() und release().

bool QOpenGLTexture::isCreated() const

Gibt „ true “ zurück, wenn das zugrunde liegende OpenGL-Texturobjekt erstellt wurde.

Siehe auch create(), destroy() und textureId().

bool QOpenGLTexture::isFixedSamplePositions() const

Gibt zurück, ob diese Textur ein festes Muster von Multisample-Samples verwendet. Wenn für diese Textur noch kein Speicher zugewiesen wurde, gibt diese Funktion die angeforderte Einstellung für die feste Sample-Position zurück.

Bei Texturzielen, die Multisampling nicht unterstützen, gibt diese Funktion „ true “ zurück.

Siehe auch „ setFixedSamplePositions()“ und „ isStorageAllocated()“.

bool QOpenGLTexture::isStorageAllocated() const

Gibt „ true “ zurück, wenn serverseitiger Speicherplatz für diese Textur zugewiesen wurde.

Das Texturformat, die Abmessungen, die Mipmap-Ebenen und die Array-Ebenen können nach der Zuweisung des Speicherplatzes nicht mehr geändert werden.

Siehe auch allocateStorage(), setSize(), setMipLevels(), setLayers() und setFormat().

bool QOpenGLTexture::isTextureView() const

Gibt „ true “ zurück, wenn dieses Texturobjekt tatsächlich eine Ansicht auf ein anderes Texturobjekt ist.

Siehe auch ` createTextureView()`.

int QOpenGLTexture::layers() const

Gibt die Anzahl der Array-Ebenen für diese Textur zurück. Wenn für diese Textur noch kein Speicher zugewiesen wurde, gibt diese Funktion die angeforderte Anzahl von Array-Ebenen zurück.

Bei Texturzielen, die keine Array-Ebenen unterstützen, wird hier 1 zurückgegeben.

Siehe auch setLayers() und isStorageAllocated().

std::pair<float, float> QOpenGLTexture::levelOfDetailRange() const

Gibt den minimalen und maximalen Detaillierungsgrad zurück.

Siehe auch setLevelOfDetailRange(), minimumLevelOfDetail() und maximumLevelOfDetail().

float QOpenGLTexture::levelofDetailBias() const

Gibt den Parameter für die Detailgenauigkeitsverzerrung zurück.

Siehe auch „ setLevelofDetailBias()“.

QOpenGLTexture::Filter QOpenGLTexture::magnificationFilter() const

Gibt den Vergrößerungsfilter zurück.

Siehe auch ` setMagnificationFilter()`.

float QOpenGLTexture::maximumAnisotropy() const

Gibt den maximalen Anisotropiegrad zurück, der bei der Texturabfrage berücksichtigt werden soll. Hierfür ist die Erweiterung GL_EXT_texture_filter_anisotropic erforderlich.

Siehe auch ` setMaximumAnisotropy()`.

float QOpenGLTexture::maximumLevelOfDetail() const

Gibt den Parameter für die maximale Detailstufe zurück.

Siehe auch setMaximumLevelOfDetail(), minimumLevelOfDetail() und levelOfDetailRange().

int QOpenGLTexture::maximumMipLevels() const

Gibt die maximale Anzahl an Mipmap-Ebenen zurück, die diese Textur bei den aktuellen Abmessungen haben kann.

Siehe auch setMipLevels(), mipLevels() und setSize().

std::pair<QOpenGLTexture::Filter, QOpenGLTexture::Filter> QOpenGLTexture::minMagFilters() const

Gibt die aktuellen Filter für Verkleinerung und Vergrößerung zurück.

Siehe auch setMinMagFilters().

QOpenGLTexture::Filter QOpenGLTexture::minificationFilter() const

Gibt den Minifizierungsfilter zurück.

Siehe auch „ setMinificationFilter()“.

float QOpenGLTexture::minimumLevelOfDetail() const

Gibt den Parameter für die minimale Detailstufe zurück.

Siehe auch setMinimumLevelOfDetail(), maximumLevelOfDetail() und levelOfDetailRange().

int QOpenGLTexture::mipBaseLevel() const

Gibt die Mipmap-Basisstufe zurück, die für alle Texturabfragen mit dieser Textur verwendet wird. Der Standardwert ist 0.

Siehe auch setMipBaseLevel(), mipMaxLevel() und mipLevelRange().

std::pair<int, int> QOpenGLTexture::mipLevelRange() const

Gibt den Bereich der Mipmap-Ebenen zurück, die für Textur-Lookups mit dieser Textur verwendet werden können.

Siehe auch setMipLevelRange(), mipBaseLevel() und mipMaxLevel().

int QOpenGLTexture::mipLevels() const

Gibt die Anzahl der Mipmap-Ebenen für diese Textur zurück. Wenn für diese Textur noch kein Speicher zugewiesen wurde, wird die angeforderte Anzahl von Mipmap-Ebenen zurückgegeben.

Siehe auch setMipLevels(), maximumMipLevels() und isStorageAllocated().

int QOpenGLTexture::mipMaxLevel() const

Gibt die maximale Mipmap-Stufe zurück, die für alle Texturabrufe mit dieser Textur verwendet wird.

Siehe auch setMipMaxLevel(), mipBaseLevel() und mipLevelRange().

void QOpenGLTexture::release()

Löst die Verknüpfung dieser Textur mit der derzeit aktiven Textureinheit.

Siehe auch „ bind()“.

void QOpenGLTexture::release(uint unit, QOpenGLTexture::TextureUnitReset reset = DontResetTextureUnit)

Löst die Verknüpfung dieser Textur mit der Textureinheit „ unit “.

Wenn der Parameter „ reset “ den Wert „ true “ hat, setzt diese Funktion die aktive Einheit auf die Textureinheit zurück, die beim Aufruf aktiv war.

int QOpenGLTexture::samples() const

Gibt die Anzahl der Multisample-Abtastpunkte für diese Textur zurück. Wenn für diese Textur noch kein Speicher zugewiesen wurde, gibt diese Funktion die angeforderte Anzahl von Abtastpunkten zurück.

Bei Texturzielen, die Multisampling nicht unterstützen, wird hier 0 zurückgegeben.

Siehe auch setSamples() und isStorageAllocated().

void QOpenGLTexture::setAutoMipMapGenerationEnabled(bool enabled)

Wenn „ enabled “ auf „ true “ gesetzt ist, wird die automatische Mipmap-Erstellung für dieses Texturobjekt aktiviert, sobald die Mipmap-Daten der Stufe 0 über „ setData()“ festgelegt werden.

Die automatische Mipmap-Erzeugung ist standardmäßig aktiviert.

Hinweis: DieMipmap -Erzeugung wird für komprimierte Texturen mit OpenGL ES 2.0 nicht unterstützt.

Siehe auch „ isAutoMipMapGenerationEnabled “ () und „ generateMipMaps “ ().

void QOpenGLTexture::setBorderColor(const QColor &color)

Legt die Rahmenfarbe der Textur auf „ color “ fest.

Hinweis: Diese Funktion hat auf Mac und bei Qt-Versionen, die für OpenGL ES 2 kompiliert wurden, keine Wirkung.

Siehe auch ` borderColor()`.

void QOpenGLTexture::setBorderColor(float r, float g, float b, float a)

Setzt die Farbe Rot auf r, Grün auf g, Blau auf b und a auf den Alpha-Wert.

Dies ist eine überladene Funktion.

void QOpenGLTexture::setBorderColor(int r, int g, int b, int a)

Setzt die Farbe Rot auf r, Grün auf g, Blau auf b und den Alpha-Wert auf a.

Dies ist eine überladene Funktion.

void QOpenGLTexture::setBorderColor(uint r, uint g, uint b, uint a)

Setzt die Farbe Rot auf r, Grün auf g, Blau auf b und den Alpha-Wert auf a.

Dies ist eine überladene Funktion.

void QOpenGLTexture::setComparisonFunction(QOpenGLTexture::ComparisonFunction function)

Setzt die Texturvergleichsfunktion für diese Textur auf „ function “. Die Texturvergleichsfunktion wird von Schatten-Samplern beim Abtasten einer Tiefentextur verwendet.

Siehe auch „ comparisonFunction()“.

void QOpenGLTexture::setComparisonMode(QOpenGLTexture::ComparisonMode mode)

Legt den Texturvergleichsmodus für diese Textur auf „ mode “ fest. Der Texturvergleichsmodus wird von Schatten-Samplern beim Abtasten einer Tiefentextur verwendet.

Siehe auch ` comparisonMode()`.

void QOpenGLTexture::setCompressedData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

mipLevelLädt das komprimierte Pixel- data, das Array layer sowie cubeFace hoch. Die Pixelübertragung kann optional mit options gesteuert werden. Das Argument dataSize sollte die Größe der Daten angeben, auf die data verweist.

Wenn Sie kein komprimiertes ` format()` verwenden, sollten Sie anstelle dieser Funktion ` setData()` verwenden.

void QOpenGLTexture::setCompressedData(int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Dies ist eine überladene Funktion.

void QOpenGLTexture::setCompressedData(int mipLevel, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Dies ist eine überladene Funktion.

void QOpenGLTexture::setCompressedData(int mipLevel, int layer, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Dies ist eine überladene Funktion.

void QOpenGLTexture::setCompressedData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Der Parameter „ layerCount “ gibt die Anzahl der Ebenen in einem Textur-Array an, die durch diesen Aufruf hochgeladen bzw. gefüllt werden.

Dies ist eine überladene Funktion.

void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Lädt die Pixel data für dieses Texturobjekt mipLevel, das Array layer und cubeFace hoch. Der Speicherplatz muss vor dem Hochladen der Pixeldaten zugewiesen worden sein. Einige Überladungen von setData() legen die entsprechenden Abmessungen, Mipmap-Ebenen und Array-Ebenen fest und weisen anschließend Speicherplatz für Sie zu, sofern sie über ausreichende Informationen dafür verfügen. Dies wird in der Funktionsdokumentation vermerkt.

Die Struktur der Pixeldaten, auf die data verweist, wird durch sourceFormat und sourceType festgelegt. Das Hochladen der Pixeldaten kann optional über options gesteuert werden.

Wenn Sie ein komprimiertes ` format()` verwenden, sollten Sie anstelle dieser Funktion ` setCompressedData()` nutzen.

Siehe auch setCompressedData().

void QOpenGLTexture::setData(const QImage &image, QOpenGLTexture::MipMapGeneration genMipMaps = GenerateMipMaps)

Diese Überladung von setData() reserviert Speicherplatz für Sie. Die Pixeldaten sind in „ image “ enthalten. Mipmaps werden standardmäßig generiert. Setzen Sie „ genMipMaps “ auf „ DontGenerateMipMaps “, um die Mipmap-Generierung zu deaktivieren.

Hinweis: ` image ` wird automatisch in ` QImage::Format_RGBA8888 ` konvertiert, was bei großen Bildern mit einem anderen Format Auswirkungen auf die Leistung haben kann.

Dies ist eine überladene Funktion.

void QOpenGLTexture::setData(QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Dies ist eine überladene Funktion.

void QOpenGLTexture::setData(int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Dies ist eine überladene Funktion.

void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Dies ist eine überladene Funktion.

void QOpenGLTexture::setData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Der Parameter „ layerCount “ gibt die Anzahl der Ebenen in einem Textur-Array an, die durch diesen Aufruf hochgeladen bzw. gefüllt werden.

Dies ist eine überladene Funktion.

void QOpenGLTexture::setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Diese Überladung dient dazu, einen Teil der Textur zu aktualisieren. Die Parameter xOffset, yOffset und zOffset geben die Texel-Offsets innerhalb der Textur an. Die Parameter width, height und depth geben die Abmessungen des Teilbildes an.

Die Struktur der Pixeldaten, auf die „ data “ verweist, wird durch „ sourceFormat “ und „ sourceType “ festgelegt. Das Hochladen der Pixeldaten kann optional durch „ options “ gesteuert werden.

Dies ist eine überladene Funktion.

void QOpenGLTexture::setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Diese Überladung dient dazu, einen Teil der Textur zu aktualisieren. Die Parameter xOffset, yOffset und zOffset geben die Texel-Offsets innerhalb der Textur an. Die Parameter width, height und depth geben die Abmessungen des Teilbildes an. Die Mipmap-Ebene des Teilbildes, das aktualisiert werden soll, wird mit mipLevel angegeben.

Die Struktur der Pixeldaten, auf die data verweist, wird durch sourceFormat und sourceType festgelegt. Das Hochladen der Pixeldaten kann optional über options gesteuert werden.

Dies ist eine überladene Funktion.

void QOpenGLTexture::setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Diese Überladung dient dazu, einen Teil der Textur zu aktualisieren. Die Parameter xOffset, yOffset und zOffset geben die Texel-Offsets innerhalb der Textur an. Die Parameter width, height und depth legen die Abmessungen des Teilbildes fest. Die Mipmap-Ebene und die Ebene des Teilbildes, das aktualisiert werden soll, werden mit mipLevel und layer angegeben.

Die Struktur der Pixeldaten, auf die data verweist, wird durch sourceFormat und sourceType festgelegt. Das Hochladen der Pixeldaten kann optional über options gesteuert werden.

Dies ist eine überladene Funktion.

void QOpenGLTexture::setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, int layer, QOpenGLTexture::CubeMapFace face, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Diese Überladung dient dazu, einen Teil der Textur zu aktualisieren. Die Parameter xOffset, yOffset und zOffset geben die Texel-Offsets innerhalb der Textur an. Die Parameter width, height und depth geben die Abmessungen des Teilbildes an. Die Mipmap-Ebene, die Ebene und die Cube-Map-Fläche des Teilbildes, das aktualisiert werden soll, werden mit mipLevel, layer und face angegeben.

Die Struktur der Pixeldaten, auf die „ data “ verweist, wird durch „ sourceFormat “ und „ sourceType “ festgelegt. Das Hochladen der Pixeldaten kann optional durch „ options “ gesteuert werden.

Dies ist eine überladene Funktion.

void QOpenGLTexture::setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, int layer, QOpenGLTexture::CubeMapFace face, int layerCount, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)

Diese Überladung dient dazu, einen Teil der Textur zu aktualisieren. Die Parameter xOffset, yOffset und zOffset geben die Texel-Offsets innerhalb der Textur an. Die Parameter width, height und depth geben die Abmessungen des Teilbildes an. Die Mipmap-Ebene, die Startschicht, die Cube-Map-Fläche und die Anzahl der Schichten des Teilbildes, das aktualisiert werden soll, werden mit mipLevel, layer, face und layerCount festgelegt.

Die Struktur der Pixeldaten, auf die data verweist, wird durch sourceFormat und sourceType festgelegt. Das Hochladen der Pixeldaten kann optional durch options gesteuert werden.

Dies ist eine überladene Funktion.

void QOpenGLTexture::setDepthStencilMode(QOpenGLTexture::DepthStencilMode mode)

Bei Verwendung einer Textur mit einem kombinierten Tiefen-/Stencil-Format legt diese Funktion fest, auf welche Komponente der Textur zugegriffen wird: „ mode “.

Ist der Parameter auf „ DepthMode “ gesetzt, greift der Shader wie gewohnt auf die Tiefenkomponente als einzelnes Float-Wert zu. Ist der Parameter hingegen auf „ StencilMode “ gesetzt, greift der Shader auf die Stencil-Komponente zu.

Hinweis: Diese Funktion hat keine Auswirkungen auf Mac und Qt-Versionen, die für OpenGL ES 2 kompiliert wurden.

Siehe auch ` depthStencilMode()`.

void QOpenGLTexture::setFixedSamplePositions(bool fixed)

Legt fest, ob die Abtastpositionen und die Anzahl der Abtastungen bei einem Multisampling-fähigen Texturziel auf „ fixed “ gesetzt werden. Bei der Einstellung „ true “ sind die Abtastpositionen und die Anzahl der Abtastungen für alle Texel im Bild identisch und hängen nicht von der Bildgröße oder dem internen Format ab. Diese Funktion sollte aufgerufen werden, bevor Speicherplatz für die Textur zugewiesen wird.

Bei Zielen, die kein Multisampling unterstützen, hat diese Funktion keine Auswirkung.

Der Standardwert ist „ true “.

Siehe auch ` isFixedSamplePositions()` und ` isStorageAllocated()`.

void QOpenGLTexture::setFormat(QOpenGLTexture::TextureFormat format)

Legt das Format dieses Texturobjekts auf „ format “ fest. Diese Funktion muss aufgerufen werden, bevor Speicherplatz für die Textur zugewiesen wird.

Beachten Sie, dass möglicherweise nicht alle Formate unterstützt werden. Die genauen unterstützten Formate hängen von Ihrer OpenGL-Implementierung und -Version ab.

Siehe auch „ format()“ und „ allocateStorage()“.

void QOpenGLTexture::setLayers(int layers)

Legt die Anzahl der Array- layers n fest, für die Speicherplatz zugewiesen werden soll. Diese Funktion sollte aufgerufen werden, bevor Speicherplatz für die Textur zugewiesen wird.

Bei Zielen, die Array-Ebenen nicht unterstützen, hat diese Funktion keine Auswirkung.

Siehe auch ` layers()` und ` isStorageAllocated()`.

void QOpenGLTexture::setLevelOfDetailRange(float min, float max)

Setzt die Parameter für die minimale Detailstufe auf „ min “ und für die maximale Detailstufe auf „ max “.

Hinweis: Diese Funktion hat keine Auswirkungen auf Qt OpenGL, das für OpenGL ES 2 kompiliert wurde.

Siehe auch levelOfDetailRange(), setMinimumLevelOfDetail() und setMaximumLevelOfDetail().

void QOpenGLTexture::setLevelofDetailBias(float bias)

Legt den Detailgrad-Versatz auf „ bias “ fest. Der Detailgrad-Versatz beeinflusst den Punkt, an dem sich die Mipmapping-Stufen ändern. Durch Erhöhen des Werts für den Detailgrad-Versatz werden die Bilder insgesamt unschärfer oder glatter. Durch Verringern des Werts werden die Bilder insgesamt schärfer.

Hinweis: Diese Funktion hat keine Auswirkungen auf Qt-Versionen, die für OpenGL ES 2 kompiliert wurden.

Siehe auch „ levelofDetailBias()“.

void QOpenGLTexture::setMagnificationFilter(QOpenGLTexture::Filter filter)

Setzt den Vergrößerungsfilter auf „ filter “.

Siehe auch „ magnificationFilter()“, „ setMinificationFilter()“ und „ setMinMagFilters()“.

void QOpenGLTexture::setMaximumAnisotropy(float anisotropy)

Wenn Ihre OpenGL-Implementierung die Erweiterung GL_EXT_texture_filter_anisotropic unterstützt, setzt diese Funktion den maximalen Anisotropiegrad auf „ anisotropy “.

Siehe auch ` maximumAnisotropy()`.

void QOpenGLTexture::setMaximumLevelOfDetail(float value)

Legt die maximale Detailstufe auf „ value “ fest. Dadurch wird die Auswahl der Mipmap mit der niedrigsten Auflösung (höchste Mipmap-Stufe) eingeschränkt. Der Standardwert ist 1000.

Hinweis: Diese Funktion hat keine Auswirkungen auf Qt-Versionen, die für OpenGL ES 2 kompiliert wurden.

Siehe auch „ maximumLevelOfDetail()“, „ setMinimumLevelOfDetail()“ und „ setLevelOfDetailRange()“.

void QOpenGLTexture::setMinMagFilters(QOpenGLTexture::Filter minificationFilter, QOpenGLTexture::Filter magnificationFilter)

Setzt den Minifizierungsfilter auf minificationFilter und den Vergrößerungsfilter auf magnificationFilter.

Siehe auch minMagFilters(), setMinificationFilter() und setMagnificationFilter().

void QOpenGLTexture::setMinificationFilter(QOpenGLTexture::Filter filter)

Legt den für die Minifizierung verwendeten Filter auf „ filter “ fest.

Siehe auch „ minificationFilter()“, „ setMagnificationFilter()“ und „ setMinMagFilters()“.

void QOpenGLTexture::setMinimumLevelOfDetail(float value)

Legt die minimale Detailstufe auf „ value “ fest. Dadurch wird die Auswahl der Mipmap mit der höchsten Auflösung (niedrigste Mipmap-Stufe) eingeschränkt. Der Standardwert ist -1000.

Hinweis: Diese Funktion hat keine Auswirkungen auf Qt-Versionen, die für OpenGL ES 2 kompiliert wurden.

Siehe auch „ minimumLevelOfDetail()“, „ setMaximumLevelOfDetail()“ und „ setLevelOfDetailRange()“.

void QOpenGLTexture::setMipBaseLevel(int baseLevel)

Setzt die Basis-Mipmap-Stufe, die für alle Texturabrufe mit dieser Textur verwendet wird, auf „ baseLevel “.

Hinweis: Diese Funktion hat keine Auswirkungen auf Qt OpenGL, das für OpenGL ES 2 kompiliert wurde.

Siehe auch mipBaseLevel(), setMipMaxLevel() und setMipLevelRange().

void QOpenGLTexture::setMipLevelRange(int baseLevel, int maxLevel)

Legt den Bereich der Mipmap-Ebenen fest, die für Texturabfragen mit dieser Textur verwendet werden können, und zwar von baseLevel bis maxLevel.

Hinweis: Diese Funktion hat keine Auswirkungen auf Qt OpenGL, das für OpenGL ES 2 kompiliert wurde.

Siehe auch setMipBaseLevel(), setMipMaxLevel() und mipLevelRange().

void QOpenGLTexture::setMipLevels(int levels)

Bei Texturzielen, die Mipmaps unterstützen, legt diese Funktion die gewünschte Anzahl von Mipmap- levels n fest, für die Speicherplatz zugewiesen werden soll. Diese Funktion sollte aufgerufen werden, bevor Speicherplatz für die Textur zugewiesen wird.

Wenn das Texturziel keine Mipmaps unterstützt, hat diese Funktion keine Auswirkung.

Siehe auch ` mipLevels()`, ` maximumMipLevels()` und ` isStorageAllocated()`.

void QOpenGLTexture::setMipMaxLevel(int maxLevel)

Legt die maximale Mipmap-Stufe fest, die für alle Texturabfragen mit dieser Textur verwendet wird, auf „ maxLevel “.

Hinweis: Diese Funktion hat keine Auswirkungen auf Qt-Versionen, die für OpenGL ES 2 kompiliert wurden.

Siehe auch „ mipMaxLevel()“, „ setMipBaseLevel()“ und „ setMipLevelRange()“.

void QOpenGLTexture::setSamples(int samples)

Legt die Anzahl der „ samples “ fest, für die Speicherplatz zugewiesen werden soll, wenn auf ein Multisampling-fähiges Texturziel gerendert wird. Diese Funktion sollte aufgerufen werden, bevor Speicherplatz für die Textur zugewiesen wird.

Bei Zielen, die kein Multisampling unterstützen, hat diese Funktion keine Auswirkung.

Siehe auch „ samples()“ und „ isStorageAllocated()“.

void QOpenGLTexture::setSize(int width, int height = 1, int depth = 1)

Legt die Abmessungen dieses Texturobjekts auf width, height und depth fest. Der Standardwert für jede Abmessung beträgt 1. Die maximal zulässige Texturgröße hängt von Ihrer OpenGL-Implementierung ab. Die Zuweisung von Speicherplatz für eine Textur, die kleiner als die maximale Größe ist, kann dennoch fehlschlagen, wenn Ihr System über zu wenige Ressourcen verfügt.

Wenn ein Wert für ` width`, ` height ` oder ` depth ` angegeben wird, der keine Zweierpotenz ist, und Ihre OpenGL-Implementierung keine Unterstützung für sich wiederholende Texturen bietet, die keine Zweierpotenz sind, wird der Wrap-Modus automatisch auf ` ClampToEdge` gesetzt.

Siehe auch width(), height() und depth().

void QOpenGLTexture::setSwizzleMask(QOpenGLTexture::SwizzleComponent component, QOpenGLTexture::SwizzleValue value)

GLSL-Shader können die Komponenten des von Texturfunktionen zurückgegebenen vec4 neu anordnen. Es ist zudem wünschenswert, diese Neuanordnung über Code auf der CPU-Seite steuern zu können. Dies wird seit OpenGL 3.3 durch Swizzle-Masken ermöglicht.

Jede Komponente der Textur kann einer der Optionen „ SwizzleValue “ zugeordnet werden.

Diese Funktion ordnet „ component “ der Ausgabe „ value “ zu.

Hinweis: Diese Funktion hat auf Mac-Systemen und bei Qt-Versionen, die für OpenGL ES 2 kompiliert wurden, keine Wirkung.

Siehe auch ` swizzleMask()`.

void QOpenGLTexture::setSwizzleMask(QOpenGLTexture::SwizzleValue r, QOpenGLTexture::SwizzleValue g, QOpenGLTexture::SwizzleValue b, QOpenGLTexture::SwizzleValue a)

Die Parameter „ r “, „ g “, „ b “ und „ a “ sind Werte, die zur Einstellung der Farben Rot, Grün, Blau und des Alpha-Werts verwendet werden.

Dies ist eine überladene Funktion.

void QOpenGLTexture::setWrapMode(QOpenGLTexture::WrapMode mode)

Legt den Wrap-Modus (oder Wiederholungsmodus) für alle Texturdimensionen auf „ mode “ fest.

Siehe auch ` wrapMode()`.

void QOpenGLTexture::setWrapMode(QOpenGLTexture::CoordinateDirection direction, QOpenGLTexture::WrapMode mode)

Legt den Wrap-Modus (oder Wiederholungsmodus) für die Textur-Dimension „ direction “ auf „ mode “ fest.

Dies ist eine überladene Funktion.

QOpenGLTexture::SwizzleValue QOpenGLTexture::swizzleMask(QOpenGLTexture::SwizzleComponent component) const

Gibt die Swizzle-Maske für die Textur „ component “ zurück.

Siehe auch setSwizzleMask().

QOpenGLTexture::Target QOpenGLTexture::target() const

Gibt das Bindungsziel dieser Textur zurück.

GLuint QOpenGLTexture::textureId() const

Gibt den Namen des zugrunde liegenden OpenGL-Texturobjekts zurück oder 0, falls dieses noch nicht erstellt wurde.

Siehe auch create(), destroy() und isCreated().

int QOpenGLTexture::width() const

Gibt die Breite einer 1D-, 2D- oder 3D-Textur zurück.

Siehe auch height(), depth() und setSize().

QOpenGLTexture::WrapMode QOpenGLTexture::wrapMode(QOpenGLTexture::CoordinateDirection direction) const

Gibt den Wrap-Modus für die Texturdimension „ direction “ zurück.

Siehe auch setWrapMode().

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.