QOpenGLTexture 类
QOpenGLTexture 类封装了一个 OpenGL 纹理对象。 更多信息...
头文件 | #include <QOpenGLTexture> |
公共类型
枚举 | 绑定目标 { 绑定目标1D, 绑定目标1D数组, 绑定目标2D, 绑定目标2D数组, 绑定目标3D, …, 绑定目标缓冲区 } |
枚举 | 比较函数 { 比较小于等于, 比较大于等于, 比较小, 比较大, 比较等于, …, 永不相等 } |
枚举 | 比较模式 { 比较纹理到参考, 没有比较 } |
枚举 | 坐标方向 { 方向S, 方向T, 方向R } |
枚举 | 立方体贴面 { 立方体贴面正X, 立方体贴面负X, 立方体贴面正Y, 立方体贴面负Y, 立方体贴面正Z, 立方体贴面负Z } |
枚举 | 深度模板模式 { 深度模式, 模板模式 } |
枚举 | 特性 { 不可变存储, 不可变多采样存储, 纹理矩形, 纹理数组, 纹理3D, …, Mip级别纹理 } |
标志 | 特性 |
枚举 | 过滤器 { 最近点采样, 线性采样, 最近点采样Mip最近, 最近点采样Mip线性, 线性采样Mip最近, 线性采样Mip线性 } |
枚举 | Mip生成 { 生成Mip级别, 不生成Mip级别 } |
枚举 | 像素格式 { 没有源格式, 红色, RG, RGB, BGR, …, 亮度和alpha } |
枚举 | 像素类型 { 没有像素类型, Int8, UInt8, Int16, UInt16, …, Float32_D32_UInt32_S8_X24 } |
枚举 | 混合组件 { 混合红色, 混合绿色, 混合蓝色, 混合alpha } |
枚举 | 混合值 { 红色值, 绿色值, 蓝色值, alpha值, 零值, 一值 } |
枚举 | 目标 { 目标1D, 目标1D数组, 目标2D, 目标2D数组, 目标3D, …, 目标缓冲区 } |
枚举 | 纹理格式 { 没有格式, R8_UNorm, RG8_UNorm, RGB8_UNorm, RGBA8_UNorm, …, 亮度和alpha格式 } |
枚举 | 纹理单元重置 { 重置纹理单元, 不重置纹理单元 } |
枚举 | 封装模式 { 重复, 镜像重复, 边缘拉锯, 边缘克隆 } |
公共函数
QOpenGLTexture(QOpenGLTexture::Target 目标) | |
QOpenGLTexture(const QImage &image, QOpenGLTexture::MipMapGeneration genMipMaps = GenerateMipMaps) | |
void | allocateStorage() |
void | allocateStorage(QOpenGLTexture::PixelFormat 像素格式, QOpenGLTexture::PixelType 像素类型) |
void | bind() |
void | bind(uint 单元, QOpenGLTexture::TextureUnitReset reset = DontResetTextureUnit) |
QColor | 边界颜色() const |
void | 边界颜色(float *边界) const |
void | 边界颜色(int *边界) const |
void | 边界颜色(unsigned int *边界) 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(const QColor &color) |
void | setBorderColor(float r, float g, float b, float a) |
void | setBorderColor(int r, int g, int b, int a) |
void | setBorderColor(uint r, uint g, uint b, uint a) |
void | setComparisonFunction(QOpenGLTexture::ComparisonFunction function) |
void | setComparisonMode(QOpenGLTexture::ComparisonMode mode) |
void | setCompressedData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setCompressedData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setCompressedData(int mipLevel, int layer, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setCompressedData(int mipLevel, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setCompressedData(int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setData(int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setData(int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setData(QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, int layer, QOpenGLTexture::CubeMapFace face, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, int layer, QOpenGLTexture::CubeMapFace face, int layerCount, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr) |
void | setData(const QImage &image, QOpenGLTexture::MipMapGeneration genMipMaps = GenerateMipMaps) |
void | setDepthStencilMode(QOpenGLTexture::DepthStencilMode mode) |
void | setFixedSamplePositions(bool fixed) |
void | setFormat(QOpenGLTexture::TextureFormat format) |
void | setLayers(int layers) |
void | setLevelOfDetailRange(float min, float max) |
void | setLevelofDetailBias(float bias) |
void | setMagnificationFilter(QOpenGLTexture::Filter filter) |
void | setMaximumAnisotropy(float anisotropy) |
void | setMaximumLevelOfDetail(浮点 value) |
void | setMinMagFilters(QOpenGLTexture::Filter minificationFilter, QOpenGLTexture::Filter magnificationFilter) |
void | setMinificationFilter(QOpenGLTexture::Filter filter) |
void | setMinimumLevelOfDetail(浮点 value) |
void | setMipBaseLevel(整型 baseLevel) |
void | setMipLevelRange(整型 baseLevel, 整型 maxLevel) |
void | setMipLevels(整型 levels) |
void | setMipMaxLevel(整型 maxLevel) |
void | setSamples(整型 samples) |
void | setSize(整型 width, 整型 height = 1, 整型 depth = 1) |
void | setSwizzleMask(QOpenGLTexture::SwizzleComponent component, QOpenGLTexture::SwizzleValue value) |
void | setSwizzleMask(QOpenGLTexture::SwizzleValue r, QOpenGLTexture::SwizzleValue g, QOpenGLTexture::SwizzleValue b, QOpenGLTexture::SwizzleValue a) |
void | setWrapMode(QOpenGLTexture::WrapMode mode) |
void | setWrapMode(QOpenGLTexture::CoordinateDirection direction, QOpenGLTexture::WrapMode mode) |
QOpenGLTexture::SwizzleValue | swizzleMask(QOpenGLTexture::SwizzleComponent component) const |
QOpenGLTexture::Target | target() const |
GLuint | textureId() const |
int | width() const |
QOpenGLTexture::WrapMode | wrapMode(QOpenGLTexture::CoordinateDirection direction) const |
静态公共成员
GLuint | boundTextureId(QOpenGLTexture::BindingTarget target) |
GLuint | boundTextureId(uint unit, QOpenGLTexture::BindingTarget target) |
bool | hasFeature(QOpenGLTexture::Feature feature) |
详细描述
QOpenGLTexture使得与OpenGL纹理及其提供的各种功能和目标协同工作变得简单,这些功能和目标取决于您的OpenGL实现的功能。
QOpenGLTexture的典型使用模式是
- 实例化对象,指定纹理目标类型
- 设置影响存储要求的属性,例如存储格式、维度
- 分配服务器端存储
- 可选地上传像素数据
- 可选地设置任何其他属性,例如过滤和边框选项
- 使用纹理或向纹理渲染
在常见的仅将QImage作为纹理像素数据源的情况下,上述大多数步骤都是自动执行的。
// Prepare texture QOpenGLTexture *texture = new QOpenGLTexture(QImage(fileName).mirrored()); texture->setMinificationFilter(QOpenGLTexture::LinearMipMapLinear); texture->setMagnificationFilter(QOpenGLTexture::Linear); ... // Render with texture texture->bind(); glDrawArrays(...);
注意,QImage是垂直镜像的,以考虑到OpenGL和QImage在y轴方向上使用相反的方向。另一个选项是将您的纹理坐标进行变换。
成员类型文档
枚举 QOpenGLTexture::BindingTarget
此枚举定义了纹理单元的可能绑定目标。
常量 | 值 | 描述 |
---|---|---|
QOpenGLTexture::BindingTarget1D | 0x8068 | 相当于 GL_TEXTURE_BINDING_1D |
QOpenGLTexture::BindingTarget1DArray | 0x8C1C | 相当于 GL_TEXTURE_BINDING_1D_ARRAY |
QOpenGLTexture::BindingTarget2D | 0x8069 | 相当于 GL_TEXTURE_BINDING_2D |
QOpenGLTexture::BindingTarget2DArray | 0x8C1D | 相当于 GL_TEXTURE_BINDING_2D_ARRAY |
QOpenGLTexture::BindingTarget3D | 0x806A | 相当于 GL_TEXTURE_BINDING_3D |
QOpenGLTexture::BindingTargetCubeMap | 0x8514 | 相当于 GL_TEXTURE_BINDING_CUBE_MAP |
QOpenGLTexture::BindingTargetCubeMapArray | 0x900A | 等同于 GL_TEXTURE_BINDING_CUBE_MAP_ARRAY |
QOpenGLTexture::BindingTarget2DMultisample | 0x9104 | 等同于 GL_TEXTURE_BINDING_2D_MULTISAMPLE |
QOpenGLTexture::BindingTarget2DMultisampleArray | 0x9105 | 等同于 GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY |
QOpenGLTexture::BindingTargetRectangle | 0x84F6 | 等同于 GL_TEXTURE_BINDING_RECTANGLE |
QOpenGLTexture::BindingTargetBuffer | 0x8C2C | 等同于 GL_TEXTURE_BINDING_BUFFER |
枚举 QOpenGLTexture::ComparisonFunction
此枚举指定当在此纹理上启用纹理比较时使用的比较操作符。
常量 | 值 | 描述 |
---|---|---|
QOpenGLTexture::CompareLessEqual | 0x0203 | 等同于 GL_LEQUAL。 |
QOpenGLTexture::CompareGreaterEqual | 0x0206 | 等同于 GL_GEQUAL。 |
QOpenGLTexture::CompareLess | 0x0201 | 等同于 GL_LESS。 |
QOpenGLTexture::CompareGreater | 0x0204 | 等同于 GL_GREATER。 |
QOpenGLTexture::CompareEqual | 0x0202 | 等同于 GL_EQUAL。 |
QOpenGLTexture::CompareNotEqual | 0x0205 | 等同于 GL_NOTEQUAL。 |
QOpenGLTexture::CompareAlways | 0x0207 | 等同于 GL_ALWAYS。 |
QOpenGLTexture::CompareNever | 0x0200 | 等同于 GL_NEVER。 |
枚举 QOpenGLTexture::ComparisonMode
此枚举指定在采样此纹理时使用的比较模式。
常量 | 值 | 描述 |
---|---|---|
QOpenGLTexture::CompareRefToTexture | 0x884E | 等同于 GL_COMPARE_REF_TO_TEXTURE。 |
QOpenGLTexture::CompareNone | 0x0000 | 等同于 GL_NONE。 |
枚举 QOpenGLTexture::CoordinateDirection
此枚举定义可能的纹理坐标方向。
常量 | 值 | 描述 |
---|---|---|
QOpenGLTexture::DirectionS | 0x2802 | 水平方向。等同于 GL_TEXTURE_WRAP_S |
QOpenGLTexture::DirectionT | 0x2803 | 垂直方向。等同于 GL_TEXTURE_WRAP_T |
QOpenGLTexture::DirectionR | 0x8072 | 深度方向。等同于 GL_TEXTURE_WRAP_R |
枚举 QOpenGLTexture::CubeMapFace
此枚举定义可能的立方体贴图面。
常量 | 值 | 描述 |
---|---|---|
QOpenGLTexture::CubeMapPositiveX | 0x8515 | 等同于 GL_TEXTURE_CUBE_MAP_POSITIVE_X |
QOpenGLTexture::CubeMapNegativeX | 0x8516 | 等同于 GL_TEXTURE_CUBE_MAP_NEGATIVE_X |
QOpenGLTexture::CubeMapPositiveY | 0x8517 | 等同于 GL_TEXTURE_CUBE_MAP_POSITIVE_Y |
QOpenGLTexture::CubeMapNegativeY | 0x8518 | 等同于 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y |
QOpenGLTexture::CubeMapPositiveZ | 0x8519 | 等同于 GL_TEXTURE_CUBE_MAP_POSITIVE_Z |
QOpenGLTexture::CubeMapNegativeZ | 0x851A | 等同于 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z |
枚举 QOpenGLTexture::DepthStencilMode
此枚举指定在采样纹理时访问深度/模板纹理的哪个组件。
常量 | 值 | 描述 |
---|---|---|
QOpenGLTexture::DepthMode | 0x1902 | 等同于 GL_DEPTH_COMPONENT。 |
QOpenGLTexture::StencilMode | 0x1901 | 等同于 GL_STENCIL_INDEX。 |
枚举 QOpenGLTexture::Feature
flags QOpenGLTexture::Features
此枚举定义可以检查的OpenGL纹理相关功能。
常量 | 值 | 描述 |
---|---|---|
QOpenGLTexture::ImmutableStorage | 0x00000001 | 支持不可变纹理存储 |
QOpenGLTexture::ImmutableMultisampleStorage | 0x00000002 | 支持带有多采样目标的不可变纹理存储 |
QOpenGLTexture::TextureRectangle | 0x00000004 | 支持 GL_TEXTURE_RECTANGLE 目标 |
QOpenGLTexture::TextureArrays | 0x00000008 | 支持具有数组层的纹理目标 |
QOpenGLTexture::Texture3D | 0x00000010 | 支持3维纹理目标 |
QOpenGLTexture::TextureMultisample | 0x00000020 | 支持具有多采样能力的纹理目标 |
QOpenGLTexture::TextureBuffer | 0x00000040 | 支持使用OpenGL缓冲对象作为数据源的纹理 |
QOpenGLTexture::TextureCubeMapArrays | 0x00000080 | 支持立方体贴图数组纹理目标 |
QOpenGLTexture::Swizzle | 0x00000100 | 支持纹理分量混洗掩码 |
QOpenGLTexture::StencilTexturing | 0x00000200 | 支持模板纹理(即在GLSL着色器中查找组合深度/模板格式纹理的深度或模板分量) |
QOpenGLTexture::AnisotropicFiltering | 0x00000400 | 支持各向异性纹理过滤 |
QOpenGLTexture::NPOTTextures | 0x00000800 | 对非2的n次幂纹理的基本支持 |
QOpenGLTexture::NPOTTextureRepeat | 0x00001000 | 对非2的n次幂纹理的完全支持,包括纹理重复模式 |
QOpenGLTexture::Texture1D | 0x00002000 | 支持一维纹理目标 |
QOpenGLTexture::TextureComparisonOperators | 0x00004000 | 支持纹理比较运算符 |
QOpenGLTexture::TextureMipMapLevel | 0x00008000 | 支持设置基本和最大Mipmap级别 |
Features类型是一个为QFlags<Feature>的typedef。它存储了Feature值的OR组合。
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 |
QOpenGLTexture::RGB | 0x1907 | 等同于GL_RGB |
QOpenGLTexture::BGR | 0x80E0 | 等同于GL_BGR |
QOpenGLTexture::RGBA | 0x1908 | 等同于GL_RGBA |
QOpenGLTexture::BGRA | 0x80E1 | 等同于GL_BGRA |
QOpenGLTexture::Red_Integer | 0x8D94 | 等同于GL_RED_INTEGER |
QOpenGLTexture::RG_Integer | 0x8228 | 等同于GL_RG_INTEGER |
QOpenGLTexture::RGB_Integer | 0x8D98 | 等同于GL_RGB_INTEGER |
QOpenGLTexture::BGR_Integer | 0x8D9A | 等同于GL_BGR_INTEGER |
QOpenGLTexture::RGBA_Integer | 0x8D99 | 等同于GL_RGBA_INTEGER |
QOpenGLTexture::BGRA_Integer | 0x8D9B | 等同于GL_BGRA_INTEGER |
QOpenGLTexture::Stencil | 0x1901 | 等同于GL_STENCIL_INDEX. 自Qt 5.4引入 |
QOpenGLTexture::Depth | 0x1902 | 等同于GL_DEPTH_COMPONENT |
QOpenGLTexture::DepthStencil | 0x84F9 | 等同于GL_DEPTH_STENCIL |
QOpenGLTexture::Alpha | 0x1906 | 等同于GL_ALPHA (仅OpenGL ES 2) |
QOpenGLTexture::Luminance | 0x1909 | 等同于GL_LUMINANCE (仅OpenGL ES 2) |
QOpenGLTexture::LuminanceAlpha | 0x190A | 等效于 GL_LUMINANCE_ALPHA(OpenGL ES 2 仅限) |
像素类型
此枚举定义了像素传输操作可能使用的像素数据类型
常量 | 值 | 描述 |
---|---|---|
QOpenGLTexture::没有像素类型 | 0 | 等同于GL_NONE |
QOpenGLTexture::Int8 | 0x1400 | 等效于 GL_BYTE |
QOpenGLTexture::UInt8 | 0x1401 | 等效于 GL_UNSIGNED_BYTE |
QOpenGLTexture::Int16 | 0x1402 | 等效于 GL_SHORT |
QOpenGLTexture::UInt16 | 0x1403 | 等效于 GL_UNSIGNED_SHORT |
QOpenGLTexture::Int32 | 0x1404 | 等效于 GL_INT |
QOpenGLTexture::UInt32 | 0x1405 | 等效于 GL_UNSIGNED_INT |
QOpenGLTexture::Float16 | 0x140B | 等效于 GL_HALF_FLOAT |
QOpenGLTexture::Float16OES | 0x8D61 | 等效于 GL_HALF_FLOAT_OES |
QOpenGLTexture::Float32 | 0x1406 | 等效于 GL_FLOAT |
QOpenGLTexture::UInt32_RGB9_E5 | 0x8C3E | 等效于 GL_UNSIGNED_INT_5_9_9_9_REV |
QOpenGLTexture::UInt32_RG11B10F | 0x8C3B | 等效于 GL_UNSIGNED_INT_10F_11F_11F_REV |
QOpenGLTexture::UInt8_RG3B2 | 0x8032 | 等效于 GL_UNSIGNED_BYTE_3_3_2 |
QOpenGLTexture::UInt8_RG3B2_Rev | 0x8362 | 等效于 GL_UNSIGNED_BYTE_2_3_3_REV |
QOpenGLTexture::UInt16_RGB5A1 | 0x8034 | 等效于 GL_UNSIGNED_SHORT_5_5_5_1 |
QOpenGLTexture::UInt16_RGB5A1_Rev | 0x8366 | 等效于 GL_UNSIGNED_SHORT_1_5_5_5_REV |
QOpenGLTexture::UInt16_R5G6B5 | 0x8363 | 等效于 GL_UNSIGNED_SHORT_5_6_5 |
QOpenGLTexture::UInt16_R5G6B5_Rev | 0x8364 | 等效于 GL_UNSIGNED_SHORT_5_6_5_REV |
QOpenGLTexture::UInt16_RGBA4 | 0x8033 | 等效于 GL_UNSIGNED_SHORT_4_4_4_4 |
QOpenGLTexture::UInt16_RGBA4_Rev | 0x8365 | 等效于 GL_UNSIGNED_SHORT_4_4_4_4_REV |
QOpenGLTexture::UInt32_RGBA8 | 0x8035 | 等效于 GL_UNSIGNED_INT_8_8_8_8 |
QOpenGLTexture::UInt32_RGBA8_Rev | 0x8367 | 等效于 GL_UNSIGNED_INT_8_8_8_8_REV |
QOpenGLTexture::UInt32_RGB10A2 | 0x8036 | 等效于 GL_UNSIGNED_INT_10_10_10_2 |
QOpenGLTexture::UInt32_RGB10A2_Rev | 0x8368 | 等效于 GL_UNSIGNED_INT_2_10_10_10_REV |
QOpenGLTexture::UInt32_D24S8 | 0x84FA | 等效于 GL_UNSIGNED_INT_24_8。自 Qt 5.4 介绍 |
QOpenGLTexture::Float32_D32_UInt32_S8_X24 | 0x8DAD | 等效于 GL_FLOAT_32_UNSIGNED_INT_24_8_REV。自 Qt 5.4 介绍 |
混色组件
此枚举定义了可以分配混色掩码的纹理颜色组件。
常量 | 值 | 描述 |
---|---|---|
QOpenGLTexture::SwizzleRed | 0x8E42 | 红色组件。等效于 GL_TEXTURE_SWIZZLE_R |
QOpenGLTexture::SwizzleGreen | 0x8E43 | 绿色组件。等效于 GL_TEXTURE_SWIZZLE_G |
QOpenGLTexture::SwizzleBlue | 0x8E44 | 蓝色组件。等效于 GL_TEXTURE_SWIZZLE_B |
QOpenGLTexture::SwizzleAlpha | 0x8E45 | alpha组件。等效于 GL_TEXTURE_SWIZZLE_A |
混色值
此枚举定义了纹理混颜色可能的掩码值。
常量 | 值 | 描述 |
---|---|---|
QOpenGLTexture::RedValue | 0x1903 | 将组件映射到红色通道。等效于 GL_RED |
QOpenGLTexture::GreenValue | 0x1904 | 将组件映射到绿色通道。等效于 GL_GREEN |
QOpenGLTexture::BlueValue | 0x1905 | 将组件映射到蓝色通道。等效于 GL_BLUE |
QOpenGLTexture::AlphaValue | 0x1906 | 将组件映射到alpha通道。等效于 GL_ALPHA |
QOpenGLTexture::ZeroValue | 0 | 将组件映射到固定值为0。等效于 GL_ZERO |
QOpenGLTexture::OneValue | 1 | 将组件映射到固定值为1。等效于 GL_ONE |
目标
此枚举定义了一个 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。 |
枚举 QOpenGLTexture::TextureFormat
本枚举定义了可能的纹理格式。根据您的OpenGL实现,可能只支持这些格式的子集。
常量 | 值 | 描述 |
---|---|---|
QOpenGLTexture::NoFormat | 0 | 等同于GL_NONE |
QOpenGLTexture::R8_UNorm | 0x8229 | 等同于GL_R8 |
QOpenGLTexture::RG8_UNorm | 0x822B | 等同于GL_RG8 |
QOpenGLTexture::RGB8_UNorm | 0x8051 | 等同于GL_RGB8 |
QOpenGLTexture::RGBA8_UNorm | 0x8058 | 等同于GL_RGBA8 |
QOpenGLTexture::R16_UNorm | 0x822A | 等同于GL_R16 |
QOpenGLTexture::RG16_UNorm | 0x822C | 等同于GL_RG16 |
QOpenGLTexture::RGB16_UNorm | 0x8054 | 等同于GL_RGB16 |
QOpenGLTexture::RGBA16_UNorm | 0x805B | 等同于GL_RGBA16 |
QOpenGLTexture::R8_SNorm | 0x8F94 | 等同于GL_R8_SNORM |
QOpenGLTexture::RG8_SNorm | 0x8F95 | 等同于GL_RG8_SNORM |
QOpenGLTexture::RGB8_SNorm | 0x8F96 | 等同于GL_RGB8_SNORM |
QOpenGLTexture::RGBA8_SNorm | 0x8F97 | 等同于GL_RGBA8_SNORM |
QOpenGLTexture::R16_SNorm | 0x8F98 | 等同于GL_R16_SNORM |
QOpenGLTexture::RG16_SNorm | 0x8F99 | 等同于GL_RG16_SNORM |
QOpenGLTexture::RGB16_SNorm | 0x8F9A | 等同于GL_RGB16_SNORM |
QOpenGLTexture::RGBA16_SNorm | 0x8F9B | 等同于GL_RGBA16_SNORM |
QOpenGLTexture::R8U | 0x8232 | 等同于GL_R8UI |
QOpenGLTexture::RG8U | 0x8238 | 等同于GL_RG8UI |
QOpenGLTexture::RGB8U | 0x8D7D | 等同于GL_RGB8UI |
QOpenGLTexture::RGBA8U | 0x8D7C | 等同于GL_RGBA8UI |
QOpenGLTexture::R16U | 0x8234 | 等同于GL_R16UI |
QOpenGLTexture::RG16U | 0x823A | 等同于GL_RG16UI |
QOpenGLTexture::RGB16U | 0x8D77 | 等同于GL_RGB16UI |
QOpenGLTexture::RGBA16U | 0x8D76 | 等同于GL_RGBA16UI |
QOpenGLTexture::R32U | 0x8236 | 等同于GL_R32UI |
QOpenGLTexture::RG32U | 0x823C | 等同于GL_RG32UI |
QOpenGLTexture::RGB32U | 0x8D71 | 等同于GL_RGB32UI |
QOpenGLTexture::RGBA32U | 0x8D70 | 等同于GL_RGBA32UI |
QOpenGLTexture::R8I | 0x8231 | 等同于GL_R8I |
QOpenGLTexture::RG8I | 0x8237 | 等同于GL_RG8I |
QOpenGLTexture::RGB8I | 0x8D8F | 等同于GL_RGB8I |
QOpenGLTexture::RGBA8I | 0x8D8E | 等同于GL_RGBA8I |
QOpenGLTexture::R16I | 0x8233 | 等同于GL_R16I |
QOpenGLTexture::RG16I | 0x8239 | 等同于GL_RG16I |
QOpenGLTexture::RGB16I | 0x8D89 | 相当于 GL_RGB16I |
QOpenGLTexture::RGBA16I | 0x8D88 | 相当于 GL_RGBA16I |
QOpenGLTexture::R32I | 0x8235 | 相当于 GL_R32I |
QOpenGLTexture::RG32I | 0x823B | 相当于 GL_RG32I |
QOpenGLTexture::RGB32I | 0x8D83 | 相当于 GL_RGB32I |
QOpenGLTexture::RGBA32I | 0x8D82 | 相当于 GL_RGBA32I |
QOpenGLTexture::R16F | 0x822D | 相当于 GL_R16F |
QOpenGLTexture::RG16F | 0x822F | 相当于 GL_RG16F |
QOpenGLTexture::RGB16F | 0x881B | 相当于 GL_RGB16F |
QOpenGLTexture::RGBA16F | 0x881A | 相当于 GL_RGBA16F |
QOpenGLTexture::R32F | 0x822E | 相当于 GL_R32F |
QOpenGLTexture::RG32F | 0x8230 | 相当于 GL_RG32F |
QOpenGLTexture::RGB32F | 0x8815 | 相当于 GL_RGB32F |
QOpenGLTexture::RGBA32F | 0x8814 | 相当于 GL_RGBA32F |
QOpenGLTexture::RGB9E5 | 0x8C3D | 相当于 GL_RGB9_E5 |
QOpenGLTexture::RG11B10F | 0x8C3A | 相当于 GL_R11F_G11F_B10F |
QOpenGLTexture::RG3B2 | 0x2A10 | 相当于 GL_R3_G3_B2 |
QOpenGLTexture::R5G6B5 | 0x8D62 | 相当于 GL_RGB565 |
QOpenGLTexture::RGB5A1 | 0x8057 | 相当于 GL_RGB5_A1 |
QOpenGLTexture::RGBA4 | 0x8056 | 相当于 GL_RGBA4 |
QOpenGLTexture::RGB10A2 | 0x906F | 相当于 GL_RGB10_A2UI |
QOpenGLTexture::D16 | 0x81A5 | 相当于 GL_DEPTH_COMPONENT16 |
QOpenGLTexture::D24 | 0x81A6 | 相当于 GL_DEPTH_COMPONENT24 |
QOpenGLTexture::D24S8 | 0x88F0 | 相当于 GL_DEPTH24_STENCIL8 |
QOpenGLTexture::D32 | 0x81A7 | 相当于 GL_DEPTH_COMPONENT32 |
QOpenGLTexture::D32F | 0x8CAC | 相当于 GL_DEPTH_COMPONENT32F |
QOpenGLTexture::D32FS8X24 | 0x8CAD | 相当于 GL_DEPTH32F_STENCIL8 |
QOpenGLTexture::S8 | 0x8D48 | 相当于 GL_STENCIL_INDEX8。Qt 5.4 中引入。 |
QOpenGLTexture::RGB_DXT1 | 0x83F0 | 相当于 GL_COMPRESSED_RGB_S3TC_DXT1_EXT |
QOpenGLTexture::RGBA_DXT1 | 0x83F1 | 相当于 GL_COMPRESSED_RGBA_S3TC_DXT1_EXT |
QOpenGLTexture::RGBA_DXT3 | 0x83F2 | 相当于 GL_COMPRESSED_RGBA_S3TC_DXT3_EXT |
QOpenGLTexture::RGBA_DXT5 | 0x83F3 | 相当于 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT |
QOpenGLTexture::R_ATI1N_UNorm | 0x8DBB | 相当于 GL_COMPRESSED_RED_RGTC1 |
QOpenGLTexture::R_ATI1N_SNorm | 0x8DBC | 相当于 GL_COMPRESSED_SIGNED_RED_RGTC1 |
QOpenGLTexture::RG_ATI2N_UNorm | 0x8DBD | 相当于 GL_COMPRESSED_RG_RGTC2 |
QOpenGLTexture::RG_ATI2N_SNorm | 0x8DBE | 相当于 GL_COMPRESSED_SIGNED_RG_RGTC2 |
QOpenGLTexture::RGB_BP_UNSIGNED_FLOAT | 0x8E8F | 相当于 GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB |
QOpenGLTexture::RGB_BP_SIGNED_FLOAT | 0x8E8E | 相当于 GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB |
QOpenGLTexture::RGB_BP_UNorm | 0x8E8C | 相当于 GL_COMPRESSED_RGBA_BPTC_UNORM_ARB |
QOpenGLTexture::R11_EAC_UNorm | 0x9270 | 相当于 GL_COMPRESSED_R11_EAC |
QOpenGLTexture::R11_EAC_SNorm | 0x9271 | 相当于 GL_COMPRESSED_SIGNED_R11_EAC |
QOpenGLTexture::RG11_EAC_UNorm | 0x9272 | 相当于 GL_COMPRESSED_RG11_EAC |
QOpenGLTexture::RG11_EAC_SNorm | 0x9273 | 相当于 GL_COMPRESSED_SIGNED_RG11_EAC |
QOpenGLTexture::RGB8_ETC2 | 0x9274 | 相当于 GL_COMPRESSED_RGB8_ETC2 |
QOpenGLTexture::SRGB8_ETC2 | 0x9275 | 相当于 GL_COMPRESSED_SRGB8_ETC2 |
QOpenGLTexture::RGB8_PunchThrough_Alpha1_ETC2 | 0x9276 | 相当于 GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2 |
QOpenGLTexture::SRGB8_PunchThrough_Alpha1_ETC2 | 0x9277 | 相当于 GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2 |
QOpenGLTexture::RGBA8_ETC2_EAC | 0x9278 | 相当于 GL_COMPRESSED_RGBA8_ETC2_EAC |
QOpenGLTexture::SRGB8_Alpha8_ETC2_EAC | 0x9279 | 相当于 GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC |
QOpenGLTexture::RGB8_ETC1 | 0x8D64 | 相当于 GL_ETC1_RGB8_OES |
QOpenGLTexture::RGBA_ASTC_4x4 | 0x93B0 | 等同于GL_COMPRESSED_RGBA_ASTC_4x4_KHR |
QOpenGLTexture::RGBA_ASTC_5x4 | 0x93B1 | 等同于GL_COMPRESSED_RGBA_ASTC_5x4_KHR |
QOpenGLTexture::RGBA_ASTC_5x5 | 0x93B2 | 等同于GL_COMPRESSED_RGBA_ASTC_5x5_KHR |
QOpenGLTexture::RGBA_ASTC_6x5 | 0x93B3 | 等同于GL_COMPRESSED_RGBA_ASTC_6x5_KHR |
QOpenGLTexture::RGBA_ASTC_6x6 | 0x93B4 | 等同于GL_COMPRESSED_RGBA_ASTC_6x6_KHR |
QOpenGLTexture::RGBA_ASTC_8x5 | 0x93B5 | 等同于GL_COMPRESSED_RGBA_ASTC_8x5_KHR |
QOpenGLTexture::RGBA_ASTC_8x6 | 0x93B6 | 等同于GL_COMPRESSED_RGBA_ASTC_8x6_KHR |
QOpenGLTexture::RGBA_ASTC_8x8 | 0x93B7 | 等同于GL_COMPRESSED_RGBA_ASTC_8x8_KHR |
QOpenGLTexture::RGBA_ASTC_10x5 | 0x93B8 | 等同于GL_COMPRESSED_RGBA_ASTC_10x5_KHR |
QOpenGLTexture::RGBA_ASTC_10x6 | 0x93B9 | 等同于GL_COMPRESSED_RGBA_ASTC_10x6_KHR |
QOpenGLTexture::RGBA_ASTC_10x8 | 0x93BA | 等同于GL_COMPRESSED_RGBA_ASTC_10x8_KHR |
QOpenGLTexture::RGBA_ASTC_10x10 | 0x93BB | 等同于GL_COMPRESSED_RGBA_ASTC_10x10_KHR |
QOpenGLTexture::RGBA_ASTC_12x10 | 0x93BC | 等同于GL_COMPRESSED_RGBA_ASTC_12x10_KHR |
QOpenGLTexture::RGBA_ASTC_12x12 | 0x93BD | 等同于GL_COMPRESSED_RGBA_ASTC_12x12_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_4x4 | 0x93D0 | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_5x4 | 0x93D1 | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_5x5 | 0x93D2 | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_6x5 | 0x93D3 | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_6x6 | 0x93D4 | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_8x5 | 0x93D5 | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_8x6 | 0x93D6 | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_8x8 | 0x93D7 | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_10x5 | 0x93D8 | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_10x6 | 0x93D9 | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_10x8 | 0x93DA | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_10x10 | 0x93DB | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_12x10 | 0x93DC | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR |
QOpenGLTexture::SRGB8_Alpha8_ASTC_12x12 | 0x93DD | 等同于GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR |
QOpenGLTexture::SRGB8 | 0x8C41 | 等同于GL_SRGB8 |
QOpenGLTexture::SRGB8_Alpha8 | 0x8C43 | 等同于GL_SRGB8_ALPHA8 |
QOpenGLTexture::SRGB_DXT1 | 0x8C4C | 等同于GL_COMPRESSED_SRGB_S3TC_DXT1_EXT |
QOpenGLTexture::SRGB_Alpha_DXT1 | 0x8C4D | 等同于GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT |
QOpenGLTexture::SRGB_Alpha_DXT3 | 0x8C4E | 等同于GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT |
QOpenGLTexture::SRGB_Alpha_DXT5 | 0x8C4F | 等同于GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT |
QOpenGLTexture::SRGB_BP_UNorm | 0x8E8D | 等同于GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB |
QOpenGLTexture::DepthFormat | 0x1902 | 等同于GL_DEPTH_COMPONENT (仅限OpenGL ES 3或带OES_depth_texture的ES 2) |
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 仅限) |
枚举QOpenGLTexture::TextureUnitReset
此枚举定义了控制纹理单元激活的选项。
常量 | 值 | 描述 |
---|---|---|
QOpenGLTexture::ResetTextureUnit | 0 | 前激活的纹理单元将被重置 |
QOpenGLTexture::DontResetTextureUnit | 1 | 前激活的纹理单元不会被重置 |
枚举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中包含的像素数据。如果希望生成一系列的mipmaps,则将genMipMaps设置为true
(这是默认值)。
这会创建底层的OpenGL纹理对象。因此,需要使用有效的当前OpenGL上下文来构造此构造函数。
注意:image会自动转换为QImage::Format_RGBA8888,这可能对具有不同格式的大型图像的性能产生影响。
void QOpenGLTexture::allocateStorage()
为这个纹理对象分配服务器端存储,考虑格式、尺寸、mipmap级别、数组层和立方体贴图面。
一旦分配了存储后,就不再可能更改这些属性。
如果受支持,QOpenGLTexture会使用不可变纹理存储。
一旦为纹理分配了存储,就可以通过 注意:如果不可变纹理存储不可用,则将使用默认的像素格式和像素类型创建可变存储。您可以使用其他allocateStorage()重载来指定在分配可变存储时要使用的精确像素格式和像素类型;这在某些OpenGL ES实现(特别是OpenGL ES 2)中特别有用,因为在分配时使用的像素格式和像素类型必须与传递给任何后续setData()调用的格式和类型完全匹配。 另请参阅isStorageAllocated()和setData()。 为这个纹理对象分配服务器端存储,考虑格式、尺寸、mipmap级别、数组层和立方体贴图面。 一旦分配了存储后,就不再可能更改这些属性。 如果支持 QOpenGLTexture,则将使用不可变纹理存储。但是,如果不可变纹理存储不可用,则将使用指定的 pixelFormat 和 pixelType 来分配可变存储;请注意,在某些 OpenGL 实现中(特别是,OpenGL ES 2)它们必须与传递给后续 setData() 调用的格式和类型完美匹配。 一旦为纹理分配了存储,就可以通过 另请参阅isStorageAllocated()和setData()。 将此纹理绑定到当前活动的纹理单元以进行渲染。请注意,您不需要绑定 QOpenGLTexture 对象来修改它们,因为实现会在存在的情况下使用 EXT_direct_state_access 扩展,并在不存在的地方模拟它。 另请参阅 release。 将此纹理绑定到纹理单元 unit 以进行渲染。请注意,您不需要绑定 QOpenGLTexture 对象来修改它们,因为实现会在存在的情况下使用 EXT_direct_state_access 扩展,并在不存在的地方模拟它。 如果参数 reset 为 另请参阅 release。 返回此纹理的边框颜色。 另请参阅 setBorderColor。 将纹理边框颜色写入由 border 指向的数组的第一个四个元素中。 另请参阅 setBorderColor。 将纹理边框颜色写入由 border 指向的数组的第一个四个元素中。 这是一个重载函数。 将纹理边框颜色写入由 border 指向的数组的第一个四个元素中。 这是一个重载函数。 返回绑定到当前活动纹理单元 target 的纹理的 textureId。 返回绑定到纹理单元 unit 的 target 的纹理的 textureId。 返回设置在此纹理上的纹理比较操作符。默认情况下,纹理具有 CompareLessEqual 比较函数。 另请参阅 setComparisonFunction。 返回在此纹理上设置的纹理比较模式。默认情况下,纹理具有CompareNone比较模式(即禁用比较)。 另请参阅setComparisonMode。 创建底层OpenGL纹理对象。这需要当前的OpenGL有效上下文。如果纹理对象已经存在,此函数将不执行任何操作。 一旦纹理对象创建成功,您可以从textureId()函数获取对象名称。这可能是有用的,如果您希望对此纹理进行一些原始的OpenGL调用。 通常不需要直接调用此函数,因为所有设置纹理对象属性的功能都会在您的情况下隐式调用create()。 如果创建成功,则返回 另请参阅destroy (),isCreated ()和textureId ()。 尝试在此纹理上创建一个纹理视图。纹理视图在某种程度上类似于SQL中的视图,因为它呈现了原始数据的有限或重新解释的视图。纹理视图不会在服务器端分配更多存储,而是依赖于源纹理的存储缓冲区。 纹理视图仅在使用不可变存储时可用。有关纹理视图的更多信息,请参阅http://www.opengl.org/wiki/Texture_Storage#Texture_views。 参数target指定用于视图的目标。可以使用某些目标,具体取决于原始目标的类型。例如,可以将Target1DArray纹理的视图指定为Target1DArray或Target1D,但对于后者,由最小层和最大层指定的数组层数必须正好为1。 对viewFormat也适用类似的约束。有关详细信息,请参阅上面的链接和规范。 参数minimumMipmapLevel,maximumMipmapLevel,minimumLayer和maximumLayer用于限制纹理视图可访问的纹理部分。 如果创建纹理视图失败,则此函数将返回0。如果函数成功,则返回对新QOpenGLTexture对象的指针,该对象从其isTextureView ()函数返回 另请参阅isTextureView ()。 返回3D纹理的深度。 另请参阅width (),height ()和setSize ()。 返回使用组合深度/模板格式的纹理的深度/模板模式。 另请参阅 setDepthStencilMode(). 销毁底层的OpenGL纹理对象。这需要一个当前的、有效的OpenGL上下文。 另请参阅 create(),isCreated() 和 textureId(). 返回此纹理的面的数量。对于立方体贴图和立方体贴图数组目标,这将为6。 对于非立方体贴图类型的目标,这将返回1。 返回此纹理对象的格式。 另请参阅 setFormat(). 从mipmap级别0为纹理对象生成mipmap。如果您使用的是需要mipmap的纹理目标和建议,且已禁用自动mipmap生成,则需要调用此函数或重载该函数以创建mipmap链。 注意: OpenGL ES不支持压缩纹理的mipmap生成。 另请参阅 setAutoMipMapGenerationEnabled(),setMipLevels() 和 mipLevels(). 从mipmap级别baseLevel为纹理对象生成mipmap。如果您使用的是需要mipmap的纹理目标和建议,且已禁用自动mipmap生成,则需要调用此函数或重载该函数以创建mipmap链。 通过将mipmap基础级别设置为baseLevel并生成mipmap链来达到以上baseLevel的mipmap生成。如果resetBaseLevel为 另请参阅 setAutoMipMapGenerationEnabled(),setMipLevels() 和 mipLevels(). 如果您的OpenGL实现和版本支持纹理功能feature,则返回 返回2D或3D纹理的高度。 另请参阅 width(),depth() 和 setSize(). 返回是否启用了此纹理对象的自动mipmap生成。 另请参阅 setAutoMipMapGenerationEnabled() 和 generateMipMaps(). 如果此纹理被绑定到当前活动纹理单元的相关目标,则返回 如果此纹理已绑定到纹理单元 unit 的相应目标,则返回 如果底层OpenGL纹理对象已被创建,则返回 另请参阅 create(),destroy() 和 textureId。 返回此纹理是否使用固定模式的多样本样本。如果尚未为此纹理分配存储空间,则此函数返回请求的固定样本位置设置。 对于不支持多采样的纹理目标,将返回 另请参阅 setFixedSamplePositions() 和 isStorageAllocated。 如果为该纹理分配了服务器端存储,则返回 一旦分配了存储,就无法更改纹理格式、维度、多级渐远纹理级别和数组层。 另请参阅 allocateStorage,setSize,setMipLevels,setLayers 和 setFormat。 如果此纹理对象实际上是对其他纹理对象的视图,则返回 另请参阅 createTextureView。 返回此纹理的数组层数。如果尚未为此纹理分配存储空间,则此函数返回请求的数组层数。 不支持数组层的纹理目标将返回 1。 另请参阅 setLayers 和 isStorageAllocated。 返回最小和最大细节级别参数。 另请参阅 setLevelOfDetailRange,minimumLevelOfDetail 和 maximumLevelOfDetail。 返回细节级别偏差参数。 另请参阅 setLevelofDetailBias。 返回放大滤波器。 返回在执行纹理查找时要考虑的最大各向异性级别。这需要GL_EXT_texture_filter_anisotropic扩展。 另请参阅setMaximumAnisotropy。 返回最大细节级别参数。 另请参阅setMaximumLevelOfDetail、minimumLevelOfDetail 和 levelOfDetailRange。 返回给定当前尺寸情况下,此纹理可以具有的最大米普级别数量。 另请参阅setMipLevels、mipLevels 和 setSize。 返回当前的最小化和放大过滤器。 另请参阅setMinMagFilters。 返回最小化过滤器。 返回最小细节级别参数。 另请参阅setMinimumLevelOfDetail、maximumLevelOfDetail 和 levelOfDetailRange。 返回用于所有使用此纹理的纹理查找的米普基本级别。默认值为0。 另请参阅setMipBaseLevel、mipMaxLevel 和 mipLevelRange。 返回可用于使用此纹理进行纹理查找的米プ级别范围。 另请参阅setMipLevelRange、mipBaseLevel 和 mipMaxLevel。 返回此纹理的米普级别数。如果在存储未分配给此纹理之前,它返回请求的米普级别数。 另请参阅setMipLevels、maximumMipLevels 和 isStorageAllocated。 返回所有使用此纹理进行纹理查找的米普最大级别。 另请参阅setMipMaxLevel、mipBaseLevel 和 mipLevelRange。 从当前活动的纹理单元取消绑定这个纹理。 另请参阅 bind()。 从纹理单元 unit 取消绑定这个纹理。 如果参数 reset 为 返回此纹理的多样本样本点数。如果尚未为该纹理分配存储空间,则此函数返回请求的样本数。 对于不支持多样本的纹理目标,此值将为 0。 另请参阅 setSamples() 和 isStorageAllocated()。 如果 enabled 为 默认情况下,自动 mipmap 生成已启用。 注意:Mipmap 生成不受 OpenGL ES 2.0 压缩纹理的支持。 另请参阅 isAutoMipMapGenerationEnabled() 和 generateMipMaps()。 将纹理的边界颜色设置为 color。 注意:此函数对 Mac 和为 OpenGL ES 2 编译的 Qt 没有影响。 另请参阅 borderColor()。 将红色设置为 r,绿色设置为 g,蓝色设置为 b,并将 alpha 值设置为 a。 这是一个重载函数。 将红色设置为 r,绿色设置为 g,蓝色设置为 b,并将 alpha 值设置为 a。 这是一个重载函数。 将红色设置为 r,绿色设置为 g,蓝色设置为 b,并将 alpha 值设置为 a。 这是一个重载函数。 将此纹理的纹理比较函数设置为 function。纹理比较函数在深度纹理采样时由阴影采样器使用。 另请参阅 comparisonFunction()。 将此纹理的比较模式设置为mode。纹理比较模式在阴影采样器采样深度纹理时使用。 另请参阅comparisonMode。 将压缩的像素数据上传到mipLevel、数组和cubeFace。可以使用options控制像素传输。参数dataSize应指定由data指向的数据的大小。 如果不使用压缩格式(),则应使用setData()而不是此函数。 这是一个重载函数。 参数layerCount是指在此调用中上传/填充的纹理数组中层的数量。 这是一个重载函数。 这是一个重载函数。 这是一个重载函数。 上传该纹理对象 mipLevel layer cubeFace setData() 由 data sourceFormat sourceType optionsvoid QOpenGLTexture::allocateStorage(QOpenGLTexture::PixelFormat pixelFormat, QOpenGLTexture::PixelType pixelType)
void QOpenGLTexture::bind()
void QOpenGLTexture::bind(uint unit, QOpenGLTexture::TextureUnitReset reset = DontResetTextureUnit)
true
,则此函数将恢复活动单元为入口时活动的纹理单元。QColor QOpenGLTexture::borderColor() const
void QOpenGLTexture::borderColor(float *border) const
void QOpenGLTexture::borderColor(int *border) const
void QOpenGLTexture::borderColor(unsigned int *border) const
[静态]
GLuint QOpenGLTexture::boundTextureId(QOpenGLTexture::BindingTarget target)[静态]
GLuint QOpenGLTexture::boundTextureId(uint unit, QOpenGLTexture::BindingTarget target)QOpenGLTexture::ComparisonFunction QOpenGLTexture::comparisonFunction() const
QOpenGLTexture::ComparisonMode QOpenGLTexture::comparisonMode() const
bool QOpenGLTexture::create()
true
,否则返回false
。QOpenGLTexture *QOpenGLTexture::createTextureView(QOpenGLTexture::Target target,QOpenGLTexture::TextureFormat viewFormat,int minimumMipmapLevel,int maximumMipmapLevel,int minimumLayer,int maximumLayer) const
true
。int QOpenGLTexture::depth() const
QOpenGLTexture::DepthStencilMode QOpenGLTexture::depthStencilMode() const
void QOpenGLTexture::destroy()
int QOpenGLTexture::faces() const
QOpenGLTexture::TextureFormat QOpenGLTexture::format() const
void QOpenGLTexture::generateMipMaps()
void QOpenGLTexture::generateMipMaps(int baseLevel, bool resetBaseLevel = true)
true
,则纹理的基础级别将重置为其之前的值。[静态]
bool QOpenGLTexture::hasFeature(QOpenGLTexture::Feature feature)true
。int QOpenGLTexture::height() const
bool QOpenGLTexture::isAutoMipMapGenerationEnabled() const
bool QOpenGLTexture::isBound() const
true
。bool QOpenGLTexture::isBound(uint unit)
true
。bool QOpenGLTexture::isCreated() const
true
。bool QOpenGLTexture::isFixedSamplePositions() const
true
。bool QOpenGLTexture::isStorageAllocated() const
true
。bool QOpenGLTexture::isTextureView() const
true
。int QOpenGLTexture::layers() const
QPair<float, float> QOpenGLTexture::levelOfDetailRange() const
float QOpenGLTexture::levelofDetailBias() const
QOpenGLTexture::Filter QOpenGLTexture::magnificationFilter() const
float QOpenGLTexture::maximumAnisotropy() const
float QOpenGLTexture::maximumLevelOfDetail() const
int QOpenGLTexture::maximumMipLevels() const
QPair<QOpenGLTexture::Filter, QOpenGLTexture::Filter> QOpenGLTexture::minMagFilters() const
QOpenGLTexture::Filter QOpenGLTexture::minificationFilter() const
float QOpenGLTexture::minimumLevelOfDetail() const
int QOpenGLTexture::mipBaseLevel() const
QPair<int, int> QOpenGLTexture::mipLevelRange() const
int QOpenGLTexture::mipLevels() const
int QOpenGLTexture::mipMaxLevel() const
void QOpenGLTexture::release()
void QOpenGLTexture::release(uint unit, QOpenGLTexture::TextureUnitReset reset = DontResetTextureUnit)
true
,则此函数将恢复活动单元为入口时活动的纹理单元。int QOpenGLTexture::samples() const
void QOpenGLTexture::setAutoMipMapGenerationEnabled(bool enabled)
true
,则启用自动生成 mipmap,以便在通过 setData() 设置级别 0 mipmap 数据时触发。void QOpenGLTexture::setBorderColor(const QColor &color)
void QOpenGLTexture::setBorderColor(float r, float g, float b, float a)
void QOpenGLTexture::setBorderColor(int r, int g, int b, int a)
void QOpenGLTexture::setBorderColor(uint r, uint g, uint b, uint a)
void QOpenGLTexture::setComparisonFunction(QOpenGLTexture::ComparisonFunction function)
void QOpenGLTexture::setComparisonMode(QOpenGLTexture::ComparisonMode mode)
void QOpenGLTexture::setCompressedData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void QOpenGLTexture::setCompressedData(int mipLevel, int layer, int layerCount, QOpenGLTexture::CubeMapFace cubeFace, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void QOpenGLTexture::setCompressedData(int mipLevel, int layer, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void QOpenGLTexture::setCompressedData(int mipLevel, int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void QOpenGLTexture::setCompressedData(int dataSize, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
如果使用压缩的
format()
,则应使用setCompressedData()
而不是此函数。另请参阅 setCompressedData()。
void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::CubeMapFace cubeFace, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
这是一个重载函数。
参数layerCount是指在此调用中上传/填充的纹理数组中层的数量。
void QOpenGLTexture::setData(int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
这是一个重载函数。
void QOpenGLTexture::setData(int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
这是一个重载函数。
void QOpenGLTexture::setData(QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
这是一个重载函数。
void QOpenGLTexture::setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
这是一个重载函数。
此重载用于更新纹理的一部分。参数xOffset、yOffset、zOffset指定纹理中的纹理元素偏移量。参数width、height和depth指定子图像的维度。
由
data
指针指向的像素数据结构由sourceFormat
和sourceType
指定。像素数据上传可以选择由options
控制。void QOpenGLTexture::setData(int xCos, int yCos, int zCos, int width, int height, int depth, int mipLevel, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
这是一个重载函数。
此重载用于更新纹理的一部分。参数 xCos、yCos、zCos 指定纹理中的texel偏移量。参数 width、height 和 depth 指定子图像的尺寸。我们想要更新的子图像的mip级别通过 mipLevel 指定。
由
data
指针指向的像素数据结构由sourceFormat
和sourceType
指定。像素数据上传可以选择由options
控制。void QOpenGLTexture::setData(int xCos, int yCos, int zCos, int width, int height, int depth, int mipLevel, int layer, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
这是一个重载函数。
此重载用于更新纹理的一部分。参数 xCos、yCos、zCos 指定纹理中的texel偏移量。参数 width、height 和 depth 指定子图像的尺寸。我们想要更新的子图像的mip级别以及层通过 mipLevel 和 layer 指定。
由
data
指针指向的像素数据结构由sourceFormat
和sourceType
指定。像素数据上传可以选择由options
控制。void QOpenGLTexture::setData(int xCos, int yCos, int zCos, int width, int height, int depth, int mipLevel, int layer, QOpenGLTexture::CubeMapFace face, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
这是一个重载函数。
此重载用于更新纹理的一部分。参数 xCos、yCos、zCos 指定纹理中的texel偏移量。参数 width、height 和 depth 指定子图像的尺寸。我们想要更新的子图像的mip级别、层和立方体贴图的面对通过 mipLevel、layer 和 face 指定。
由
data
指针指向的像素数据结构由sourceFormat
和sourceType
指定。像素数据上传可以选择由options
控制。void QOpenGLTexture::setData(int xOffset, int yOffset, int zOffset, int width, int height, int depth, int mipLevel, int layer, QOpenGLTexture::CubeMapFace face, int layerCount, QOpenGLTexture::PixelFormat sourceFormat, QOpenGLTexture::PixelType sourceType, const void *data, const QOpenGLPixelTransferOptions *const options = nullptr)
这是一个重载函数。
此重载用于更新纹理的一部分。参数 xOffset、yOffset、zOffset 指定纹理中的像素偏移量。参数 width、height 和 depth 指定子图像的尺寸。通过 mipLevel、layer、face 和 layerCount 指定要更新的子图像的 Mip 级别、起始层、立方体贴图面和层数。
由
data
指针指向的像素数据结构由sourceFormat
和sourceType
指定。像素数据上传可以选择由options
控制。void QOpenGLTexture::setData(const QImage &image, QOpenGLTexture::MipMapGeneration genMipMaps = GenerateMipMaps)
setData() 的此重载会为您分配存储空间。像素数据包含在 image 中。默认情况下会生成 Mip 级别。将 genMipMaps 设置为 DontGenerateMipMaps 以关闭 Mip 级别生成。
注意:image会自动转换为QImage::Format_RGBA8888,这可能对具有不同格式的大型图像的性能产生影响。
这是一个重载函数。
void QOpenGLTexture::setDepthStencilMode(QOpenGLTexture::DepthStencilMode mode)
如果您使用的是具有深度/模板格式的纹理,此函数将设置 mode 通过该模式访问纹理的哪个组件。
当参数设置为 DepthMode 时,从着色器访问它将作为单个浮点数访问深度组件,与通常一样。但当参数设置为 StencilMode 时,着色器将访问模板组件。
注意:此函数对 Mac 和为 OpenGL ES 2 编译的 Qt 没有影响。
另请参阅depthStencilMode。
void QOpenGLTexture::setFixedSamplePositions(bool fixed)
设置是否使用带有多采样能力的目标纹理使用 fixed 样本位置和样本数。如果设置为 true
,则样本位置和使用的样本数将适用于图像中的所有像素,并且不依赖于图像大小或内部格式。此函数应在为纹理分配存储之前调用。
对于不支持多采样的目标,此函数无效果。
默认值为 true
。
另请参阅isFixedSamplePositions() 和 isStorageAllocated。
void QOpenGLTexture::setFormat(QOpenGLTexture::TextureFormat format)
将此纹理对象的格式设置为 format。在分配纹理存储之前必须调用此函数。
请注意,可能并非所有格式都受支持。支持的确切格式取决于您的OpenGL实现和版本。
void QOpenGLTexture::setLayers(int layers)
设置分配存储的数组层数。在此函数调用存储分配给纹理之前,应调用此函数。
对于不支持数组层的目标,此函数无任何效果。
另请参阅layers() 和 isStorageAllocated。
void QOpenGLTexture::setLevelOfDetailRange(float min, float max)
将最小细节级别设置为 min 和最大细节级别设置为 max。
注意:此功能对为OpenGL ES 2构建的Qt没有作用。
另请参阅levelOfDetailRange,setMinimumLevelOfDetail 和 setMaximumLevelOfDetail。
void QOpenGLTexture::setLevelofDetailBias(float bias)
将细节级别偏差设置为 bias。细节级别偏差影响米普贴图级别改变的位置。增加细节级别偏差可以使整体图像更加模糊或平滑。减少值可以使整体图像更加清晰。
注意:此功能对为OpenGL ES 2构建的Qt没有作用。
另请参阅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。这限制了最低分辨率米普贴图(最高米普贴图级别)的选择。默认值是1000。
注意:此功能对为OpenGL ES 2构建的Qt没有作用。
另请参阅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。这限制了最高分辨率的mipmap(最低mipmap级别)的选择。默认值是-1000。
注意:此功能对为OpenGL ES 2构建的Qt没有作用。
另请参阅 minimumLevelOfDetail,setMaximumLevelOfDetail和setLevelOfDetailRange。
void QOpenGLTexture::setMipBaseLevel(int baseLevel)
将用于所有具有此纹理的纹理查找的基mipmap级别设置為baseLevel。
注意:此功能对为OpenGL ES 2构建的Qt没有作用。
另请参阅 mipBaseLevel,setMipMaxLevel和setMipLevelRange。
void QOpenGLTexture::setMipLevelRange(int baseLevel, int maxLevel)
将可用于此纹理的纹理查找的mipmap级别范围设置为从baseLevel到maxLevel。
注意:此功能对为OpenGL ES 2构建的Qt没有作用。
另请参阅 setMipBaseLevel,setMipMaxLevel和mipLevelRange。
void QOpenGLTexture::setMipLevels(int levels)
对于支持mipmap的纹理目标,此函数将分配存储的请求的mipmap levels数。在为纹理分配存储之前应调用此函数。
如果纹理目标不支持mipmap,则此函数没有效果。
另请参阅 mipLevels,maximumMipLevels和isStorageAllocated。
void QOpenGLTexture::setMipMaxLevel(int maxLevel)
将用于所有具有此纹理的纹理查找的最大mipmap级别设置为maxLevel。
注意:此功能对为OpenGL ES 2构建的Qt没有作用。
另请参阅 mipMaxLevel,setMipBaseLevel和setMipLevelRange。
void QOpenGLTexture::setSamples(int samples)
将在多样本纹理目标上进行渲染时分配存储的样本数设置为samples。应在为纹理分配存储之前调用此函数。
对于不支持多采样的目标,此函数无效果。
另请参阅 samples和isStorageAllocated。
void QOpenGLTexture::setSize(int width, int height = 1, int depth = 1)
将此纹理对象的尺寸设置为宽度、高度和深度。每个维度的默认值是1。允许的最大纹理大小取决于您的OpenGL实现。如果系统资源不足,为小于最大大小的纹理分配存储仍然可能失败。
如果提供非2的幂的宽度、高度或深度,并且您的OpenGL实现不支持重复的非2的幂纹理,则自动将包装模式设置为ClampToEdge。
void QOpenGLTexture::setSwizzleMask(QOpenGLTexture::SwizzleComponent component, QOpenGLTexture::SwizzleValue value)
GLSL着色器能够重新排序由纹理函数返回的vec4组件。还希望能够从CPU端代码控制这种排序。自OpenGL 3.3以来,这由混合遮罩(swizzle masks)使得成为可能。
每个纹理组件可以映射到SwizzleValue选项之一。
此函数将component映射到输出value。
注意:此函数对 Mac 和为 OpenGL ES 2 编译的 Qt 没有影响。
另请参阅swizzleMask。
void QOpenGLTexture::setSwizzleMask(QOpenGLTexture::SwizzleValue r, QOpenGLTexture::SwizzleValue g, QOpenGLTexture::SwizzleValue b, QOpenGLTexture::SwizzleValue a)
参数r、g、b和a用于设置颜色红色、绿色、蓝色和alpha值。
这是一个重载函数。
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
返回此纹理的绑定目标。
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()。
© 2024 The Qt Company Ltd. 本文件中的文档贡献版权属于各自的拥有者。本文件中提供的文档遵循 GNU自由文档许可1.3版 的条款,由自由软件开发基金会发布。Qt 及相应的徽标是 The Qt Company Ltd. 在芬兰及/或世界上其他国家的注册商标。所有其他商标均为各自所有者的财产。