Spec-Zone.ru › Qt

Класс QOpenGLTexture

Класс QOpenGLTexture инкапсулирует объект текстуры OpenGL. Подробнее...

Заголовок: #include <QOpenGLTexture>
С момента: Qt 5.2
  • Список всех членов, включая унаследованные

Общедоступные типы

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

Общедоступные функции

QOpenGLTexture(const QImage &image, QOpenGLTexture::MipMapGeneration genMipMaps = GenerateMipMaps)
QOpenGLTexture(QOpenGLTexture::Target target)
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 глубина() const
QOpenGLTexture::DepthStencilMode режимГлубиныИШаблона() const
void уничтожить()
int граней() const
QOpenGLTexture::TextureFormat формат() const
void сгенерироватьMipКарты()
void сгенерироватьMipКарты(int baseLevel, bool resetBaseLevel = true)
int высота() const
bool естьАвтоматическоеСозданиеMipКарт() const
bool привязано() const
bool привязано(uint unit)
bool создано() const
bool фиксированныеПозицииСэмплов() const
bool хранилищеВыделено() const
bool представлениеТекстуры() const
int слои() const
QPair<float, float> диапазонУровнейПодробностей() const
float смещениеУровнейПодробностей() const
QOpenGLTexture::Filter фильтрУвеличения() const
float максимальнаяИзотропия() const
float максимальныйУровеньПодробностей() const
int максимальноеКоличествоMipУровней() const
QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter> фильтрыМинимальноеУвеличение() const
QOpenGLTexture::Filter фильтрУменьшения() const
float минимальныйУровеньПодробностей() const
int базовыйMipУровень() const
QPair<int, int> диапазонMipУровней() const
int количествоMipУровней() const
int максимальныйMipУровень() const
void освободить()
void освободить(uint unit, QOpenGLTexture::TextureUnitReset reset = DontResetTextureUnit)
int образцы() const
void включитьАвтоматическоеСозданиеMipКарт(bool enabled)
void установитьЦветГраницы(const QColor &color)
void установитьЦветГраницы(float r, float g, float b, float a)
void установитьЦветГраницы(int r, int g, int b, int a)
void установитьЦветГраницы(uint r, uint g, uint b, uint a)
void установитьФункциюСравнения(QOpenGLTexture::ComparisonFunction function)
void установитьРежимСравнения(QOpenGLTexture::ComparisonMode mode)
void установитьСжатыеДанные(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void установитьСжатыеДанные(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, 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 dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void setCompressedData(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(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 mipLevel, int layer, 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(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 setData(const QImage &image, QOpenGLTexture::MipMapGeneration genMipMaps = GenerateMipMaps)
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

Статические открытые члены

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

Подробное описание

QOpenGLTexture упрощает работу с текстурами OpenGL и многочисленными их функциями и типами, доступными в зависимости от возможностей вашей реализации OpenGL.

Типичный шаблон использования QOpenGLTexture:

  • Создание объекта, указав тип целевой текстуры
  • Указание свойств, влияющих на требования к хранению, например, формат хранения и размеры
  • Выделение памяти на стороне сервера
  • Необязательная загрузка пиксельных данных
  • Необязательное указание дополнительных свойств, например, фильтрации и параметров границы
  • Вывод с текстурой или вывод на текстуру

В общем случае, при использовании QImage в качестве источника пиксельных данных для текстуры, большинство из вышеперечисленных шагов выполняются автоматически.

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

Обратите внимание, что QImage зеркально отображается по вертикали, чтобы учесть тот факт, что OpenGL и QImage используют противоположные направления для оси y. Другой вариант — преобразовать ваши координаты текстуры.

Документация по типам членов

перечисление QOpenGLTexture::BindingTarget

Это перечисление определяет возможные целевые точки привязки единиц текстур.

Константа Значение Описание
QOpenGLTexture::BindingTarget1D 0x8068 Эквивалентно GL_TEXTURE_BINDING_1D
QOpenGLTexture::BindingTarget1DArray 0x8C1C Эквивалентно GL_TEXTURE_BINDING_1D_ARRAY
QOpenGLTexture::BindingTarget2D 0x8069 Эквивалентно GL_TEXTURE_BINDING_2D
QOpenGLTexture::BindingTarget2DArray 0x8C1D Эквивалентно GL_TEXTURE_BINDING_2D_ARRAY
QOpenGLTexture::BindingTarget3D 0x806A Эквивалентно GL_TEXTURE_BINDING_3D
QOpenGLTexture::BindingTargetCubeMap 0x8514 Эквивалентно GL_TEXTURE_BINDING_CUBE_MAP
QOpenGLTexture::BindingTargetCubeMapArray 0x900A Эквивалентно GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
QOpenGLTexture::BindingTarget2DMultisample 0x9104 Эквивалентно GL_TEXTURE_BINDING_2D_MULTISAMPLE
QOpenGLTexture::BindingTarget2DMultisampleArray 0x9105 Эквивалентно GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
QOpenGLTexture::BindingTargetRectangle 0x84F6 Эквивалентно GL_TEXTURE_BINDING_RECTANGLE
QOpenGLTexture::BindingTargetBuffer 0x8C2C Эквивалентно GL_TEXTURE_BINDING_BUFFER

[since 5.5] перечисление QOpenGLTexture::ComparisonFunction

Это перечисление задает оператор сравнения, используемый при включенном сравнении текстур в этой текстуре.

Константа Значение Описание
QOpenGLTexture::CompareLessEqual 0x0203 Эквивалентно GL_LEQUAL.
QOpenGLTexture::CompareGreaterEqual 0x0206 Эквивалентно GL_GEQUAL.
QOpenGLTexture::CompareLess 0x0201 Эквивалентно GL_LESS.
QOpenGLTexture::CompareGreater 0x0204 Эквивалентно GL_GREATER.
QOpenGLTexture::CompareEqual 0x0202 Эквивалентно GL_EQUAL.
QOpenGLTexture::CompareNotEqual 0x0205 Эквивалентно GL_NOTEQUAL.
QOpenGLTexture::CompareAlways 0x0207 Эквивалентно GL_ALWAYS.
QOpenGLTexture::CompareNever 0x0200 Эквивалентно GL_NEVER.

Это перечисление было добавлено или изменено в Qt 5.5.

[since 5.5] перечисление QOpenGLTexture::ComparisonMode

Это перечисление задает режим сравнения при выборке из этой текстуры.

Константа Значение Описание
QOpenGLTexture::CompareRefToTexture 0x884E Эквивалентно GL_COMPARE_REF_TO_TEXTURE.
QOpenGLTexture::CompareNone 0x0000 Эквивалентно GL_NONE.

Это перечисление было добавлено или изменено в Qt 5.5.

перечисление QOpenGLTexture::CoordinateDirection

Это перечисление определяет возможные направления координат текстуры

Константа Значение Описание
QOpenGLTexture::DirectionS 0x2802 Горизонтальное направление. Эквивалентно GL_TEXTURE_WRAP_S
QOpenGLTexture::DirectionT 0x2803 Вертикальное направление. Эквивалентно GL_TEXTURE_WRAP_T
QOpenGLTexture::DirectionR 0x8072 Направление глубины. Эквивалентно GL_TEXTURE_WRAP_R

перечисление QOpenGLTexture::CubeMapFace

Это перечисление определяет возможные грани куба.

Константа Значение Описание
QOpenGLTexture::CubeMapPositiveX 0x8515 Эквивалентно GL_TEXTURE_CUBE_MAP_POSITIVE_X
QOpenGLTexture::CubeMapNegativeX 0x8516 Эквивалентно GL_TEXTURE_CUBE_MAP_NEGATIVE_X
QOpenGLTexture::CubeMapPositiveY 0x8517 Эквивалентно GL_TEXTURE_CUBE_MAP_POSITIVE_Y
QOpenGLTexture::CubeMapNegativeY 0x8518 Эквивалентно GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
QOpenGLTexture::CubeMapPositiveZ 0x8519 Эквивалентно GL_TEXTURE_CUBE_MAP_POSITIVE_Z
QOpenGLTexture::CubeMapNegativeZ 0x851A Эквивалентно GL_TEXTURE_CUBE_MAP_NEGATIVE_Z

[since 5.4] перечисление QOpenGLTexture::DepthStencilMode

Это перечисление задаёт, какой компонент глубины/штампа текстуры используется при выборке из текстуры.

Константа Значение Описание
QOpenGLTexture::DepthMode 0x1902 Эквивалентно GL_DEPTH_COMPONENT.
QOpenGLTexture::StencilMode 0x1901 Эквивалентно GL_STENCIL_INDEX.

Это перечисление было добавлено или изменено в Qt 5.4.

перечисление QOpenGLTexture::Featureфлаги QOpenGLTexture::Features

Это перечисление определяет функции OpenGL, связанные с текстурами, которые можно проверить.

Постоянная Значение Описание
QOpenGLTexture::ImmutableStorage 0x00000001 Поддержка неизменяемого хранения текстур
QOpenGLTexture::ImmutableMultisampleStorage 0x00000002 Поддержка неизменяемого хранения текстур с многократными выборками
QOpenGLTexture::TextureRectangle 0x00000004 Поддержка целевого значения GL_TEXTURE_RECTANGLE
QOpenGLTexture::TextureArrays 0x00000008 Поддержка текстурных целей с массивами слоёв
QOpenGLTexture::Texture3D 0x00000010 Поддержка 3-мерной текстурной цели
QOpenGLTexture::TextureMultisample 0x00000020 Поддержка текстурных целей, обладающих возможностями многократных выборок
QOpenGLTexture::TextureBuffer 0x00000040 Поддержка текстур, использующих буферы OpenGL в качестве источника данных
QOpenGLTexture::TextureCubeMapArrays 0x00000080 Поддержка целевой текстуры массива куба
QOpenGLTexture::Swizzle 0x00000100 Поддержка масок смешивания компонентов текстуры
QOpenGLTexture::StencilTexturing 0x00000200 Поддержка текстурирования с помощью маски (т.е. поиск глубинных или маскированных компонентов текстуры объединённого формата глубина/маска в шейдерах GLSL).
QOpenGLTexture::AnisotropicFiltering 0x00000400 Поддержка анизотропной фильтрации текстур
QOpenGLTexture::NPOTTextures 0x00000800 Базовая поддержка текстур, не являющихся степенью двойки
QOpenGLTexture::NPOTTextureRepeat 0x00001000 Полная поддержка текстур, не являющихся степенью двойки, включая режимы повторения текстуры
QOpenGLTexture::Texture1D 0x00002000 Поддержка 1-мерной текстурной цели
QOpenGLTexture::TextureComparisonOperators 0x00004000 Поддержка операторов сравнения текстур
QOpenGLTexture::TextureMipMapLevel 0x00008000 Поддержка установки базовых и максимальных уровней mipmap

Тип Features — это псевдоним для QFlags<Feature>. Он хранит логическое ИЛИ комбинацию значений Feature.

перечисление QOpenGLTexture::Filter

Это перечисление определяет параметры фильтрации для объекта QOpenGLTexture.

Постоянная Значение Описание
QOpenGLTexture::Nearest 0x2600 Эквивалентно GL_NEAREST
QOpenGLTexture::Linear 0x2601 Эквивалентно GL_LINEAR
QOpenGLTexture::NearestMipMapNearest 0x2700 Эквивалентно GL_NEAREST_MIPMAP_NEAREST
QOpenGLTexture::NearestMipMapLinear 0x2702 Эквивалентно GL_NEAREST_MIPMAP_LINEAR
QOpenGLTexture::LinearMipMapNearest 0x2701 Эквивалентно GL_LINEAR_MIPMAP_NEAREST
QOpenGLTexture::LinearMipMapLinear 0x2703 Эквивалентно GL_LINEAR_MIPMAP_LINEAR

перечисление QOpenGLTexture::MipMapGeneration

Это перечисление определяет параметры управления генерацией mipmap.

Постоянная Значение Описание
QOpenGLTexture::GenerateMipMaps 0 Mipmap должны быть сгенерированы
QOpenGLTexture::DontGenerateMipMaps 1 Mipmap не должны быть сгенерированы

перечисление QOpenGLTexture::PixelFormat

Это перечисление определяет возможные форматы пикселей на стороне клиента для операции передачи пикселей.

Постоянная Значение Описание
QOpenGLTexture::NoSourceFormat 0 Эквивалентно GL_NONE
QOpenGLTexture::Red 0x1903 Эквивалентно GL_RED
QOpenGLTexture::RG 0x8227 Эквивалентно GL_RG
QOpenGLTexture::RGB 0x1907 Эквивалентно GL_RGB
QOpenGLTexture::BGR 0x80E0 Эквивалентно GL_BGR
QOpenGLTexture::RGBA 0x1908 Эквивалентно GL_RGBA
QOpenGLTexture::BGRA 0x80E1 Эквивалентно GL_BGRA
QOpenGLTexture::Red_Integer 0x8D94 Эквивалентно GL_RED_INTEGER
QOpenGLTexture::RG_Integer 0x8228 Эквивалентно GL_RG_INTEGER
QOpenGLTexture::RGB_Integer 0x8D98 Эквивалентно GL_RGB_INTEGER
QOpenGLTexture::BGR_Integer 0x8D9A Эквивалентно GL_BGR_INTEGER
QOpenGLTexture::RGBA_Integer 0x8D99 Эквивалентно GL_RGBA_INTEGER
QOpenGLTexture::BGRA_Integer 0x8D9B Эквивалентно GL_BGRA_INTEGER
QOpenGLTexture::Stencil 0x1901 Эквивалентно GL_STENCIL_INDEX. Введено в Qt 5.4
QOpenGLTexture::Depth 0x1902 Эквивалентно GL_DEPTH_COMPONENT
QOpenGLTexture::DepthStencil 0x84F9 Эквивалентно GL_DEPTH_STENCIL
QOpenGLTexture::Alpha 0x1906 Эквивалентно GL_ALPHA (только OpenGL ES 2)
QOpenGLTexture::Luminance 0x1909 Эквивалентно GL_LUMINANCE (только OpenGL ES 2)
QOpenGLTexture::LuminanceAlpha 0x190A Эквивалентно GL_LUMINANCE_ALPHA (только OpenGL ES 2)

перечисление QOpenGLTexture::PixelType

Это перечисление определяет возможные типы данных пикселей для операции передачи пикселей

Константа Значение Описание
QOpenGLTexture::NoPixelType 0 Эквивалентно GL_NONE
QOpenGLTexture::Int8 0x1400 Эквивалентно GL_BYTE
QOpenGLTexture::UInt8 0x1401 Эквивалентно GL_UNSIGNED_BYTE
QOpenGLTexture::Int16 0x1402 Эквивалентно GL_SHORT
QOpenGLTexture::UInt16 0x1403 Эквивалентно GL_UNSIGNED_SHORT
QOpenGLTexture::Int32 0x1404 Эквивалентно GL_INT
QOpenGLTexture::UInt32 0x1405 Эквивалентно GL_UNSIGNED_INT
QOpenGLTexture::Float16 0x140B Эквивалентно GL_HALF_FLOAT
QOpenGLTexture::Float16OES 0x8D61 Эквивалентно GL_HALF_FLOAT_OES
QOpenGLTexture::Float32 0x1406 Эквивалентно GL_FLOAT
QOpenGLTexture::UInt32_RGB9_E5 0x8C3E Эквивалентно GL_UNSIGNED_INT_5_9_9_9_REV
QOpenGLTexture::UInt32_RG11B10F 0x8C3B Эквивалентно GL_UNSIGNED_INT_10F_11F_11F_REV
QOpenGLTexture::UInt8_RG3B2 0x8032 Эквивалентно GL_UNSIGNED_BYTE_3_3_2
QOpenGLTexture::UInt8_RG3B2_Rev 0x8362 Эквивалентно GL_UNSIGNED_BYTE_2_3_3_REV
QOpenGLTexture::UInt16_RGB5A1 0x8034 Эквивалентно GL_UNSIGNED_SHORT_5_5_5_1
QOpenGLTexture::UInt16_RGB5A1_Rev 0x8366 Эквивалентно GL_UNSIGNED_SHORT_1_5_5_5_REV
QOpenGLTexture::UInt16_R5G6B5 0x8363 Эквивалентно GL_UNSIGNED_SHORT_5_6_5
QOpenGLTexture::UInt16_R5G6B5_Rev 0x8364 Эквивалентно GL_UNSIGNED_SHORT_5_6_5_REV
QOpenGLTexture::UInt16_RGBA4 0x8033 Эквивалентно GL_UNSIGNED_SHORT_4_4_4_4
QOpenGLTexture::UInt16_RGBA4_Rev 0x8365 Эквивалентно GL_UNSIGNED_SHORT_4_4_4_4_REV
QOpenGLTexture::UInt32_RGBA8 0x8035 Эквивалентно GL_UNSIGNED_INT_8_8_8_8
QOpenGLTexture::UInt32_RGBA8_Rev 0x8367 Эквивалентно GL_UNSIGNED_INT_8_8_8_8_REV
QOpenGLTexture::UInt32_RGB10A2 0x8036 Эквивалентно GL_UNSIGNED_INT_10_10_10_2
QOpenGLTexture::UInt32_RGB10A2_Rev 0x8368 Эквивалентно GL_UNSIGNED_INT_2_10_10_10_REV
QOpenGLTexture::UInt32_D24S8 0x84FA Эквивалентно GL_UNSIGNED_INT_24_8. Введено в Qt 5.4
QOpenGLTexture::Float32_D32_UInt32_S8_X24 0x8DAD Эквивалентно GL_FLOAT_32_UNSIGNED_INT_24_8_REV. Введено в Qt 5.4

Перечисление QOpenGLTexture::SwizzleComponent

Это перечисление определяет компоненты цвета текстуры, которым можно назначить маску перестановки.

Константа Значение Описание
QOpenGLTexture::SwizzleRed 0x8E42 Красный компонент. Эквивалентно GL_TEXTURE_SWIZZLE_R
QOpenGLTexture::SwizzleGreen 0x8E43 Зелёный компонент. Эквивалентно GL_TEXTURE_SWIZZLE_G
QOpenGLTexture::SwizzleBlue 0x8E44 Синий компонент. Эквивалентно GL_TEXTURE_SWIZZLE_B
QOpenGLTexture::SwizzleAlpha 0x8E45 Альфа-компонент. Эквивалентно GL_TEXTURE_SWIZZLE_A

Перечисление QOpenGLTexture::SwizzleValue

Это перечисление определяет возможные значения маски для перестановки текстуры.

Константа Значение Описание
QOpenGLTexture::RedValue 0x1903 Картирует компонент в красный канал. Эквивалентно GL_RED
QOpenGLTexture::GreenValue 0x1904 Картирует компонент в зелёный канал. Эквивалентно GL_GREEN
QOpenGLTexture::BlueValue 0x1905 Картирует компонент в синий канал. Эквивалентно GL_BLUE
QOpenGLTexture::AlphaValue 0x1906 Картирует компонент в альфа-канал. Эквивалентно GL_ALPHA
QOpenGLTexture::ZeroValue 0 Картирует компонент в фиксированное значение 0. Эквивалентно GL_ZERO
QOpenGLTexture::OneValue 1 Картирует компонент в фиксированное значение 1. Эквивалентно GL_ONE

Перечисление QOpenGLTexture::Target

Это перечисление определяет целевой тип текстуры объекта QOpenGLTexture. Для получения дополнительной информации о создании массивов текстур, см. Массив текстур.

Константа Значение Описание
QOpenGLTexture::Target1D 0x0DE0 Текстура 1-мерная. Эквивалентно GL_TEXTURE_1D.
QOpenGLTexture::Target1DArray 0x8C18 Массив 1-мерных текстур. Эквивалентно GL_TEXTURE_1D_ARRAY
QOpenGLTexture::Target2D 0x0DE1 Текстура 2-мерная. Эквивалентно GL_TEXTURE_2D
QOpenGLTexture::Target2DArray 0x8C1A Массив 2-мерных текстур. Эквивалентно GL_TEXTURE_2D_ARRAY
QOpenGLTexture::Target3D 0x806F Текстура 3-мерная. Эквивалентно GL_TEXTURE_3D
QOpenGLTexture::TargetCubeMap 0x8513 Текстура куба. Эквивалентно GL_TEXTURE_CUBE_MAP
QOpenGLTexture::TargetCubeMapArray 0x9009 Массив текстур куба. Эквивалентно GL_TEXTURE_CUBE_MAP_ARRAY
QOpenGLTexture::Target2DMultisample 0x9100 2-мерная текстура с поддержкой мультисэмплинга. Эквивалентно GL_TEXTURE_2D_MULTISAMPLE
QOpenGLTexture::Target2DMultisampleArray 0x9102 Массив 2-мерных текстур с поддержкой мультисэмплинга. Эквивалентно GL_TEXTURE_2D_MULTISAMPLE_ARRAY
QOpenGLTexture::TargetRectangle 0x84F5 Прямоугольная 2-мерная текстура. Эквивалентно GL_TEXTURE_RECTANGLE
QOpenGLTexture::TargetBuffer 0x8C2A Текстура с данными из OpenGL буфера. Эквивалентно GL_TEXTURE_BUFFER

Перечисление QOpenGLTexture::TextureFormat

Это перечисление определяет возможные форматы текстур. В зависимости от вашей реализации OpenGL может быть поддержана только часть из них.

Константа Значение Описание
QOpenGLTexture::NoFormat 0 Эквивалентно GL_NONE
QOpenGLTexture::R8_UNorm 0x8229 Эквивалентно GL_R8
QOpenGLTexture::RG8_UNorm 0x822B Эквивалентно GL_RG8
QOpenGLTexture::RGB8_UNorm 0x8051 Эквивалентно GL_RGB8
QOpenGLTexture::RGBA8_UNorm 0x8058 Эквивалентно GL_RGBA8
QOpenGLTexture::R16_UNorm 0x822A Эквивалентно GL_R16
QOpenGLTexture::RG16_UNorm 0x822C Эквивалентно GL_RG16
QOpenGLTexture::RGB16_UNorm 0x8054 Эквивалентно GL_RGB16
QOpenGLTexture::RGBA16_UNorm 0x805B Эквивалентно GL_RGBA16
QOpenGLTexture::R8_SNorm 0x8F94 Эквивалентно GL_R8_SNORM
QOpenGLTexture::RG8_SNorm 0x8F95 Эквивалентно GL_RG8_SNORM
QOpenGLTexture::RGB8_SNorm 0x8F96 Эквивалентно GL_RGB8_SNORM
QOpenGLTexture::RGBA8_SNorm 0x8F97 Эквивалентно GL_RGBA8_SNORM
QOpenGLTexture::R16_SNorm 0x8F98 Эквивалентно GL_R16_SNORM
QOpenGLTexture::RG16_SNorm 0x8F99 Эквивалентно GL_RG16_SNORM
QOpenGLTexture::RGB16_SNorm 0x8F9A Эквивалентно GL_RGB16_SNORM
QOpenGLTexture::RGBA16_SNorm 0x8F9B Эквивалентно GL_RGBA16_SNORM
QOpenGLTexture::R8U 0x8232 Эквивалентно GL_R8UI
QOpenGLTexture::RG8U 0x8238 Эквивалентно GL_RG8UI
QOpenGLTexture::RGB8U 0x8D7D Эквивалентно GL_RGB8UI
QOpenGLTexture::RGBA8U 0x8D7C Эквивалентно GL_RGBA8UI
QOpenGLTexture::R16U 0x8234 Эквивалентно GL_R16UI
QOpenGLTexture::RG16U 0x823A Эквивалентно GL_RG16UI
QOpenGLTexture::RGB16U 0x8D77 Эквивалентно GL_RGB16UI
QOpenGLTexture::RGBA16U 0x8D76 Эквивалентно GL_RGBA16UI
QOpenGLTexture::R32U 0x8236 Эквивалентно GL_R32UI
QOpenGLTexture::RG32U 0x823C Эквивалентно GL_RG32UI
QOpenGLTexture::RGB32U 0x8D71 Эквивалентно GL_RGB32UI
QOpenGLTexture::RGBA32U 0x8D70 Эквивалентно GL_RGBA32UI
QOpenGLTexture::R8I 0x8231 Эквивалентно GL_R8I
QOpenGLTexture::RG8I 0x8237 Эквивалентно GL_RG8I
QOpenGLTexture::RGB8I 0x8D8F Эквивалентно GL_RGB8I
QOpenGLTexture::RGBA8I 0x8D8E Эквивалентно GL_RGBA8I
QOpenGLTexture::R16I 0x8233 Эквивалентно GL_R16I
QOpenGLTexture::RG16I 0x8239 Эквивалентно GL_RG16I
QOpenGLTexture::RGB16I 0x8D89 Эквивалентно GL_RGB16I
QOpenGLTexture::RGBA16I 0x8D88 Эквивалентно GL_RGBA16I
QOpenGLTexture::R32I 0x8235 Эквивалентно GL_R32I
QOpenGLTexture::RG32I 0x823B Эквивалентно GL_RG32I
QOpenGLTexture::RGB32I 0x8D83 Эквивалентно GL_RGB32I
QOpenGLTexture::RGBA32I 0x8D82 Эквивалентно GL_RGBA32I
QOpenGLTexture::R16F 0x822D Эквивалентно GL_R16F
QOpenGLTexture::RG16F 0x822F Эквивалентно GL_RG16F
QOpenGLTexture::RGB16F 0x881B Эквивалентно GL_RGB16F
QOpenGLTexture::RGBA16F 0x881A Эквивалентно GL_RGBA16F
QOpenGLTexture::R32F 0x822E Эквивалентно GL_R32F
QOpenGLTexture::RG32F 0x8230 Эквивалентно GL_RG32F
QOpenGLTexture::RGB32F 0x8815 Эквивалентно GL_RGB32F
QOpenGLTexture::RGBA32F 0x8814 Эквивалентно GL_RGBA32F
QOpenGLTexture::RGB9E5 0x8C3D Эквивалентно GL_RGB9_E5
QOpenGLTexture::RG11B10F 0x8C3A Эквивалентно GL_R11F_G11F_B10F
QOpenGLTexture::RG3B2 0x2A10 Эквивалентно GL_R3_G3_B2
QOpenGLTexture::R5G6B5 0x8D62 Эквивалентно GL_RGB565
QOpenGLTexture::RGB5A1 0x8057 Эквивалентно GL_RGB5_A1
QOpenGLTexture::RGBA4 0x8056 Эквивалентно GL_RGBA4
QOpenGLTexture::RGB10A2 0x906F Эквивалентно GL_RGB10_A2UI
QOpenGLTexture::D16 0x81A5 Эквивалентно GL_DEPTH_COMPONENT16
QOpenGLTexture::D24 0x81A6 Эквивалентно GL_DEPTH_COMPONENT24
QOpenGLTexture::D24S8 0x88F0 Эквивалентно GL_DEPTH24_STENCIL8
QOpenGLTexture::D32 0x81A7 Эквивалентно GL_DEPTH_COMPONENT32
QOpenGLTexture::D32F 0x8CAC Эквивалентно GL_DEPTH_COMPONENT32F
QOpenGLTexture::D32FS8X24 0x8CAD Эквивалентно GL_DEPTH32F_STENCIL8
QOpenGLTexture::S8 0x8D48 Эквивалентно GL_STENCIL_INDEX8. Введено в Qt 5.4
QOpenGLTexture::RGB_DXT1 0x83F0 Эквивалентно GL_COMPRESSED_RGB_S3TC_DXT1_EXT
QOpenGLTexture::RGBA_DXT1 0x83F1 Эквивалентно GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
QOpenGLTexture::RGBA_DXT3 0x83F2 Эквивалентно GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
QOpenGLTexture::RGBA_DXT5 0x83F3 Эквивалентно GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
QOpenGLTexture::R_ATI1N_UNorm 0x8DBB Эквивалентно GL_COMPRESSED_RED_RGTC1
QOpenGLTexture::R_ATI1N_SNorm 0x8DBC Эквивалентно GL_COMPRESSED_SIGNED_RED_RGTC1
QOpenGLTexture::RG_ATI2N_UNorm 0x8DBD Эквивалентно GL_COMPRESSED_RG_RGTC2
QOpenGLTexture::RG_ATI2N_SNorm 0x8DBE Эквивалентно GL_COMPRESSED_SIGNED_RG_RGTC2
QOpenGLTexture::RGB_BP_UNSIGNED_FLOAT 0x8E8F Эквивалентно GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
QOpenGLTexture::RGB_BP_SIGNED_FLOAT 0x8E8E Эквивалентно GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
QOpenGLTexture::RGB_BP_UNorm 0x8E8C Эквивалентно GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
QOpenGLTexture::R11_EAC_UNorm 0x9270 Эквивалентно GL_COMPRESSED_R11_EAC
QOpenGLTexture::R11_EAC_SNorm 0x9271 Эквивалентно GL_COMPRESSED_SIGNED_R11_EAC
QOpenGLTexture::RG11_EAC_UNorm 0x9272 Эквивалентно GL_COMPRESSED_RG11_EAC
QOpenGLTexture::RG11_EAC_SNorm 0x9273 Эквивалентно GL_COMPRESSED_SIGNED_RG11_EAC
QOpenGLTexture::RGB8_ETC2 0x9274 Эквивалентно GL_COMPRESSED_RGB8_ETC2
QOpenGLTexture::SRGB8_ETC2 0x9275 Эквивалентно GL_COMPRESSED_SRGB8_ETC2
QOpenGLTexture::RGB8_PunchThrough_Alpha1_ETC2 0x9276 Эквивалентно GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
QOpenGLTexture::SRGB8_PunchThrough_Alpha1_ETC2 0x9277 Эквивалентно GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
QOpenGLTexture::RGBA8_ETC2_EAC 0x9278 Эквивалентно GL_COMPRESSED_RGBA8_ETC2_EAC
QOpenGLTexture::SRGB8_Alpha8_ETC2_EAC 0x9279 Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
QOpenGLTexture::RGB8_ETC1 0x8D64 Эквивалентно GL_ETC1_RGB8_OES
QOpenGLTexture::RGBA_ASTC_4x4 0x93B0 Эквивалентно GL_COMPRESSED_RGBA_ASTC_4x4_KHR
QOpenGLTexture::RGBA_ASTC_5x4 0x93B1 Эквивалентно GL_COMPRESSED_RGBA_ASTC_5x4_KHR
QOpenGLTexture::RGBA_ASTC_5x5 0x93B2 Эквивалентно GL_COMPRESSED_RGBA_ASTC_5x5_KHR
QOpenGLTexture::RGBA_ASTC_6x5 0x93B3 Эквивалентно GL_COMPRESSED_RGBA_ASTC_6x5_KHR
QOpenGLTexture::RGBA_ASTC_6x6 0x93B4 Эквивалентно GL_COMPRESSED_RGBA_ASTC_6x6_KHR
QOpenGLTexture::RGBA_ASTC_8x5 0x93B5 Эквивалентно GL_COMPRESSED_RGBA_ASTC_8x5_KHR
QOpenGLTexture::RGBA_ASTC_8x6 0x93B6 Эквивалентно GL_COMPRESSED_RGBA_ASTC_8x6_KHR
QOpenGLTexture::RGBA_ASTC_8x8 0x93B7 Эквивалентно GL_COMPRESSED_RGBA_ASTC_8x8_KHR
QOpenGLTexture::RGBA_ASTC_10x5 0x93B8 Эквивалентно GL_COMPRESSED_RGBA_ASTC_10x5_KHR
QOpenGLTexture::RGBA_ASTC_10x6 0x93B9 Эквивалентно GL_COMPRESSED_RGBA_ASTC_10x6_KHR
QOpenGLTexture::RGBA_ASTC_10x8 0x93BA Эквивалентно GL_COMPRESSED_RGBA_ASTC_10x8_KHR
QOpenGLTexture::RGBA_ASTC_10x10 0x93BB Эквивалентно GL_COMPRESSED_RGBA_ASTC_10x10_KHR
QOpenGLTexture::RGBA_ASTC_12x10 0x93BC Эквивалентно GL_COMPRESSED_RGBA_ASTC_12x10_KHR
QOpenGLTexture::RGBA_ASTC_12x12 0x93BD Эквивалентно GL_COMPRESSED_RGBA_ASTC_12x12_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_4x4 0x93D0 Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_5x4 0x93D1 Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_5x5 0x93D2 Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_6x5 0x93D3 Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_6x6 0x93D4 Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_8x5 0x93D5 Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_8x6 0x93D6 Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_8x8 0x93D7 Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_10x5 0x93D8 Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_10x6 0x93D9 Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_10x8 0x93DA Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_10x10 0x93DB Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_12x10 0x93DC Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
QOpenGLTexture::SRGB8_Alpha8_ASTC_12x12 0x93DD Эквивалентно GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
QOpenGLTexture::SRGB8 0x8C41 Эквивалентно GL_SRGB8
QOpenGLTexture::SRGB8_Alpha8 0x8C43 Эквивалентно GL_SRGB8_ALPHA8
QOpenGLTexture::SRGB_DXT1 0x8C4C Эквивалентно GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
QOpenGLTexture::SRGB_Alpha_DXT1 0x8C4D Эквивалентно GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
QOpenGLTexture::SRGB_Alpha_DXT3 0x8C4E Эквивалентно GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
QOpenGLTexture::SRGB_Alpha_DXT5 0x8C4F Эквивалентно GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
QOpenGLTexture::SRGB_BP_UNorm 0x8E8D Эквивалентно GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
QOpenGLTexture::DepthFormat 0x1902 Эквивалентно GL_DEPTH_COMPONENT (только OpenGL ES 3 или ES 2 с OES_depth_texture)
QOpenGLTexture::AlphaFormat 0x1906 Эквивалентно GL_ALPHA (только OpenGL ES 2)
QOpenGLTexture::RGBFormat 0x1907 Эквивалентно GL_RGB (только OpenGL ES 2)
QOpenGLTexture::RGBAFormat 0x1908 Эквивалентно GL_RGBA (только OpenGL ES 2)
QOpenGLTexture::LuminanceFormat 0x1909 Эквивалентно GL_LUMINANCE (только OpenGL ES 2)
QOpenGLTexture::LuminanceAlphaFormat 0x190A Эквивалентно GL_LUMINANCE_ALPHA (только OpenGL ES 2)

enum QOpenGLTexture::TextureUnitReset

Этот перечисление определяет опции для управления активацией блока текстур.

Константа Значение Описание
QOpenGLTexture::ResetTextureUnit 0 Предыдущий активный блок текстур будет сброшен
QOpenGLTexture::DontResetTextureUnit 1 Предыдущий активный блок текстур не будет сброшен

enum QOpenGLTexture::WrapMode

Это перечисление определяет возможные режимы обертывания текстурных координат.

Константа Значение Описание
QOpenGLTexture::Repeat 0x2901 Текстурные координаты повторяются. Эквивалентно GL_REPEAT
QOpenGLTexture::MirroredRepeat 0x8370 Текстурные координаты отражаются относительно 0 и 1. Эквивалентно GL_MIRRORED_REPEAT
QOpenGLTexture::ClampToEdge 0x812F Ограничивает текстурные координаты до [0,1]. Эквивалентно GL_CLAMP_TO_EDGE
QOpenGLTexture::ClampToBorder 0x812D Аналогично ClampToEdge, но также смешивает образцы в 0 и 1 с фиксированным цветом границы. Эквивалентно GL_CLAMP_TO_BORDER

Документация по функциям-членам

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

Создает объект QOpenGLTexture, который впоследствии может быть привязан к целевому 2D текстуре и содержит данные пикселей, содержащиеся в image. Если вы хотите сгенерировать цепочку mipmap, установите genMipMaps в true (это значение по умолчанию).

Это создает базовый объект OpenGL текстуры. Следовательно, создание с помощью этого конструктора требует наличия действительного текущего контекста OpenGL.

QOpenGLTexture::QOpenGLTexture(QOpenGLTexture::Target target)

Создает объект QOpenGLTexture, который впоследствии может быть привязан к target.

Это не создает базовый объект OpenGL текстуры. Следовательно, создание с помощью этого конструктора не требует наличия действительного текущего контекста OpenGL.

void QOpenGLTexture::allocateStorage()

Выделяет хранилище на стороне сервера для этого объекта текстуры с учётом формата, размеров, уровней mipmap, массивов слоёв и граней кубовой карты.

После выделения хранилища изменить эти свойства больше нельзя.

Если поддерживается, QOpenGLTexture использует неизменяемое хранилище текстур.

После выделения хранилища для текстуры данные пикселей можно загрузить с помощью одного из перегруженных методов setData().

Примечание: Если неизменяемое хранилище текстур недоступно, то будет использоваться стандартный формат и тип пикселей для создания изменяемого хранилища. Вы можете использовать другой перегруженный метод allocateStorage(), чтобы указать точный формат и тип пикселей для выделения изменяемого хранилища; это особенно полезно в определённых реализациях OpenGL ES (в частности, OpenGL ES 2), где формат и тип пикселей, используемые при выделении, должны точно соответствовать формату и типу, переданным в последующий вызов setData().

См. также isStorageAllocated() и setData().

[since 5.5] void QOpenGLTexture::allocateStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType)

Выделяет хранилище на стороне сервера для этого объекта текстуры с учётом формата, размеров, уровней mipmap, массивов слоёв и граней кубовой карты.

После выделения хранилища изменить эти свойства больше нельзя.

Если поддерживается, QOpenGLTexture использует неизменяемое хранилище текстур. Однако, если неизменяемое хранилище текстур недоступно, то указанные pixelFormat и pixelType будут использованы для выделения изменяемого хранилища; обратите внимание, что в определённых реализациях OpenGL (в частности, OpenGL ES 2) они должны точно соответствовать формату и типу, переданным в последующий вызов setData().

После выделения хранилища для текстуры данные пикселей можно загрузить с помощью одного из перегруженных методов setData().

Эта функция была добавлена в Qt 5.5.

См. также isStorageAllocated() и setData().

void QOpenGLTexture::bind()

Привязывает эту текстуру к текущему активному блоку текстур, готовую для рендеринга. Обратите внимание, что вам не нужно привязывать объекты QOpenGLTexture для их изменения, так как реализация использует расширение EXT_direct_state_access, где оно доступно, и эмулирует его там, где нет.

См. также release().

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

Привязывает эту текстуру к блоку текстур unit, готовую для рендеринга. Обратите внимание, что вам не нужно привязывать объекты QOpenGLTexture для их изменения, так как реализация использует расширение EXT_direct_state_access, где оно доступно, и эмулирует его там, где нет.

Если параметр reset равен true, то эта функция восстановит активный блок до блока текстур, который был активен при входе.

См. также release().

QColor QOpenGLTexture::borderColor() const

Возвращает цвет границы этой текстуры.

См. также setBorderColor().

void QOpenGLTexture::borderColor(float *border) const

Записывает цвет границы текстуры в первые четыре элемента массива, указанного по адресу border.

См. также setBorderColor().

void QOpenGLTexture::borderColor(int *border) const

Записывает цвет границы текстуры в первые четыре элемента массива, указанного по адресу border.

Это перегруженная функция.

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

Записывает цвет границы текстуры в первые четыре элемента массива, указанного по адресу border.

Это перегруженная функция.

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

Возвращает textureId текстуры, привязанной к target текущего активного блока текстур.

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

Возвращает textureId текстуры, привязанной к target блока текстур unit.

[since 5.5] QOpenGLTexture::ComparisonFunction QOpenGLTexture::comparisonFunction() const

Возвращает оператор сравнения текстуры, установленный для этой текстуры. По умолчанию, текстура имеет оператор сравнения CompareLessEqual.

Эта функция была добавлена в Qt 5.5.

См. также setComparisonFunction().

[since 5.5] QOpenGLTexture::ComparisonMode QOpenGLTexture::comparisonMode() const

Возвращает режим сравнения текстуры, установленный для этой текстуры. По умолчанию, текстура имеет режим сравнения CompareNone (т. е. сравнения отключены).

Эта функция была добавлена в Qt 5.5.

См. также setComparisonMode().

bool QOpenGLTexture::create()

Создаёт базовый объект OpenGL текстуры. Это требует наличия текущего действительного контекста OpenGL. Если объект текстуры уже существует, эта функция ничего не делает.

После создания объекта текстуры вы можете получить имя объекта из функции textureId(). Это может быть полезно, если вы хотите выполнить некоторые прямые вызовы OpenGL, связанные с этой текстурой.

Обычно не нужно вызывать эту функцию напрямую, так как все функции, которые устанавливают свойства объекта текстуры, неявно вызывают create() от вашего имени.

Возвращает true если создание прошло успешно, в противном случае возвращает false.

См. также destroy(), isCreated(), и textureId().

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

Попытка создать представление текстуры на этой текстуре. Представление текстуры в некотором роде аналогично представлению в SQL, поскольку оно предоставляет ограниченное или переинтерпретированное представление исходных данных. Представления текстур не выделяют дополнительного хранилища на стороне сервера, вместо этого полагаясь на буфер хранения исходной текстуры.

Представления текстур доступны только при использовании неизменяемого хранения. Для получения дополнительной информации о представлениях текстур см. http://www.opengl.org/wiki/Texture_Storage#Texture_views.

Аргумент target указывает целевой объект для представления. В зависимости от целевого объекта исходной цели можно использовать только некоторые целевые объекты. Например, представление текстуры Target1DArray может указывать либо Target1DArray, либо Target1D, но для последнего количество слоёв массива, указанных с помощью minimumLayer и maximumLayer, должно составлять ровно 1.

Аналогичные ограничения применяются к viewFormat. Более подробную информацию см. по указанной выше ссылке и в спецификации.

Аргументы minimumMipmapLevel, maximumMipmapLevel, minimumLayer и maximumLayer служат для ограничения частей текстуры, доступных представлению текстуры.

Если создание представления текстуры завершилось неудачно, эта функция вернёт 0. Если функция выполнена успешно, она вернёт указатель на новый объект QOpenGLTexture, который вернёт true из своей функции isTextureView().

См. также isTextureView().

int QOpenGLTexture::depth() const

Возвращает глубину 3D текстуры.

См. также width(), height() и setSize().

[since 5.4] QOpenGLTexture::DepthStencilMode QOpenGLTexture::depthStencilMode() const

Возвращает режим глубины/шаблона для текстур, использующих комбинированный формат глубины/шаблона.

Эта функция была добавлена в Qt 5.4.

См. также setDepthStencilMode().

void QOpenGLTexture::destroy()

Уничтожает базовый объект OpenGL текстуры. Для этого требуется текущий действительный контекст OpenGL.

См. также create(), isCreated() и textureId().

int QOpenGLTexture::faces() const

Возвращает количество граней для этой текстуры. Для текстур типа куба и массива кубов это будет 6.

Для целевых объектов, не являющихся кубами, эта функция вернёт 1.

QOpenGLTexture::TextureFormat QOpenGLTexture::format() const

Возвращает формат этого объекта текстуры.

См. также setFormat().

void QOpenGLTexture::generateMipMaps()

Генерирует mip-уровни для этого объекта текстуры начиная с mip-уровня 0. Если вы используете целевой объект текстуры и опцию фильтрации, требующую mip-уровней, и отключили автоматическую генерацию mip-уровней, вам нужно вызвать эту функцию или её перегрузку для создания цепочки mip-уровней.

Примечание: Генерация mip-уровней не поддерживается для сжатых текстур с OpenGL ES.

См. также setAutoMipMapGenerationEnabled(), setMipLevels() и mipLevels().

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

Генерирует mip-уровни для этого объекта текстуры начиная с mip-уровня baseLevel. Если вы используете целевой объект текстуры и опцию фильтрации, требующую mip-уровней, и отключили автоматическую генерацию mip-уровней, вам нужно вызвать эту функцию или её перегрузку для создания цепочки mip-уровней.

Генерация mip-уровней выше baseLevel достигается путем установки базового mip-уровня на baseLevel и последующей генерации цепочки mip-уровней. Если resetBaseLevel равно true, базовый mip-уровень текстуры будет сброшен до предыдущего значения.

См. также setAutoMipMapGenerationEnabled(), setMipLevels() и mipLevels().

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

Возвращает true , если ваша реализация и версия OpenGL поддерживают функцию текстуры feature.

int QOpenGLTexture::height() const

Возвращает высоту 2D или 3D текстуры.

См. также width(), depth() и setSize().

bool QOpenGLTexture::isAutoMipMapGenerationEnabled() const

Возвращает, включена ли автоматическая генерация mip-уровней для этого объекта текстуры.

См. также setAutoMipMapGenerationEnabled() и generateMipMaps().

bool QOpenGLTexture::isBound() const

Возвращает true , если эта текстура привязана к соответствующей цели текущего активного блока текстур.

См. также bind() и release().

bool QOpenGLTexture::isBound(uint unit)

Возвращает true , если эта текстура привязана к соответствующей цели блока текстур unit.

См. также bind() и release().

bool QOpenGLTexture::isCreated() const

Возвращает true , если базовый объект OpenGL текстуры был создан.

См. также create(), destroy() и textureId().

bool QOpenGLTexture::isFixedSamplePositions() const

Возвращает, использует ли эта текстура фиксированный набор образцов мультисэмплирования. Если для этой текстуры ещё не было выделено хранилище, эта функция возвращает запрошенное значение фиксированных позиций образцов.

Для целевых объектов текстур, не поддерживающих мультисэмплирование, эта функция вернёт true.

См. также setFixedSamplePositions() и isStorageAllocated().

bool QOpenGLTexture::isStorageAllocated() const

Возвращает true , если хранилище на стороне сервера для этой текстуры было выделено.

Формат, размеры, уровни mip-уровней и слои массива не могут быть изменены после выделения хранилища.

См. также allocateStorage(), setSize(), setMipLevels(), setLayers() и setFormat().

bool QOpenGLTexture::isTextureView() const

Возвращает true , если этот объект текстуры на самом деле представляет собой представление другой текстуры.

См. также createTextureView().

int QOpenGLTexture::layers() const

Возвращает количество слоёв массива для этой текстуры. Если для этой текстуры ещё не было выделено хранилище, эта функция возвращает запрошенное количество слоёв массива.

Для целевых объектов текстур, не поддерживающих слои массива, эта функция вернёт 1.

См. также setLayers() и isStorageAllocated().

QPair<float, float> QOpenGLTexture::levelOfDetailRange() const

Возвращает минимальное и максимальное значения параметров уровня детализации.

См. также setLevelOfDetailRange(), minimumLevelOfDetail() и maximumLevelOfDetail().

float QOpenGLTexture::levelofDetailBias() const

Возвращает параметр смещения уровня детализации.

См. также setLevelofDetailBias().

QOpenGLTexture::Filter QOpenGLTexture::magnificationFilter() const

Возвращает фильтр увеличения.

См. также setMagnificationFilter().

float QOpenGLTexture::maximumAnisotropy() const

Возвращает максимальный уровень анизотропии, который следует учитывать при выполнении поисков текстуры. Для этого требуется расширение GL_EXT_texture_filter_anisotropic.

См. также setMaximumAnisotropy().

float QOpenGLTexture::maximumLevelOfDetail() const

Возвращает максимальный параметр уровня детализации.

См. также setMaximumLevelOfDetail(), minimumLevelOfDetail() и levelOfDetailRange().

int QOpenGLTexture::maximumMipLevels() const

Возвращает максимальное количество уровней mipmap, которые может иметь эта текстура при текущих размерах.

См. также setMipLevels(), mipLevels() и setSize().

QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter> QOpenGLTexture::minMagFilters() const

Возвращает текущие фильтры минимизации и увеличения.

См. также setMinMagFilters().

QOpenGLTexture::Filter QOpenGLTexture::minificationFilter() const

Возвращает фильтр минимизации.

См. также setMinificationFilter().

float QOpenGLTexture::minimumLevelOfDetail() const

Возвращает минимальный параметр уровня детализации.

См. также setMinimumLevelOfDetail(), maximumLevelOfDetail() и levelOfDetailRange().

int QOpenGLTexture::mipBaseLevel() const

Возвращает базовый уровень mipmap, используемый для всех запросов текстур с этой текстурой. По умолчанию 0.

См. также setMipBaseLevel(), mipMaxLevel() и mipLevelRange().

QPair<int, int> QOpenGLTexture::mipLevelRange() const

Возвращает диапазон уровней mipmap, которые могут быть использованы для запросов текстур с этой текстурой.

См. также setMipLevelRange(), mipBaseLevel() и mipMaxLevel().

int QOpenGLTexture::mipLevels() const

Возвращает количество уровней mipmap для этой текстуры. Если для этой текстуры еще не выделена память, возвращает запрошенное количество уровней mipmap.

См. также setMipLevels(), maximumMipLevels() и isStorageAllocated().

int QOpenGLTexture::mipMaxLevel() const

Возвращает максимальный уровень mipmap, используемый для всех запросов текстур с этой текстурой.

См. также setMipMaxLevel(), mipBaseLevel() и mipLevelRange().

void QOpenGLTexture::release()

Отвязывает эту текстуру от активного блока текстуры.

См. также bind().

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

Отвязывает эту текстуру от блока текстуры unit.

Если параметр reset равен true, эта функция восстановит активный блок до блока, который был активен при входе.

int QOpenGLTexture::samples() const

Возвращает количество точек выборки многообразной выборки для этой текстуры. Если для этой текстуры еще не выделена память, эта функция возвращает запрошенное количество выборок.

Для целей текстуры, которые не поддерживают многообразную выборку, будет возвращено 0.

См. также setSamples() и isStorageAllocated().

void QOpenGLTexture::setAutoMipMapGenerationEnabled(bool enabled)

Если enabled равно true, включает автоматическое создание mipmap для этого объекта текстуры всякий раз, когда данные mipmap уровня 0 устанавливаются с помощью setData().

Автоматическое создание mipmap включено по умолчанию.

Примечание: Создание mipmap не поддерживается для сжатых текстур с OpenGL ES 2.0.

См. также isAutoMipMapGenerationEnabled() и generateMipMaps().

void QOpenGLTexture::setBorderColor(const QColor &color)

Устанавливает цвет границы текстуры в color.

Примечание: Эта функция не имеет эффекта на macOS и Qt, скомпилированных для OpenGL ES 2.

См. также borderColor().

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

Устанавливает красный цвет в r, зеленый в g, синий в b, и a как значение альфа-канала.

Это перегруженная функция.

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

Устанавливает красный цвет в r, зеленый в g, синий в b, и значение альфа-канала в a.

Это перегруженная функция.

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

Устанавливает красный цвет в r, зеленый в g, синий в b, и значение альфа-канала в a.

Это перегруженная функция.

[since 5.5] void QOpenGLTexture::setComparisonFunction(QOpenGLTexture::ComparisonFunction function)

Устанавливает функцию сравнения текстуры для этой текстуры в function. Функция сравнения текстуры используется тенями-самплерами при выборке глубины текстуры.

Эта функция была добавлена в Qt 5.5.

См. также comparisonFunction().

[since 5.5] void QOpenGLTexture::setComparisonMode(QOpenGLTexture::ComparisonMode mode)

Устанавливает режим сравнения текстуры для этой текстуры в mode. Режим сравнения текстуры используется тенями-самплерами при выборке глубины текстуры.

Эта функция была добавлена в Qt 5.5.

См. также comparisonMode().

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

Загружает сжатые пиксельные данные data в mipLevel, массив layer и cubeFace. Передача пикселей может быть дополнительно контролирована параметром options. Аргумент dataSize должен указывать размер данных, на которые указывает data.

Если не используется сжатый формат format(), используйте setData() вместо этой функции.

Эта функция была добавлена в Qt 5.3.

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

Это перегруженная функция.

Параметр layerCount — количество слоёв в массиве текстур, загружаемых/заполняемых этим вызовом.

Эта функция была добавлена в Qt 5.9.

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

Это перегруженная функция.

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

Это перегруженный метод.

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

Это перегруженный метод.

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

Загружает пиксельные данные для этого объекта текстуры mipLevel, массива layer и cubeFace. Хранилище должно быть выделено перед загрузкой пиксельных данных. Некоторые перегрузки setData() установят соответствующие размеры, уровни mipmap и слои массива, а затем выделять память для вас, если у них достаточно информации для этого. Это будет отмечено в документации функции.

Структура пиксельных данных, на которые указывает data, задаётся sourceFormat и sourceType. Загрузка пиксельных данных может быть дополнительно контролируема параметром options.

Если используется сжатый формат(), то необходимо использовать setCompressedData() вместо этой функции.

Функция была добавлена в Qt 5.3.

См. также setCompressedData().

[since 5.9] 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)

Это перегруженный метод.

Параметр layerCount — количество слоёв в массиве текстур, которые загружаются/заполняются этим вызовом.

Функция была добавлена в Qt 5.9.

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

Это перегруженный метод.

Функция была добавлена в Qt 5.3.

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

Это перегруженный метод.

Функция была добавлена в Qt 5.3.

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

Это перегруженный метод.

Функция была добавлена в Qt 5.3.

[since 5.14] 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)

Это перегруженный метод.

Эта перегрузка используется для обновления части текстуры. Параметры xOffset, yOffset, zOffset задают смещения текселей в текстуре. Параметры width, height и depth задают размеры подизображения.

Структура пиксельных данных, на которые указывает data, задаётся sourceFormat и sourceType. Загрузка пиксельных данных может быть дополнительно контролируема параметром options.

Функция была добавлена в Qt 5.14.

[since 5.14] 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)

Это перегруженный метод.

Эта перегрузка используется для обновления части текстуры. Параметры xOffset, yOffset, zOffset задают смещения текселей в текстуре. Параметры width, height и depth задают размеры подизображения. Уровень mipmap подизображения, которое мы хотим обновить, задаётся параметром mipLevel.

Структура пиксельных данных, на которые указывает data, задаётся sourceFormat и sourceType. Загрузка пиксельных данных может быть дополнительно контролируема параметром options.

Функция была добавлена в Qt 5.14.

[since 5.14] 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)

