Класс 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(QOpenGLTexture::Target target) | |
| QOpenGLTexture(const QImage &image, QOpenGLTexture::MipMapGeneration genMipMaps = GenerateMipMaps) | |
| ~QOpenGLTexture() | |
| void | allocateStorage() |
| void | allocateStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType) |
| void | bind() |
| void | bind(uint unit, QOpenGLTexture::TextureUnitReset reset = DontResetTextureUnit) |
| QColor | borderColor() const |
| void | borderColor(float *border) const |
| void | borderColor(int *border) const |
| void | borderColor(unsigned int *border) const |
| QOpenGLTexture::ComparisonFunction | comparisonFunction() const |
| QOpenGLTexture::ComparisonMode | comparisonMode() const |
| bool | create() |
| QOpenGLTexture * | createTextureView(QOpenGLTexture::Target target, QOpenGLTexture::TextureFormat viewFormat, int minimumMipmapLevel, int maximumMipmapLevel, int minimumLayer, int maximumLayer) const |
| int | depth() const |
| QOpenGLTexture::DepthStencilMode | depthStencilMode() const |
| void | destroy() |
| int | faces() const |
| QOpenGLTexture::TextureFormat | format() const |
| void | generateMipMaps() |
| void | generateMipMaps(int baseLevel, bool resetBaseLevel = true) |
| int | height() const |
| bool | isAutoMipMapGenerationEnabled() const |
| bool | isBound() const |
| bool | isBound(uint unit) |
| bool | isCreated() const |
| bool | isFixedSamplePositions() const |
| bool | isStorageAllocated() const |
| bool | isTextureView() const |
| int | layers() const |
| QPair<float, float> | levelOfDetailRange() const |
| float | levelofDetailBias() const |
| QOpenGLTexture::Filter | magnificationFilter() const |
| float | maximumAnisotropy() const |
| float | maximumLevelOfDetail() const |
| int | maximumMipLevels() const |
| QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter> | minMagFilters() const |
| QOpenGLTexture::Filter | minificationFilter() const |
| float | minimumLevelOfDetail() const |
| int | mipBaseLevel() const |
| QPair<int, int> | mipLevelRange() const |
| int | mipLevels() const |
| int | mipMaxLevel() const |
| void | release() |
| void | release(uint unit, QOpenGLTexture::TextureUnitReset reset = DontResetTextureUnit) |
| int | samples() const |
| void | setAutoMipMapGenerationEnabled(bool enabled) |
| void | setBorderColor(QColor color) |
| void | setBorderColor(float r, float g, float b, float a) |
| void | setBorderColor(int r, int g, int b, int a) |
| void | setBorderColor(uint r, uint g, uint b, uint a) |
| void | setComparisonFunction(QOpenGLTexture::ComparisonFunction function) |
| void | setComparisonMode(QOpenGLTexture::ComparisonMode mode) |
| void | setCompressedData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
| void | setCompressedData(int 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(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.
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 |
Поддержка целевой текстуры 1D |
QOpenGLTexture::TextureComparisonOperators |
0x00004000 |
Поддержка операторов сравнения текстур |
QOpenGLTexture::TextureMipMapLevel |
0x00008000 |
Поддержка установки базовых и максимальных уровней MIP-карты |
Тип Features является псевдонимом для QFlags<Feature>. Он хранит логическое ИЛИ комбинацию значений Feature.
enum 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 |
enum QOpenGLTexture::PixelType
Это перечисление определяет возможные типы данных пикселей для операции передачи пикселей
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 |
Текстура 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 |
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::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 |
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(QOpenGLTexture::Target target)
Создаёт объект QOpenGLTexture, который позже можно связать с target.
Это не создаёт базовый объект OpenGL текстуры. Поэтому создание с этим конструктором не требует действительного текущего контекста OpenGL.
QOpenGLTexture::QOpenGLTexture(const QImage &image, QOpenGLTexture::MipMapGeneration genMipMaps = GenerateMipMaps)
Создаёт объект QOpenGLTexture, который позже можно связать с 2D-текстурой целевого назначения и содержит данные пикселей, содержащиеся в image. Если вы хотите получить цепочку mipmap, установите genMipMaps в true (это значение по умолчанию).
Это создаёт базовый объект OpenGL текстуры. Поэтому создание с этим конструктором требует действительного текущего контекста OpenGL.
QOpenGLTexture::~QOpenGLTexture()
Уничтожает экземпляр QOpenGLTexture.
void QOpenGLTexture::allocateStorage()
Выделяет хранилище на стороне сервера для этого объекта текстуры, учитывая формат, размеры, уровни mipmap, слои массива и грани куба.
После выделения хранилища изменить эти свойства больше нельзя.
Если поддерживается, QOpenGLTexture использует неизменяемое хранилище текстуры.
После выделения хранилища для текстуры данные пикселей могут быть загружены с помощью одного из перегруженных методов setData().
Примечание: Если неизменяемое хранилище текстуры недоступно, то будет использован формат пикселей по умолчанию и тип пикселей для создания изменяемого хранилища. Вы можете использовать другой перегруженный метод allocateStorage(), чтобы указать точный формат пикселей и тип пикселей для использования при выделении изменяемого хранилища; это особенно полезно в некоторых реализациях OpenGL ES (в частности, OpenGL ES 2), где формат пикселей и тип пикселей, используемые во время выделения, должны точно совпадать с форматом и типом, переданными в любой последующий вызов setData().
См. также isStorageAllocated() и setData().
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.
QOpenGLTexture::ComparisonFunction QOpenGLTexture::comparisonFunction() const
Возвращает оператор сравнения текстуры, установленный для этой текстуры. По умолчанию текстура имеет функцию сравнения CompareLessEqual.
Эта функция была добавлена в Qt 5.5.
См. также setComparisonFunction().
QOpenGLTexture::ComparisonMode QOpenGLTexture::comparisonMode() const
Возвращает режим сравнения текстуры, установленный для этой текстуры. По умолчанию текстура имеет режим сравнения CompareNone (т. е. сравнения отключены).
Эта функция была добавлена в Qt 5.5.
См. также setComparisonMode().
bool QOpenGLTexture::create()
Создаёт базовый объект OpenGL текстуры. Это требует текущего действительного контекста OpenGL. Если объект текстуры уже существует, эта функция ничего не делает.
После создания объекта текстуры вы можете получить имя объекта из функции textureId(). Это может быть полезно, если вы хотите выполнить некоторые сырые вызовы OpenGL, связанные с этой текстурой.
Обычно не нужно вызывать эту функцию напрямую, так как все функции, которые устанавливают свойства объекта текстуры, неявно вызывают create() от вашего имени.
Возвращает true если создание прошло успешно, в противном случае возвращает false.
См. также destroy(), isCreated(), и textureId().
END_OF_DOCUMENT_MARKERQOpenGLTexture *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().
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 2.0.
См. также 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 , если эта текстура привязана к соответствующему целевому параметру текущего активного блока текстур.
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().
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(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(QOpenGLTexture::ComparisonFunction function)
См. также comparisonFunction().
void QOpenGLTexture::setComparisonMode(QOpenGLTexture::ComparisonMode mode)
Устанавливает режим сравнения текстуры для этой текстуры на mode. Режим сравнения текстуры используется теневыми сэмплерами при выборке глубинной текстуры.
Эта функция была добавлена в Qt 5.5.
См. также comparisonMode().
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.
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)
Это перегруженная функция.
END_OF_DOCUMENT_MARKERvoid QOpenGLTexture::setCompressedData(int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
Это перегруженный метод.
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().
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.
void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
Это перегруженный метод.
Этот метод был добавлен в Qt 5.3.
void QOpenGLTexture::setData(int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
Это перегруженный метод.
Этот метод был добавлен в Qt 5.3.
void QOpenGLTexture::setData(QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
Это перегруженный метод.
Этот метод был добавлен в Qt 5.3.
void QOpenGLTexture::setData(const QImage &image, QOpenGLTexture::MipMapGeneration genMipMaps = GenerateMipMaps)
Эта перегрузка метода setData() выделит хранилище для вас. Пиксельные данные содержатся в image. Мipmap генерируются по умолчанию. Установите genMipMaps в DontGenerateMipMaps, чтобы отключить генерацию mipmap.
Это перегруженный метод.
void QOpenGLTexture::setDepthStencilMode(QOpenGLTexture::DepthStencilMode mode)
Если используется текстура с объединённым форматом глубины/маски, этот метод устанавливает компонент текстуры, к которому осуществляется доступ, в mode.
Когда параметр установлен в DepthMode, доступ к нему из шейдера будет выполняться к компоненту глубины как к одному float, как обычно. Но когда параметр установлен в StencilMode, шейдер будет получать доступ к компоненту маски.
Примечание: Этот метод не оказывает никакого эффекта на Mac и 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. Смещение уровня детализации влияет на точку, в которой изменяются уровни mipmapping. Увеличение значений смещения уровня детализации делает общее изображение более размытым или плавным. Уменьшение значений делает общее изображение более чётким.
Примечание: Этот метод не оказывает никакого эффекта на 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. Это ограничивает выбор низкоразрешающей mipmap (самый высокий уровень mipmap). Значение по умолчанию — 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. Это ограничивает выбор самой высокой детализации мип-мап (самого низкого уровня мип-мап). Значение по умолчанию равно -1000.
Примечание: Эта функция не оказывает влияния на Qt, скомпилированный для OpenGL ES 2.
См. также minimumLevelOfDetail(), setMaximumLevelOfDetail() и setLevelOfDetailRange().
void QOpenGLTexture::setMipBaseLevel(int baseLevel)
Устанавливает базовый уровень мип-мап, используемый для всех обращений к текстуре с этой текстурой, до baseLevel.
Примечание: Эта функция не оказывает влияния на Qt, скомпилированный для OpenGL ES 2.
См. также mipBaseLevel(), setMipMaxLevel() и setMipLevelRange().
void QOpenGLTexture::setMipLevelRange(int baseLevel, int maxLevel)
Устанавливает диапазон уровней мип-мап, которые могут быть использованы для обращений к текстуре с этой текстурой, от baseLevel до maxLevel.
Примечание: Эта функция не оказывает влияния на Qt, скомпилированный для OpenGL ES 2.
См. также setMipBaseLevel(), setMipMaxLevel() и mipLevelRange().
void QOpenGLTexture::setMipLevels(int levels)
Для целей текстур, поддерживающих мип-мапы, эта функция устанавливает запрашиваемое количество уровней мип-мап levels для выделения памяти. Эту функцию следует вызывать до выделения памяти для текстуры.
Если цель текстуры не поддерживает мип-мапы, эта функция не оказывает влияния.
См. также mipLevels(), maximumMipLevels() и isStorageAllocated().
void QOpenGLTexture::setMipMaxLevel(int maxLevel)
Устанавливает максимальный уровень мип-мап, используемый для всех обращений к текстуре с этой текстурой, до 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 не поддерживает повторяющиеся текстуры, не являющиеся степенью двойки, то режим обёртания автоматически устанавливается в ClampToEdge.
См. также width(), height() и depth().
void QOpenGLTexture::setSwizzleMask(QOpenGLTexture::SwizzleComponent component, QOpenGLTexture::SwizzleValue value)
GLSL-шейдеры могут переупорядочивать компоненты vec4, возвращаемые функциями текстуры. Также желательно иметь возможность управлять этим переупорядочиванием из кода на стороне CPU. Это становится возможным благодаря маскам сдвигов с 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)
Устанавливает режим обёртания (или повторения) для всех измерений текстуры до mode.
См. также wrapMode().
void QOpenGLTexture::setWrapMode(QOpenGLTexture::CoordinateDirection direction, QOpenGLTexture::WrapMode mode)
Удерживает размер текстуры direction.
Это перегруженная функция.
QOpenGLTexture::SwizzleValue QOpenGLTexture::swizzleMask(QOpenGLTexture::SwizzleComponent component) const
Возвращает маску сдвига для текстурного 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
Возвращает режим обёртания для измерения текстуры direction.
См. также setWrapMode().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qopengltexture.html