Класс QOpenGLTexture
Класс QOpenGLTexture инкапсулирует объект текстуры OpenGL. Подробнее...
| Заголовок: | #include <QOpenGLTexture> |
| qmake: | QT += gui |
| С момента: | Qt 5.2 |
Открытые типы
| перечисление | BindingTarget { BindingTarget1D, BindingTarget1DArray, BindingTarget2D, BindingTarget2DArray, ..., BindingTargetBuffer } |
| перечисление | ComparisonFunction { CompareLessEqual, CompareGreaterEqual, CompareLess, CompareGreater, ..., CompareNever } |
| перечисление | ComparisonMode { CompareRefToTexture, CompareNone } |
| перечисление | CoordinateDirection { DirectionS, DirectionT, DirectionR } |
| перечисление | CubeMapFace { CubeMapPositiveX, CubeMapNegativeX, CubeMapPositiveY, CubeMapNegativeY, CubeMapPositiveZ, CubeMapNegativeZ } |
| перечисление | DepthStencilMode { DepthMode, StencilMode } |
| перечисление | Feature { ImmutableStorage, ImmutableMultisampleStorage, TextureRectangle, TextureArrays, ..., TextureMipMapLevel } |
| флаги | Features |
| перечисление | Filter { Nearest, Linear, NearestMipMapNearest, NearestMipMapLinear, LinearMipMapNearest, LinearMipMapLinear } |
| перечисление | MipMapGeneration { GenerateMipMaps, DontGenerateMipMaps } |
| перечисление | PixelFormat { NoSourceFormat, Red, RG, RGB, ..., LuminanceAlpha } |
| перечисление | PixelType { NoPixelType, Int8, UInt8, Int16, ..., Float32_D32_UInt32_S8_X24 } |
| перечисление | SwizzleComponent { SwizzleRed, SwizzleGreen, SwizzleBlue, SwizzleAlpha } |
| перечисление | SwizzleValue { RedValue, GreenValue, BlueValue, AlphaValue, ZeroValue, OneValue } |
| перечисление | Target { Target1D, Target1DArray, Target2D, Target2DArray, ..., TargetBuffer } |
| перечисление | TextureFormat { NoFormat, R8_UNorm, RG8_UNorm, RGB8_UNorm, ..., LuminanceAlphaFormat } |
| перечисление | TextureUnitReset { ResetTextureUnit, DontResetTextureUnit } |
| перечисление | WrapMode { Repeat, MirroredRepeat, ClampToEdge, ClampToBorder } |
Открытые функции
| QOpenGLTexture(Target target) | |
| QOpenGLTexture(const QImage &image, MipMapGeneration genMipMaps = GenerateMipMaps) | |
| ~QOpenGLTexture() | |
| void | allocateStorage() |
| void | allocateStorage(PixelFormat pixelFormat, PixelType pixelType) |
| void | bind() |
| void | bind(uint unit, TextureUnitReset reset = DontResetTextureUnit) |
| QColor | borderColor() const |
| void | borderColor(float *border) const |
| void | borderColor(int *border) const |
| void | borderColor(unsigned int *border) const |
| ComparisonFunction | comparisonFunction() const |
| ComparisonMode | comparisonMode() const |
| bool | create() |
| QOpenGLTexture * | createTextureView(Target target, TextureFormat viewFormat, int minimumMipmapLevel, int maximumMipmapLevel, int minimumLayer, int maximumLayer) const |
| int | глубина() const |
| DepthStencilMode | режимГлубиныИШаблонов() const |
| void | уничтожить() |
| int | количествоГраней() const |
| 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 |
| Filter | фильтрУвеличения() const |
| float | максимальнаяАнизотропия() const |
| float | максимальныйУровеньПодробностей() const |
| int | максимальноеКоличествоMipУровней() const |
| QPair<Filter, Filter> | фильтрыМинимум-Максимум() const |
| Filter | фильтрУменьшения() const |
| float | минимальныйУровеньПодробностей() const |
| int | основнойMipУровень() const |
| QPair<int, int> | диапазонMipУровней() const |
| int | количествоMipУровней() const |
| int | максимальныйMipУровень() const |
| void | освободить() |
| void | освободить(uint unit, TextureUnitReset reset = DontResetTextureUnit) |
| int | сэмплы() const |
| void | включитьАвтогенерациюMipКарт(bool enabled) |
| void | установитьЦветГраницы(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 | установитьФункциюСравнения(ComparisonFunction function) |
| void | установитьРежимСравнения(ComparisonMode mode) |
| void | установитьСжатыеДанные(int mipLevel, int layer, CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR) |
| void | установитьСжатыеДанные(int mipLevel, int layer, int dataSize, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR) |
| void | установитьСжатыеДанные(int mipLevel, int dataSize, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR) |
| void | setCompressedData(int dataSize, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR) |
| void | setData(int mipLevel, int layer, CubeMapFace cubeFace, PixelFormat sourceFormat, PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR) |
| void | setData(int mipLevel, int layer, PixelFormat sourceFormat, PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR) |
| void | setData(int mipLevel, PixelFormat sourceFormat, PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR) |
| void | setData(PixelFormat sourceFormat, PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR) |
| void | setData(const QImage &image, MipMapGeneration genMipMaps = GenerateMipMaps) |
| void | setDepthStencilMode(DepthStencilMode mode) |
| void | setFixedSamplePositions(bool fixed) |
| void | setFormat(TextureFormat format) |
| void | setLayers(int layers) |
| void | setLevelOfDetailRange(float min, float max) |
| void | setLevelofDetailBias(float bias) |
| void | setMagnificationFilter(Filter filter) |
| void | setMaximumAnisotropy(float anisotropy) |
| void | setMaximumLevelOfDetail(float value) |
| void | setMinMagFilters(Filter minificationFilter, Filter magnificationFilter) |
| void | setMinificationFilter(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(SwizzleComponent component, SwizzleValue value) |
| void | setSwizzleMask(SwizzleValue r, SwizzleValue g, SwizzleValue b, SwizzleValue a) |
| void | setWrapMode(WrapMode mode) |
| void | setWrapMode(CoordinateDirection direction, WrapMode mode) |
| SwizzleValue | swizzleMask(SwizzleComponent component) const |
| Target | target() const |
| GLuint | textureId() const |
| int | width() const |
| WrapMode | wrapMode(CoordinateDirection direction) const |
Статические публичные члены
| GLuint | boundTextureId(BindingTarget target) |
| GLuint | boundTextureId(uint unit, BindingTarget target) |
| bool | hasFeature(Feature feature) |
Подробное описание
Класс QOpenGLTexture инкапсулирует объект текстуры OpenGL.
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 |
enum 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::CommpareNotEqual |
0x0205 |
Эквивалентно GL_NOTEQUAL. |
QOpenGLTexture::CompareAlways |
0x0207 |
Эквивалентно GL_ALWAYS. |
QOpenGLTexture::CompareNever |
0x0200 |
Эквивалентно GL_NEVER. |
Это перечисление было введено или изменено в Qt 5.5.
enum QOpenGLTexture::ComparisonMode
Это перечисление определяет режим сравнения, используемый при выборке из этой текстуры.
| Постоянная | Значение | Описание |
|---|---|---|
QOpenGLTexture::CompareRefToTexture |
0x884E |
Эквивалентно GL_COMPARE_REF_TO_TEXTURE. |
QOpenGLTexture::CompareNone |
0x0000 |
Эквивалентно GL_NONE. |
Это перечисление было введено или изменено в Qt 5.5.
enum QOpenGLTexture::CoordinateDirection
Это перечисление определяет возможные направления координат текстуры.
| Постоянная | Значение | Описание |
|---|---|---|
QOpenGLTexture::DirectionS |
0x2802 |
Горизонтальное направление. Эквивалентно GL_TEXTURE_WRAP_S |
QOpenGLTexture::DirectionT |
0x2803 |
Вертикальное направление. Эквивалентно GL_TEXTURE_WRAP_T |
QOpenGLTexture::DirectionR |
0x8072 |
Направление глубины. Эквивалентно GL_TEXTURE_WRAP_R |
enum 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 |
enum QOpenGLTexture::DepthStencilMode
Это перечисление определяет, какой компонент текстуры глубины/маски используется при выборке текстуры.
| Постоянная | Значение | Описание |
|---|---|---|
QOpenGLTexture::DepthMode |
0x1902 |
Эквивалентно GL_DEPTH_COMPONENT. |
QOpenGLTexture::StencilMode |
0x1901 |
Эквивалентно GL_STENCIL_INDEX. |
Это перечисление было введено или изменено в Qt 5.4.
enum QOpenGLTexture::Featureflags QOpenGLTexture::Features
Это перечисление определяет возможности OpenGL, связанные с текстурами, которые можно проверить.
| Постоянная | Значение | Описание |
|---|---|---|
QOpenGLTexture::ImmutableStorage |
0x00000001 |
Поддержка неизменяемого хранения текстур |
QOpenGLTexture::ImmutableMultisampleStorage |
0x00000002 |
Поддержка неизменяемого хранения текстур с многообразными мишенями |
QOpenGLTexture::TextureRectangle |
0x00000004 |
Поддержка мишени GL_TEXTURE_RECTANGLE |
QOpenGLTexture::TextureArrays |
0x00000008 |
Поддержка мишеней текстур с массивами слоёв |
QOpenGLTexture::Texture3D |
0x00000010 |
Поддержка трёхмерной мишени текстур |
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 |
Поддержка одноразмерной мишени текстур |
QOpenGLTexture::TextureComparisonOperators |
0x00004000 |
Поддержка операторов сравнения текстур |
QOpenGLTexture::TextureMipMapLevel |
0x00008000 |
Поддержка установки базового и максимального уровней mipmap |
Тип Features является псевдонимом для QFlags<Feature>. Он хранит логическое ИЛИ комбинацию значений Feature.
END_OF_DOCUMENT_MARKERenum 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 |
enum QOpenGLTexture::MipMapGeneration
Это перечисление определяет параметры управления генерацией mipmap.
| Константа | Значение | Описание |
|---|---|---|
QOpenGLTexture::GenerateMipMaps |
0 |
Mipmap должны быть сгенерированы |
QOpenGLTexture::DontGenerateMipMaps |
1 |
Mipmap не должны быть сгенерированы |
enum 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) |
enum 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 |
enum 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 |
enum 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 |
enum QOpenGLTexture::Target
Этот перечисление определяет целевой тип текстуры объекта QOpenGLTexture.
| Постоянная | Значение | Описание |
|---|---|---|
QOpenGLTexture::Target1D |
0x0DE0 |
Одномерная текстура. Эквивалентно GL_TEXTURE_1D. |
QOpenGLTexture::Target1DArray |
0x8C18 |
Массив одномерных текстур. Эквивалентно GL_TEXTURE_1D_ARRAY |
QOpenGLTexture::Target2D |
0x0DE1 |
Двумерная текстура. Эквивалентно GL_TEXTURE_2D |
QOpenGLTexture::Target2DArray |
0x8C1A |
Массив двумерных текстур. Эквивалентно GL_TEXTURE_2D_ARRAY |
QOpenGLTexture::Target3D |
0x806F |
Трехмерная текстура. Эквивалентно GL_TEXTURE_3D |
QOpenGLTexture::TargetCubeMap |
0x8513 |
Текстура куба. Эквивалентно GL_TEXTURE_CUBE_MAP |
QOpenGLTexture::TargetCubeMapArray |
0x9009 |
Массив текстур куба. Эквивалентно GL_TEXTURE_CUBE_MAP_ARRAY |
QOpenGLTexture::Target2DMultisample |
0x9100 |
Двумерная текстура с поддержкой многократной выборки. Эквивалентно GL_TEXTURE_2D_MULTISAMPLE |
QOpenGLTexture::Target2DMultisampleArray |
0x9102 |
Массив двумерных текстур с поддержкой многократной выборки. Эквивалентно GL_TEXTURE_2D_MULTISAMPLE_ARRAY |
QOpenGLTexture::TargetRectangle |
0x84F5 |
Прямоугольная двумерная текстура. Эквивалентно GL_TEXTURE_RECTANGLE |
QOpenGLTexture::TargetBuffer |
0x8C2A |
Текстура с данными из объекта буфера OpenGL. Эквивалентно GL_TEXTURE_BUFFER |
enum 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::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(Target target)
Создает объект QOpenGLTexture, который можно затем привязать к target.
Это не создает базовый объект текстуры OpenGL. Поэтому создание с помощью этого конструктора не требует действительного текущего контекста OpenGL.
QOpenGLTexture::QOpenGLTexture(const QImage &image, MipMapGeneration genMipMaps = GenerateMipMaps)
Создает объект QOpenGLTexture, который можно затем привязать к целевой 2D текстуре и содержит данные пикселей, содержащиеся в image. Если вы хотите получить цепочку мип-уровней, установите genMipMaps в true (это значение по умолчанию).
Это создаёт базовый объект текстуры OpenGL. Поэтому создание с помощью этого конструктора требует действительного текущего контекста OpenGL.
QOpenGLTexture::~QOpenGLTexture()
Уничтожает экземпляр QOpenGLTexture.
void QOpenGLTexture::allocateStorage()
Выделяет хранилище на стороне сервера для этого объекта текстуры, учитывая формат, размеры, уровни мип-карты, слои массива и грани куба.
После выделения памяти изменить эти свойства больше нельзя.
Если поддерживается QOpenGLTexture использует неизменяемое хранилище текстуры.
После выделения памяти для текстуры данные пикселей могут быть загружены с помощью одного из перегруженных методов setData().
Примечание: Если неизменяемое хранилище текстуры недоступно, то будет использоваться формат пикселей и тип пикселей по умолчанию для создания изменяемого хранилища. Вы можете использовать другой перегруженный метод allocateStorage(), чтобы указать точный формат пикселей и тип пикселей для использования при выделении изменяемого хранилища; это особенно полезно в некоторых реализациях OpenGL ES (в частности, OpenGL ES 2), где формат пикселей и тип пикселей, используемые во время выделения, должны точно соответствовать формату и типу, передаваемым в последующий вызов setData().
См. также isStorageAllocated() и setData().
void QOpenGLTexture::allocateStorage(PixelFormat pixelFormat, PixelType pixelType)
Выделяет хранилище на стороне сервера для этого объекта текстуры, учитывая формат, размеры, уровни мип-карты, слои массива и грани куба.
После выделения памяти изменить эти свойства больше нельзя.
Если поддерживается 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, TextureUnitReset reset = DontResetTextureUnit)
Связывает эту текстуру с блоком текстур unit, готовым к отрисовке. Обратите внимание, что вам не нужно связывать объекты QOpenGLTexture, чтобы модифицировать их, так как реализация использует расширение EXT_direct_state_access, где доступно, и имитирует его, где оно отсутствует.
Если параметр reset равен true, эта функция восстановит активный блок до блока, который был активен при входе.
См. также release().
QColor QOpenGLTexture::borderColor() const
Возвращает borderColor этой текстуры.
См. также 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(BindingTarget target)
Возвращает textureId текстуры, связанной с target активного блока текстур.
[static] GLuint QOpenGLTexture::boundTextureId(uint unit, BindingTarget target)
Возвращает textureId текстуры, связанной с target блока текстур unit.
ComparisonFunction QOpenGLTexture::comparisonFunction() const
Возвращает оператор сравнения текстуры, установленный для этой текстуры. По умолчанию текстура имеет оператор сравнения CompareLessEqual.
Эта функция была добавлена в Qt 5.5.
См. также setComparisonFunction().
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(Target target, 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().
DepthStencilMode QOpenGLTexture::depthStencilMode() const
Возвращает режим глубины/шаблона для текстур, использующих объединённый формат глубины/шаблона.
Эта функция была добавлена в Qt 5.4.
См. также setDepthStencilMode().
void QOpenGLTexture::destroy()
Уничтожает базовый объект OpenGL текстуры. Требуется текущий действительный контекст OpenGL.
См. также create(), isCreated() и textureId().
int QOpenGLTexture::faces() const
Возвращает количество граней для этой текстуры. Для кубических и кубических массивов это будет 6.
Для текстур, не являющихся кубическими, это будет 1.
TextureFormat QOpenGLTexture::format() const
Возвращает формат этого объекта текстуры.
См. также setFormat().
void QOpenGLTexture::generateMipMaps()
Генерирует mipmap для этого объекта текстуры с уровня mipmap 0. Если вы используете целевой объект текстуры и опцию фильтрации, требующую mipmap, и вы отключили автоматическую генерацию mipmap, вам нужно вызвать эту функцию или её перегрузку для создания цепочки mipmap.
Примечание: Генерация mipmap не поддерживается для сжатых текстур с OpenGL ES 2.0.
См. также setAutoMipMapGenerationEnabled(), setMipLevels() и mipLevels().
void QOpenGLTexture::generateMipMaps(int baseLevel, bool resetBaseLevel = true)
Генерирует mipmap для этого объекта текстуры с уровня mipmap baseLevel. Если вы используете целевой объект текстуры и опцию фильтрации, требующую mipmap, и вы отключили автоматическую генерацию mipmap, вам нужно вызвать эту функцию или её перегрузку для создания цепочки mipmap.
Генерация mip-уровней для значений выше baseLevel достигается установкой mip-базового уровня на baseLevel и последующей генерацией цепочки mip-уровней. Если resetBaseLevel равно true, тогда базовый уровень текстуры будет сброшен до предыдущего значения.
См. также setAutoMipMapGenerationEnabled(), setMipLevels() и mipLevels().
[static] bool QOpenGLTexture::hasFeature(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 , если эта текстура связана с соответствующим целевым объектом текущей активной единицы текстуры.
bool QOpenGLTexture::isBound(uint unit)
Возвращает true , если эта текстура связана с соответствующим целевым объектом единицы текстуры unit.
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().
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
Возвращает максимальное количество mip-уровней, которое может иметь эта текстура при текущих размерах.
См. также setMipLevels(), mipLevels() и setSize().
QPair<Filter, Filter> QOpenGLTexture::minMagFilters() const
Возвращает текущие фильтры уменьшения и увеличения.
См. также setMinMagFilters().
Filter QOpenGLTexture::minificationFilter() const
Возвращает фильтр уменьшения.
См. также setMinificationFilter().
float QOpenGLTexture::minimumLevelOfDetail() const
Возвращает минимальное значение параметра уровня детализации.
См. также setMinimumLevelOfDetail(), maximumLevelOfDetail() и levelOfDetailRange().
int QOpenGLTexture::mipBaseLevel() const
Возвращает базовый mip-уровень, используемый для всех запросов текстуры с этой текстурой. По умолчанию это 0.
См. также setMipBaseLevel(), mipMaxLevel() и mipLevelRange().
QPair<int, int> QOpenGLTexture::mipLevelRange() const
Возвращает диапазон mip-уровней, которые могут быть использованы для запросов текстуры с этой текстурой.
См. также setMipLevelRange(), mipBaseLevel() и mipMaxLevel().
int QOpenGLTexture::mipLevels() const
Возвращает количество mip-уровней для этой текстуры. Если хранилище для этой текстуры ещё не выделено, возвращает запрашиваемое количество mip-уровней.
См. также setMipLevels(), maximumMipLevels() и isStorageAllocated().
int QOpenGLTexture::mipMaxLevel() const
Возвращает максимальный mip-уровень, используемый для всех запросов текстуры с этой текстурой.
См. также setMipMaxLevel(), mipBaseLevel() и mipLevelRange().
void QOpenGLTexture::release()
Отвязывает эту текстуру от текущей активной единицы текстуры.
См. также bind().
void QOpenGLTexture::release(uint unit, TextureUnitReset reset = DontResetTextureUnit)
Отвязывает эту текстуру от единицы текстуры unit.
Если параметр reset равен true, эта функция восстановит активную единицу до единицы текстуры, которая была активна при входе.
int QOpenGLTexture::samples() const
Возвращает количество многообразных точек выборки для этой текстуры. Если хранилище для этой текстуры ещё не выделено, эта функция возвращает запрашиваемое количество образцов.
Для текстурных целей, которые не поддерживают многообразность, это вернёт 0.
См. также setSamples() и isStorageAllocated().
void QOpenGLTexture::setAutoMipMapGenerationEnabled(bool enabled)
Если enabled равно true, включает автоматическое создание мип-уровней для этого объекта текстуры всякий раз, когда данные мип-уровня 0 устанавливаются через setData().
Автоматическое создание мип-уровней включено по умолчанию.
Примечание: Создание мип-уровней не поддерживается для сжатых текстур с OpenGL ES 2.0.
См. также isAutoMipMapGenerationEnabled() и generateMipMaps().
void QOpenGLTexture::setBorderColor(QColor color)
Устанавливает цвет границы текстуры в color.
Примечание: Эта функция не имеет эффекта на Mac и 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.
Это перегруженная функция.
void QOpenGLTexture::setComparisonFunction(ComparisonFunction function)
См. также comparisonFunction().
void QOpenGLTexture::setComparisonMode(ComparisonMode mode)
Устанавливает режим сравнения текстуры для этой текстуры в mode. Режим сравнения текстуры используется шейдерами-тенями при выборке пикселей из глубинной текстуры.
Эта функция была добавлена в Qt 5.5.
См. также comparisonMode().
void QOpenGLTexture::setCompressedData(int mipLevel, int layer, CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR)
Загружает сжатые пиксельные данные data в mipLevel, массив layer и cubeFace. Перенос пикселей может быть дополнительно управляемым с помощью options. Аргумент dataSize должен указывать размер данных, на которые указывает data.
Если не используется сжатый формат format(), то необходимо использовать setData() вместо этой функции.
Эта функция была добавлена в Qt 5.3.
void QOpenGLTexture::setCompressedData(int mipLevel, int layer, int dataSize, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR)
Это перегруженная функция.
void QOpenGLTexture::setCompressedData(int mipLevel, int dataSize, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR)
Это перегруженная функция.
void QOpenGLTexture::setCompressedData(int dataSize, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR)
Это перегруженная функция.
void QOpenGLTexture::setData(int mipLevel, int layer, CubeMapFace cubeFace, PixelFormat sourceFormat, PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR)
Загружает пиксельные data для этого объекта текстуры mipLevel, массив layer и cubeFace. Хранилище должно быть выделено перед загрузкой пиксельных данных. Некоторые перегрузки setData() установят соответствующие размеры, уровни мип-мап и слои массива, а затем выделят хранилище для вас, если у них достаточно информации для этого. Это будет отмечено в документации функции.
Структура пиксельных данных, на которые указывает data, определяется sourceFormat и sourceType. Загрузка пиксельных данных может быть дополнительно управляема с помощью options.
Если используется сжатый формат(), то необходимо использовать setCompressedData() вместо этой функции.
Эта функция была добавлена в Qt 5.3.
См. также setCompressedData().
void QOpenGLTexture::setData(int mipLevel, int layer, PixelFormat sourceFormat, PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR)
Это перегруженная функция.
Эта функция была добавлена в Qt 5.3.
void QOpenGLTexture::setData(int mipLevel, PixelFormat sourceFormat, PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR)
Это перегруженная функция.
Эта функция была добавлена в Qt 5.3.
void QOpenGLTexture::setData(PixelFormat sourceFormat, PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions * const options = Q_NULLPTR)
Это перегруженная функция.
Эта функция была добавлена в Qt 5.3.
void QOpenGLTexture::setData(const QImage &image, MipMapGeneration genMipMaps = GenerateMipMaps)
Эта перегрузка setData() выделит хранилище для вас. Пиксельные данные содержатся в image. Мип-мапы генерируются по умолчанию. Установите genMipMaps в DontGenerateMipMaps, чтобы отключить генерацию мип-мап.
Это перегруженная функция.
void QOpenGLTexture::setDepthStencilMode(DepthStencilMode mode)
Если используется текстура с комбинированным форматом глубины/шаблона, эта функция устанавливает, какой компонент текстуры используется в mode.
Когда параметр установлен в DepthMode, доступ к нему из шейдера будет осуществляться к компоненту глубины как к одиночному значению с плавающей точкой, как обычно. Но когда параметр установлен в StencilMode, шейдер будет обращаться к компоненту шаблона.
Примечание: Эта функция не имеет эффекта на Mac и Qt, построенных для OpenGL ES 2.
Эта функция была добавлена в Qt 5.4.
См. также depthStencilMode().
void QOpenGLTexture::setFixedSamplePositions(bool fixed)
Устанавливает, будут ли позиции образцов и количество образцов, используемые с текстурой, поддерживающей многократную выборку, фиксированы в fixed. Если установлено true, позиции образцов и количество образцов одинаковы для всех текселей в изображении и не зависят от размера или внутреннего формата изображения. Эту функцию следует вызывать до выделения хранилища для текстуры.
Для целей, не поддерживающих многократную выборку, эта функция не оказывает никакого влияния.
Значение по умолчанию — true.
См. также isFixedSamplePositions() и isStorageAllocated().
void QOpenGLTexture::setFormat(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(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(Filter minificationFilter, Filter magnificationFilter)
Устанавливает фильтр уменьшения в minificationFilter и фильтр увеличения в magnificationFilter.
См. также minMagFilters(), setMinificationFilter() и setMagnificationFilter().
void QOpenGLTexture::setMinificationFilter(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-карт levels для выделения памяти. Эта функция должна быть вызвана перед выделением памяти для текстуры.
Если цель текстуры не поддерживает 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().
void QOpenGLTexture::setSwizzleMask(SwizzleComponent component, SwizzleValue value)
GLSL-шейдеры могут переупорядочить компоненты vec4, возвращаемые функциями текстур. Также желательно иметь возможность управлять этим переупорядочением из кода на стороне процессора. Это становится возможным благодаря маскам свайзла с OpenGL 3.3.
Каждый компонент текстуры может быть сопоставлен с одним из вариантов SwizzleValue.
Эта функция сопоставляет component с выходным значением value.
Примечание: Эта функция не оказывает влияния на Mac и Qt, построенном для OpenGL ES 2.
См. также swizzleMask().
void QOpenGLTexture::setSwizzleMask(SwizzleValue r, SwizzleValue g, SwizzleValue b, SwizzleValue a)
Параметры r, g, b и a используются для установки цветов красного, зелёного, синего и значения альфа.
Это перегруженная функция.
void QOpenGLTexture::setWrapMode(WrapMode mode)
Устанавливает обёртку (или режим повторения) для всех размерностей текстуры в mode.
См. также wrapMode().
void QOpenGLTexture::setWrapMode(CoordinateDirection direction, WrapMode mode)
Удерживает размер текстуры direction.
Это перегруженный метод.
SwizzleValue QOpenGLTexture::swizzleMask(SwizzleComponent component) const
Возвращает маску сдвиги для текстуры component.
См. также setSwizzleMask().
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().
WrapMode QOpenGLTexture::wrapMode(CoordinateDirection direction) const
Возвращает режим обёртки для размерности текстуры direction.
См. также setWrapMode().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qopengltexture.html