Это перегруженный метод.

Эта перегрузка используется для обновления части текстуры. Параметры xOffset, yOffset, zOffset задают смещения текселей в текстуре. Параметры width, height и depth задают размеры подизображения. Уровень mipmap и слой подизображения, которое мы хотим обновить, задаются параметрами mipLevel и layer.

Структура пиксельных данных, на которые указывает data, задаётся sourceFormat и sourceType. Загрузка пиксельных данных может быть дополнительно контролируема параметром options.

Функция была добавлена в Qt 5.14.

[since 5.14] 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)

Это перегруженный метод.

Эта перегрузка используется для обновления части текстуры. Параметры xOffset, yOffset, zOffset задают смещения текселей в текстуре. Параметры width, height и depth задают размеры подизображения. Уровень mipmap, слой и грань куба подизображения, которое мы хотим обновить, задаются параметрами mipLevel, layer и face.

Структура пиксельных данных, на которые указывает data, задаётся sourceFormat и sourceType. Загрузка пиксельных данных может быть дополнительно контролируема параметром options.

Функция была добавлена в Qt 5.14.

END_OF_DOCUMENT_MARKER

[since 5.14] 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)

Это перегруженный метод.

Этот перегруз используется для обновления части текстуры. Параметры xOffset, yOffset, zOffset задают смещения текселей внутри текстуры. Параметры width, height и depth задают размеры подизображения. Уровень mip-мапа, стартовый слой, грань куба и количество слоёв подизображения, которые мы хотим обновить, задаются параметрами mipLevel, layer, face и layerCount соответственно.

Структура данных пикселей, на которые указывает data, задаётся параметрами sourceFormat и sourceType. Загрузка данных пикселей может быть дополнительно контролирована параметром options.

Этот метод был добавлен в Qt 5.14.

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

Этот перегруз setData() выделит память для вас. Данные пикселей содержатся в image. Мip-мапы генерируются по умолчанию. Установите genMipMaps в DontGenerateMipMaps, чтобы отключить генерацию mip-мап.

Это перегруженный метод.

[since 5.4] void QOpenGLTexture::setDepthStencilMode(QOpenGLTexture::DepthStencilMode mode)

Если используется текстура с комбинированным форматом глубины/схемы, эта функция устанавливает, какой компонент текстуры доступен по параметру mode.

Когда параметр установлен в DepthMode, доступ к нему из шейдера будет осуществляться к компоненту глубины как к одному числу с плавающей точкой, как обычно. Но когда параметр установлен в StencilMode, шейдер получит доступ к компоненту схемы.

Примечание: Этот метод не имеет эффекта на macOS и Qt, скомпилированном для OpenGL ES 2.

Этот метод был добавлен в Qt 5.4.

См. также depthStencilMode().

void QOpenGLTexture::setFixedSamplePositions(bool fixed)

Устанавливает, будут ли позиции и количество сэмплов, используемые с многосэмпловой текстурой, фиксированными (fixed). Если установлено в true, позиции и количество сэмплов будут одинаковыми для всех текселей в изображении и не будут зависеть от размера или внутреннего формата изображения. Этот метод должен быть вызван перед выделением памяти для текстуры.

Для целей, которые не поддерживают многосэмплирование, этот метод не оказывает влияния.

Значение по умолчанию — true.

См. также isFixedSamplePositions() и isStorageAllocated().

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

Устанавливает формат этого объекта текстуры на format. Этот метод должен быть вызван до выделения памяти для текстуры.

Обратите внимание, что не все форматы могут поддерживаться. Точный набор поддерживаемых форматов зависит от вашей реализации OpenGL и версии.

См. также format() и allocateStorage().

void QOpenGLTexture::setLayers(int layers)

Устанавливает количество слоёв массива layers для выделения памяти. Этот метод должен быть вызван до выделения памяти для текстуры.

Для целей, которые не поддерживают слои массива, этот метод не оказывает влияния.

См. также layers() и isStorageAllocated().

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

Устанавливает минимальный и максимальный уровень детализации на min и max соответственно.

Примечание: Этот метод не имеет эффекта в Qt, скомпилированном для OpenGL ES 2.

См. также levelOfDetailRange(), setMinimumLevelOfDetail() и setMaximumLevelOfDetail().

void QOpenGLTexture::setLevelofDetailBias(float bias)

Устанавливает смещение уровня детализации на bias. Смещение уровня детализации влияет на точку, в которой уровни mip-мапирования изменяются. Увеличение значений для смещения уровня детализации делает общие изображения более размытыми или плавными. Уменьшение значений делает общие изображения более резкими.

Примечание: Этот метод не имеет эффекта в Qt, скомпилированном для OpenGL ES 2.

См. также levelofDetailBias().

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

Устанавливает фильтр увеличения на filter.

См. также magnificationFilter(), setMinificationFilter() и setMinMagFilters().

void QOpenGLTexture::setMaximumAnisotropy(float anisotropy)

Если ваша реализация OpenGL поддерживает расширение GL_EXT_texture_filter_anisotropic, этот метод устанавливает максимальный уровень анизотропии на anisotropy.

См. также maximumAnisotropy().

void QOpenGLTexture::setMaximumLevelOfDetail(float value)

Устанавливает максимальный уровень детализации на value. Это ограничивает выбор mip-мапы с наименьшим разрешением (самый высокий уровень mip-мапа). Значение по умолчанию — 1000.

Примечание: Этот метод не имеет эффекта в Qt, скомпилированном для OpenGL ES 2.

См. также maximumLevelOfDetail(), setMinimumLevelOfDetail() и setLevelOfDetailRange().

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

Устанавливает фильтр уменьшения на minificationFilter и фильтр увеличения на magnificationFilter.

См. также minMagFilters(), setMinificationFilter() и setMagnificationFilter().

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

Устанавливает фильтр, используемый для уменьшения, на filter.

См. также minificationFilter(), setMagnificationFilter() и setMinMagFilters().

void QOpenGLTexture::setMinimumLevelOfDetail(float value)

Устанавливает минимальный уровень детализации на value. Это ограничивает выбор mip-мапы с наибольшим разрешением (самый низкий уровень mip-мапа). Значение по умолчанию — -1000.

Примечание: Этот метод не имеет эффекта в Qt, скомпилированном для OpenGL ES 2.

См. также minimumLevelOfDetail(), setMaximumLevelOfDetail() и setLevelOfDetailRange().

void QOpenGLTexture::setMipBaseLevel(int baseLevel)

Устанавливает базовый уровень mip-мапа, используемый для всех поисков текстур с этой текстурой, на baseLevel.

Примечание: Этот метод не имеет эффекта в Qt, скомпилированном для OpenGL ES 2.

См. также mipBaseLevel(), setMipMaxLevel() и setMipLevelRange().

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

Устанавливает диапазон уровней mip-мапа, которые могут быть использованы для поиска текстур с этой текстурой, от baseLevel до maxLevel.

Примечание: Этот метод не имеет эффекта в Qt, скомпилированном для OpenGL ES 2.

См. также setMipBaseLevel(), setMipMaxLevel() и mipLevelRange().

void QOpenGLTexture::setMipLevels(int levels)

Для текстур, поддерживающих mip-мапы, эта функция устанавливает требуемое количество уровней mip-мапы для выделения памяти. Эту функцию необходимо вызвать перед выделением памяти для текстуры.

Если целевой тип текстуры не поддерживает mip-мапы, эта функция не оказывает никакого эффекта.

См. также mipLevels(), maximumMipLevels(), и isStorageAllocated().

void QOpenGLTexture::setMipMaxLevel(int maxLevel)

Устанавливает максимальный уровень mip-мапы, используемый для всех обращений к текстуре с помощью этой текстуры, в значение maxLevel.

Примечание: Эта функция не оказывает никакого эффекта для Qt, скомпилированного для OpenGL ES 2.

См. также mipMaxLevel(), setMipBaseLevel(), и setMipLevelRange().

void QOpenGLTexture::setSamples(int samples)

Устанавливает количество samples для выделения памяти при отрисовке в целевой текстуре, поддерживающей многократную выборку. Эту функцию следует вызвать перед выделением памяти для текстуры.

Для целей, которые не поддерживают многократную выборку, эта функция не оказывает никакого эффекта.

См. также samples() и isStorageAllocated().

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

Устанавливает размеры этого объекта текстуры в width, height и depth. Значение по умолчанию для каждой размерности равно 1. Максимальный разрешенный размер текстуры зависит от вашей реализации OpenGL.

Если для width, height или depth предоставлено значение, не являющееся степенью двойки, и ваша реализация OpenGL не поддерживает текстуры с нестепенными значениями, то режим wrap автоматически устанавливается в ClampToEdge.

См. также width(), height() и depth().

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

GLSL-шейдеры могут переупорядочивать компоненты vec4, возвращаемые функциями текстуры. Желательно иметь возможность управлять этим переупорядочением из кода на стороне процессора. Это становится возможным с помощью масок swizzle с OpenGL 3.3.

Каждый компонент текстуры может быть сопоставлен с одним из вариантов SwizzleValue.

Эта функция сопоставляет component с выходным value.

Примечание: Эта функция не оказывает никакого эффекта на Mac и в Qt, скомпилированном для OpenGL ES 2.

См. также swizzleMask().

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

Параметры r, g, b и a используются для установки цветов красного, зеленого, синего и значения альфа.

Это перегруженная функция.

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

Устанавливает режим wrap (или повторения) для всех измерений текстуры в mode.

См. также wrapMode().

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

Удерживает измерение текстуры direction.

Это перегруженная функция.

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

Возвращает маску swizzle для компонента component.

См. также setSwizzleMask().

QOpenGLTexture::Target QOpenGLTexture::target() const

Возвращает целевой объект привязки этой текстуры.

Эта функция была добавлена в Qt 5.4.

GLuint QOpenGLTexture::textureId() const

Возвращает имя базового объекта OpenGL-текстуры или 0, если он еще не создан.

См. также create(), destroy() и isCreated().

int QOpenGLTexture::width() const

Возвращает ширину 1D, 2D или 3D текстуры.

См. также height(), depth() и setSize().

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

Возвращает режим wrap для измерения текстуры direction.

См. также setWrapMode().

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qopengltexture.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API