PySide6.QtOpenGL.QOpenGLTexture¶
- class QOpenGLTexture¶
QOpenGLTexture
类封装了一个 OpenGL 纹理对象。更多…概要¶
方法¶
def
__init__()
def
bind()
def
borderColor()
def
comparisonMode()
def
create()
def
depth()
def
destroy()
def
faces()
def
format()
def
height()
def
isBound()
def
isCreated()
def
isTextureView()
def
layers()
def
minMagFilters()
def
mipBaseLevel()
def
mipLevelRange()
def
mipLevels()
def
mipMaxLevel()
def
release()
def
samples()
def
setBorderColor()
def
setData()
def
setFormat()
def
setLayers()
def
setMipLevels()
def
setMipMaxLevel()
def
setSamples()
def
setSize()
def
setSwizzleMask()
def
setWrapMode()
def
swizzleMask()
def
target()
def
textureId()
def
width()
def
wrapMode()
静态函数¶
def
boundTextureId()
def
hasFeature()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
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 轴方向上使用相反方向的事实。另一个选择是转换您的纹理坐标。
- class Target¶
此枚举定义了
QOpenGLTexture
对象的纹理目标。有关创建数组纹理的更多信息,请参阅数组纹理。常量
描述
QOpenGLTexture.Target1D
一维纹理。等同于 GL_TEXTURE_1D。
QOpenGLTexture.Target1DArray
一组一维纹理。等同于 GL_TEXTURE_1D_ARRAY
QOpenGLTexture.Target2D
一个二维纹理。等同于 GL_TEXTURE_2D
QOpenGLTexture.Target2DArray
一组二维纹理。等同于 GL_TEXTURE_2D_ARRAY
QOpenGLTexture.Target3D
一个三维纹理。等同于 GL_TEXTURE_3D
QOpenGLTexture.TargetCubeMap
一个立方体贴图。等同于 GL_TEXTURE_CUBE_MAP
QOpenGLTexture.TargetCubeMapArray
一组立方体贴图纹理。等同于 GL_TEXTURE_CUBE_MAP_ARRAY
QOpenGLTexture.Target2DMultisample
支持多重采样的二维纹理。等同于 GL_TEXTURE_2D_MULTISAMPLE
QOpenGLTexture.Target2DMultisampleArray
支持多重采样的二维纹理数组。等同于 GL_TEXTURE_2D_MULTISAMPLE_ARRAY
QOpenGLTexture.TargetRectangle
一个矩形的二维纹理。等同于 GL_TEXTURE_RECTANGLE
QOpenGLTexture.TargetBuffer
一个包含来自OpenGL缓冲区对象数据的纹理。等同于GL_TEXTURE_BUFFER
- class BindingTarget¶
此枚举定义了纹理单元可能的绑定目标。
常量
描述
QOpenGLTexture.BindingTarget1D
等同于 GL_TEXTURE_BINDING_1D
QOpenGLTexture.BindingTarget1DArray
等同于 GL_TEXTURE_BINDING_1D_ARRAY
QOpenGLTexture.BindingTarget2D
等同于 GL_TEXTURE_BINDING_2D
QOpenGLTexture.BindingTarget2DArray
等同于 GL_TEXTURE_BINDING_2D_ARRAY
QOpenGLTexture.BindingTarget3D
等同于 GL_TEXTURE_BINDING_3D
QOpenGLTexture.BindingTargetCubeMap
等同于 GL_TEXTURE_BINDING_CUBE_MAP
QOpenGLTexture.BindingTargetCubeMapArray
等同于 GL_TEXTURE_BINDING_CUBE_MAP_ARRAY
QOpenGLTexture.BindingTarget2DMultisample
等同于 GL_TEXTURE_BINDING_2D_MULTISAMPLE
QOpenGLTexture.BindingTarget2DMultisampleArray
等同于 GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY
QOpenGLTexture.BindingTargetRectangle
等同于 GL_TEXTURE_BINDING_RECTANGLE
QOpenGLTexture.BindingTargetBuffer
等同于 GL_TEXTURE_BINDING_BUFFER
- class MipMapGeneration¶
此枚举定义了控制mipmap生成的选项。
常量
描述
QOpenGLTexture.GenerateMipMaps
应生成Mipmaps
QOpenGLTexture.DontGenerateMipMaps
不应生成Mipmaps
- class TextureUnitReset¶
此枚举定义了控制纹理单元激活的选项。
常量
描述
QOpenGLTexture.ResetTextureUnit
之前的活动纹理单元将被重置
QOpenGLTexture.DontResetTextureUnit
之前的活动纹理单元将不会被重置
- class TextureFormat¶
此枚举定义了可能的纹理格式。根据您的OpenGL实现,可能只支持这些格式的一个子集。
常量
描述
QOpenGLTexture.NoFormat
等同于 GL_NONE
QOpenGLTexture.R8_UNorm
等同于 GL_R8
QOpenGLTexture.RG8_UNorm
等同于 GL_RG8
QOpenGLTexture.RGB8_UNorm
等同于 GL_RGB8
QOpenGLTexture.RGBA8_UNorm
等同于 GL_RGBA8
QOpenGLTexture.R16_UNorm
等同于 GL_R16
QOpenGLTexture.RG16_UNorm
等同于 GL_RG16
QOpenGLTexture.RGB16_UNorm
等同于 GL_RGB16
QOpenGLTexture.RGBA16_UNorm
等同于 GL_RGBA16
QOpenGLTexture.R8_SNorm
等同于 GL_R8_SNORM
QOpenGLTexture.RG8_SNorm
等同于 GL_RG8_SNORM
QOpenGLTexture.RGB8_SNorm
等同于 GL_RGB8_SNORM
QOpenGLTexture.RGBA8_SNorm
等同于 GL_RGBA8_SNORM
QOpenGLTexture.R16_SNorm
等同于 GL_R16_SNORM
QOpenGLTexture.RG16_SNorm
等同于 GL_RG16_SNORM
QOpenGLTexture.RGB16_SNorm
等同于 GL_RGB16_SNORM
QOpenGLTexture.RGBA16_SNorm
等同于 GL_RGBA16_SNORM
QOpenGLTexture.R8U
等同于 GL_R8UI
QOpenGLTexture.RG8U
等同于 GL_RG8UI
QOpenGLTexture.RGB8U
等同于 GL_RGB8UI
QOpenGLTexture.RGBA8U
等同于 GL_RGBA8UI
QOpenGLTexture.R16U
等同于 GL_R16UI
QOpenGLTexture.RG16U
等同于 GL_RG16UI
QOpenGLTexture.RGB16U
等同于 GL_RGB16UI
QOpenGLTexture.RGBA16U
等同于 GL_RGBA16UI
QOpenGLTexture.R32U
等同于 GL_R32UI
QOpenGLTexture.RG32U
等同于 GL_RG32UI
QOpenGLTexture.RGB32U
等同于 GL_RGB32UI
QOpenGLTexture.RGBA32U
等同于 GL_RGBA32UI
QOpenGLTexture.R8I
等同于 GL_R8I
QOpenGLTexture.RG8I
等同于 GL_RG8I
QOpenGLTexture.RGB8I
等同于 GL_RGB8I
QOpenGLTexture.RGBA8I
等同于 GL_RGBA8I
QOpenGLTexture.R16I
等同于 GL_R16I
QOpenGLTexture.RG16I
等同于 GL_RG16I
QOpenGLTexture.RGB16I
等同于 GL_RGB16I
QOpenGLTexture.RGBA16I
等同于 GL_RGBA16I
QOpenGLTexture.R32I
等同于 GL_R32I
QOpenGLTexture.RG32I
等同于 GL_RG32I
QOpenGLTexture.RGB32I
等同于 GL_RGB32I
QOpenGLTexture.RGBA32I
等同于 GL_RGBA32I
QOpenGLTexture.R16F
等同于 GL_R16F
QOpenGLTexture.RG16F
等同于 GL_RG16F
QOpenGLTexture.RGB16F
等同于 GL_RGB16F
QOpenGLTexture.RGBA16F
等同于 GL_RGBA16F
QOpenGLTexture.R32F
等同于 GL_R32F
QOpenGLTexture.RG32F
等同于 GL_RG32F
QOpenGLTexture.RGB32F
等同于 GL_RGB32F
QOpenGLTexture.RGBA32F
等同于 GL_RGBA32F
QOpenGLTexture.RGB9E5
等同于 GL_RGB9_E5
QOpenGLTexture.RG11B10F
等同于 GL_R11F_G11F_B10F
QOpenGLTexture.RG3B2
等同于 GL_R3_G3_B2
QOpenGLTexture.R5G6B5
等同于 GL_RGB565
QOpenGLTexture.RGB5A1
等同于 GL_RGB5_A1
QOpenGLTexture.RGBA4
等同于 GL_RGBA4
QOpenGLTexture.RGB10A2
等同于 GL_RGB10_A2UI
QOpenGLTexture.D16
等同于 GL_DEPTH_COMPONENT16
QOpenGLTexture.D24
等同于 GL_DEPTH_COMPONENT24
QOpenGLTexture.D24S8
等同于 GL_DEPTH24_STENCIL8
QOpenGLTexture.D32
等同于 GL_DEPTH_COMPONENT32
QOpenGLTexture.D32F
等同于 GL_DEPTH_COMPONENT32F
QOpenGLTexture.D32FS8X24
等同于 GL_DEPTH32F_STENCIL8
QOpenGLTexture.S8
等同于 GL_STENCIL_INDEX8。在 Qt 5.4 中引入
QOpenGLTexture.RGB_DXT1
等同于 GL_COMPRESSED_RGB_S3TC_DXT1_EXT
QOpenGLTexture.RGBA_DXT1
等同于 GL_COMPRESSED_RGBA_S3TC_DXT1_EXT
QOpenGLTexture.RGBA_DXT3
等同于 GL_COMPRESSED_RGBA_S3TC_DXT3_EXT
QOpenGLTexture.RGBA_DXT5
等同于 GL_COMPRESSED_RGBA_S3TC_DXT5_EXT
QOpenGLTexture.R_ATI1N_UNorm
等同于 GL_COMPRESSED_RED_RGTC1
QOpenGLTexture.R_ATI1N_SNorm
等同于 GL_COMPRESSED_SIGNED_RED_RGTC1
QOpenGLTexture.RG_ATI2N_UNorm
等同于 GL_COMPRESSED_RG_RGTC2
QOpenGLTexture.RG_ATI2N_SNorm
等同于 GL_COMPRESSED_SIGNED_RG_RGTC2
QOpenGLTexture.RGB_BP_UNSIGNED_FLOAT
等同于 GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB
QOpenGLTexture.RGB_BP_SIGNED_FLOAT
等同于 GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB
QOpenGLTexture.RGB_BP_UNorm
等同于 GL_COMPRESSED_RGBA_BPTC_UNORM_ARB
QOpenGLTexture.R11_EAC_UNorm
等同于 GL_COMPRESSED_R11_EAC
QOpenGLTexture.R11_EAC_SNorm
等同于 GL_COMPRESSED_SIGNED_R11_EAC
QOpenGLTexture.RG11_EAC_UNorm
等同于 GL_COMPRESSED_RG11_EAC
QOpenGLTexture.RG11_EAC_SNorm
等同于 GL_COMPRESSED_SIGNED_RG11_EAC
QOpenGLTexture.RGB8_ETC2
等同于 GL_COMPRESSED_RGB8_ETC2
QOpenGLTexture.SRGB8_ETC2
等同于 GL_COMPRESSED_SRGB8_ETC2
QOpenGLTexture.RGB8_PunchThrough_Alpha1_ETC2
等同于 GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
QOpenGLTexture.SRGB8_PunchThrough_Alpha1_ETC2
等同于 GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
QOpenGLTexture.RGBA8_ETC2_EAC
等同于 GL_COMPRESSED_RGBA8_ETC2_EAC
QOpenGLTexture.SRGB8_Alpha8_ETC2_EAC
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
QOpenGLTexture.RGB8_ETC1
等同于 GL_ETC1_RGB8_OES
QOpenGLTexture.RGBA_ASTC_4x4
等同于 GL_COMPRESSED_RGBA_ASTC_4x4_KHR
QOpenGLTexture.RGBA_ASTC_5x4
等同于 GL_COMPRESSED_RGBA_ASTC_5x4_KHR
QOpenGLTexture.RGBA_ASTC_5x5
等同于 GL_COMPRESSED_RGBA_ASTC_5x5_KHR
QOpenGLTexture.RGBA_ASTC_6x5
等同于 GL_COMPRESSED_RGBA_ASTC_6x5_KHR
QOpenGLTexture.RGBA_ASTC_6x6
等同于 GL_COMPRESSED_RGBA_ASTC_6x6_KHR
QOpenGLTexture.RGBA_ASTC_8x5
等同于 GL_COMPRESSED_RGBA_ASTC_8x5_KHR
QOpenGLTexture.RGBA_ASTC_8x6
等同于 GL_COMPRESSED_RGBA_ASTC_8x6_KHR
QOpenGLTexture.RGBA_ASTC_8x8
等同于 GL_COMPRESSED_RGBA_ASTC_8x8_KHR
QOpenGLTexture.RGBA_ASTC_10x5
等同于 GL_COMPRESSED_RGBA_ASTC_10x5_KHR
QOpenGLTexture.RGBA_ASTC_10x6
等同于 GL_COMPRESSED_RGBA_ASTC_10x6_KHR
QOpenGLTexture.RGBA_ASTC_10x8
等同于 GL_COMPRESSED_RGBA_ASTC_10x8_KHR
QOpenGLTexture.RGBA_ASTC_10x10
等同于 GL_COMPRESSED_RGBA_ASTC_10x10_KHR
QOpenGLTexture.RGBA_ASTC_12x10
等同于 GL_COMPRESSED_RGBA_ASTC_12x10_KHR
QOpenGLTexture.RGBA_ASTC_12x12
等同于 GL_COMPRESSED_RGBA_ASTC_12x12_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_4x4
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_5x4
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_5x5
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_6x5
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_6x6
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_8x5
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_8x6
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_8x8
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_10x5
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_10x6
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_10x8
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_10x10
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_12x10
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
QOpenGLTexture.SRGB8_Alpha8_ASTC_12x12
等同于 GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
QOpenGLTexture.SRGB8
等同于 GL_SRGB8
QOpenGLTexture.SRGB8_Alpha8
等同于 GL_SRGB8_ALPHA8
QOpenGLTexture.SRGB_DXT1
等同于 GL_COMPRESSED_SRGB_S3TC_DXT1_EXT
QOpenGLTexture.SRGB_Alpha_DXT1
等同于 GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT
QOpenGLTexture.SRGB_Alpha_DXT3
等同于 GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT
QOpenGLTexture.SRGB_Alpha_DXT5
等同于 GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT
QOpenGLTexture.SRGB_BP_UNorm
等同于 GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB
QOpenGLTexture.DepthFormat
等同于 GL_DEPTH_COMPONENT(仅限 OpenGL ES 3 或带有 OES_depth_texture 的 ES 2)
QOpenGLTexture.AlphaFormat
等同于 GL_ALPHA(仅限 OpenGL ES 2)
QOpenGLTexture.RGBFormat
等同于 GL_RGB(仅限 OpenGL ES 2)
QOpenGLTexture.RGBAFormat
等同于 GL_RGBA(仅限 OpenGL ES 2)
QOpenGLTexture.LuminanceFormat
等同于 GL_LUMINANCE(仅限 OpenGL ES 2)
QOpenGLTexture.LuminanceAlphaFormat
等同于 GL_LUMINANCE_ALPHA(仅限 OpenGL ES 2)
- class TextureFormatClass¶
- class CubeMapFace¶
此枚举定义了可能的立方体贴图面。
常量
描述
QOpenGLTexture.CubeMapPositiveX
等同于 GL_TEXTURE_CUBE_MAP_POSITIVE_X
QOpenGLTexture.CubeMapNegativeX
等同于 GL_TEXTURE_CUBE_MAP_NEGATIVE_X
QOpenGLTexture.CubeMapPositiveY
等同于 GL_TEXTURE_CUBE_MAP_POSITIVE_Y
QOpenGLTexture.CubeMapNegativeY
等同于 GL_TEXTURE_CUBE_MAP_NEGATIVE_Y
QOpenGLTexture.CubeMapPositiveZ
等同于 GL_TEXTURE_CUBE_MAP_POSITIVE_Z
QOpenGLTexture.CubeMapNegativeZ
等同于 GL_TEXTURE_CUBE_MAP_NEGATIVE_Z
- class PixelFormat¶
此枚举定义了像素传输操作可能的客户端像素格式。
常量
描述
QOpenGLTexture.NoSourceFormat
等同于 GL_NONE
QOpenGLTexture.Red
等同于 GL_RED
QOpenGLTexture.RG
等同于 GL_RG
QOpenGLTexture.RGB
等同于 GL_RGB
QOpenGLTexture.BGR
等同于 GL_BGR
QOpenGLTexture.RGBA
等同于 GL_RGBA
QOpenGLTexture.BGRA
等同于 GL_BGRA
QOpenGLTexture.Red_Integer
等同于 GL_RED_INTEGER
QOpenGLTexture.RG_Integer
等同于 GL_RG_INTEGER
QOpenGLTexture.RGB_Integer
等同于 GL_RGB_INTEGER
QOpenGLTexture.BGR_Integer
等同于 GL_BGR_INTEGER
QOpenGLTexture.RGBA_Integer
等同于 GL_RGBA_INTEGER
QOpenGLTexture.BGRA_Integer
等同于 GL_BGRA_INTEGER
QOpenGLTexture.Stencil
等同于 GL_STENCIL_INDEX。在 Qt 5.4 中引入
QOpenGLTexture.Depth
等同于 GL_DEPTH_COMPONENT
QOpenGLTexture.DepthStencil
等同于 GL_DEPTH_STENCIL
QOpenGLTexture.Alpha
等同于 GL_ALPHA(仅限 OpenGL ES 2)
QOpenGLTexture.Luminance
等同于 GL_LUMINANCE(仅限 OpenGL ES 2)
QOpenGLTexture.LuminanceAlpha
等同于 GL_LUMINANCE_ALPHA(仅限 OpenGL ES 2)
- class PixelType¶
此枚举定义了像素传输操作可能的像素数据类型
常量
描述
QOpenGLTexture.NoPixelType
等同于 GL_NONE
QOpenGLTexture.Int8
等同于 GL_BYTE
QOpenGLTexture.UInt8
等同于 GL_UNSIGNED_BYTE
QOpenGLTexture.Int16
等同于 GL_SHORT
QOpenGLTexture.UInt16
等同于 GL_UNSIGNED_SHORT
QOpenGLTexture.Int32
等同于 GL_INT
QOpenGLTexture.UInt32
等同于 GL_UNSIGNED_INT
QOpenGLTexture.Float16
等同于 GL_HALF_FLOAT
QOpenGLTexture.Float16OES
等同于 GL_HALF_FLOAT_OES
QOpenGLTexture.Float32
等同于 GL_FLOAT
QOpenGLTexture.UInt32_RGB9_E5
等同于 GL_UNSIGNED_INT_5_9_9_9_REV
QOpenGLTexture.UInt32_RG11B10F
等同于 GL_UNSIGNED_INT_10F_11F_11F_REV
QOpenGLTexture.UInt8_RG3B2
等同于 GL_UNSIGNED_BYTE_3_3_2
QOpenGLTexture.UInt8_RG3B2_Rev
等同于 GL_UNSIGNED_BYTE_2_3_3_REV
QOpenGLTexture.UInt16_RGB5A1
等同于 GL_UNSIGNED_SHORT_5_5_5_1
QOpenGLTexture.UInt16_RGB5A1_Rev
等同于 GL_UNSIGNED_SHORT_1_5_5_5_REV
QOpenGLTexture.UInt16_R5G6B5
等同于 GL_UNSIGNED_SHORT_5_6_5
QOpenGLTexture.UInt16_R5G6B5_Rev
等同于 GL_UNSIGNED_SHORT_5_6_5_REV
QOpenGLTexture.UInt16_RGBA4
等同于 GL_UNSIGNED_SHORT_4_4_4_4
QOpenGLTexture.UInt16_RGBA4_Rev
等同于 GL_UNSIGNED_SHORT_4_4_4_4_REV
QOpenGLTexture.UInt32_RGBA8
等同于 GL_UNSIGNED_INT_8_8_8_8
QOpenGLTexture.UInt32_RGBA8_Rev
等同于 GL_UNSIGNED_INT_8_8_8_8_REV
QOpenGLTexture.UInt32_RGB10A2
等同于 GL_UNSIGNED_INT_10_10_10_2
QOpenGLTexture.UInt32_RGB10A2_Rev
等同于 GL_UNSIGNED_INT_2_10_10_10_REV
QOpenGLTexture.UInt32_D24S8
等同于 GL_UNSIGNED_INT_24_8。在 Qt 5.4 中引入
QOpenGLTexture.Float32_D32_UInt32_S8_X24
等同于 GL_FLOAT_32_UNSIGNED_INT_24_8_REV。在 Qt 5.4 中引入
- class SwizzleComponent¶
此枚举定义了可以为纹理颜色组件分配的swizzle掩码。
常量
描述
QOpenGLTexture.SwizzleRed
红色组件。等同于 GL_TEXTURE_SWIZZLE_R
QOpenGLTexture.SwizzleGreen
绿色分量。等同于 GL_TEXTURE_SWIZZLE_G
QOpenGLTexture.SwizzleBlue
蓝色组件。等同于 GL_TEXTURE_SWIZZLE_B
QOpenGLTexture.SwizzleAlpha
Alpha 组件。等同于 GL_TEXTURE_SWIZZLE_A
- class SwizzleValue¶
此枚举定义了纹理交换的可能掩码值。
常量
描述
QOpenGLTexture.RedValue
将组件映射到红色通道。等同于 GL_RED
QOpenGLTexture.GreenValue
将组件映射到绿色通道。等同于 GL_GREEN
QOpenGLTexture.BlueValue
将组件映射到蓝色通道。等同于 GL_BLUE
QOpenGLTexture.AlphaValue
将组件映射到alpha通道。等同于GL_ALPHA
QOpenGLTexture.ZeroValue
将组件映射到固定值0。等同于GL_ZERO
QOpenGLTexture.OneValue
将组件映射到固定值1。等同于GL_ONE
- class WrapMode¶
此枚举定义了可能的纹理坐标包裹模式。
常量
描述
QOpenGLTexture.Repeat
纹理坐标重复。等同于GL_REPEAT
QOpenGLTexture.MirroredRepeat
纹理坐标在0和1之间反射。等同于GL_MIRRORED_REPEAT
QOpenGLTexture.ClampToEdge
将纹理坐标限制在[0,1]范围内。等同于GL_CLAMP_TO_EDGE
QOpenGLTexture.ClampToBorder
类似于ClampToEdge,但还会将0和1处的样本与固定的边框颜色混合。等同于GL_CLAMP_TO_BORDER
- class CoordinateDirection¶
此枚举定义了可能的纹理坐标方向
常量
描述
QOpenGLTexture.DirectionS
水平方向。等同于 GL_TEXTURE_WRAP_S
QOpenGLTexture.DirectionT
垂直方向。等同于 GL_TEXTURE_WRAP_T
QOpenGLTexture.DirectionR
深度方向。等同于 GL_TEXTURE_WRAP_R
- class Feature¶
(继承自
enum.Flag
) 此枚举定义了可以测试的OpenGL纹理相关特性。常量
描述
QOpenGLTexture.ImmutableStorage
支持不可变的纹理存储
QOpenGLTexture.ImmutableMultisampleStorage
支持具有多重采样目标的不可变纹理存储
QOpenGLTexture.TextureRectangle
支持GL_TEXTURE_RECTANGLE目标
QOpenGLTexture.TextureArrays
支持具有数组层的纹理目标
QOpenGLTexture.Texture3D
支持三维纹理目标
QOpenGLTexture.TextureMultisample
支持具有多重采样能力的纹理目标
QOpenGLTexture.TextureBuffer
支持使用OpenGL缓冲对象作为数据源的纹理
QOpenGLTexture.TextureCubeMapArrays
支持立方体贴图数组纹理目标
QOpenGLTexture.Swizzle
支持纹理组件混洗掩码
QOpenGLTexture.StencilTexturing
支持模板纹理(即在GLSL着色器中查找组合深度/模板格式纹理的深度或模板组件)。
QOpenGLTexture.AnisotropicFiltering
支持各向异性纹理过滤
QOpenGLTexture.NPOTTextures
对非二次幂纹理的基本支持
QOpenGLTexture.NPOTTextureRepeat
完全支持非二次幂纹理,包括纹理重复模式
QOpenGLTexture.Texture1D
支持一维纹理目标
QOpenGLTexture.TextureComparisonOperators
支持纹理比较操作符
QOpenGLTexture.TextureMipMapLevel
支持设置基础和高阶的mipmap级别
- class DepthStencilMode¶
此枚举指定在采样纹理时访问深度/模板纹理的哪个组件。
常量
描述
QOpenGLTexture.DepthMode
等同于 GL_DEPTH_COMPONENT。
QOpenGLTexture.StencilMode
等同于 GL_STENCIL_INDEX。
- class ComparisonFunction¶
此枚举指定在此纹理上启用纹理比较时使用的比较运算符。
常量
描述
QOpenGLTexture.CompareLessEqual
等同于 GL_LEQUAL。
QOpenGLTexture.CompareGreaterEqual
等同于 GL_GEQUAL。
QOpenGLTexture.CompareLess
等同于 GL_LESS。
QOpenGLTexture.CompareGreater
等同于 GL_GREATER。
QOpenGLTexture.CompareEqual
等同于 GL_EQUAL。
QOpenGLTexture.CompareNotEqual
等同于 GL_NOTEQUAL。
QOpenGLTexture.CompareAlways
等同于 GL_ALWAYS。
QOpenGLTexture.CompareNever
等同于 GL_NEVER。
- class ComparisonMode¶
此枚举指定在采样此纹理时使用的比较模式。
常量
描述
QOpenGLTexture.CompareRefToTexture
等同于 GL_COMPARE_REF_TO_TEXTURE。
QOpenGLTexture.CompareNone
等同于 GL_NONE。
- class Filter¶
此枚举定义了
QOpenGLTexture
对象的过滤参数。常量
描述
QOpenGLTexture.Nearest
等同于 GL_NEAREST
QOpenGLTexture.Linear
等同于 GL_LINEAR
QOpenGLTexture.NearestMipMapNearest
等同于 GL_NEAREST_MIPMAP_NEAREST
QOpenGLTexture.NearestMipMapLinear
等同于 GL_NEAREST_MIPMAP_LINEAR
QOpenGLTexture.LinearMipMapNearest
等同于 GL_LINEAR_MIPMAP_NEAREST
QOpenGLTexture.LinearMipMapLinear
等同于 GL_LINEAR_MIPMAP_LINEAR
创建一个
QOpenGLTexture
对象,稍后可以绑定到target
。这不会创建底层的OpenGL纹理对象。因此,使用此构造函数进行构造不需要有效的当前OpenGL上下文。
- __init__(image[, genMipMaps=QOpenGLTexture.MipMapGeneration.GenerateMipMaps])
- Parameters:
image –
QImage
genMipMaps –
MipMapGeneration
创建一个
QOpenGLTexture
对象,该对象稍后可以绑定到2D纹理目标,并包含image
中的像素数据。如果您希望生成一系列mipmaps,则将genMipMaps
设置为true
(这是默认设置)。这确实会创建底层的OpenGL纹理对象。因此,使用此构造函数进行构造确实需要一个有效的当前OpenGL上下文。
注意
image
会自动转换为 QImage::Format_RGBA8888,这可能会对具有不同格式的大图像产生性能影响。- allocateStorage()¶
为这个纹理对象分配服务器端存储,考虑到格式、尺寸、mipmap级别、数组层和立方体贴图面。
一旦存储被分配,就无法再更改这些属性。
如果支持
QOpenGLTexture
使用不可变的纹理存储。一旦为纹理分配了存储空间,就可以通过
setData()
的重载之一上传像素数据。注意
如果不可变纹理存储不可用,则将使用默认的像素格式和像素类型来创建可变存储。您可以使用另一个allocateStorage()重载来精确指定在分配可变存储时要使用的像素格式和像素类型;这在某些OpenGL ES实现(特别是OpenGL ES 2)下特别有用,因为在分配时使用的像素格式和像素类型必须与后续传递给任何
setData()
调用的格式和类型完全匹配。- allocateStorage(pixelFormat, pixelType)
- Parameters:
pixelFormat –
PixelFormat
pixelType –
PixelType
为这个纹理对象分配服务器端存储,考虑到格式、尺寸、mipmap级别、数组层和立方体贴图面。
一旦存储被分配,就无法再更改这些属性。
如果支持
QOpenGLTexture
使用不可变的纹理存储。然而,如果不可变的纹理存储不可用,则指定的pixelFormat
和pixelType
将用于分配可变的存储;请注意,在某些 OpenGL 实现中(特别是 OpenGL ES 2),它们必须完美匹配传递给任何后续setData()
调用的格式和类型。一旦为纹理分配了存储空间,就可以通过
setData()
的重载之一上传像素数据。- bind()¶
将此纹理绑定到当前活动的纹理单元,准备进行渲染。请注意,您不需要绑定
QOpenGLTexture
对象来修改它们,因为实现在可用时使用EXT_direct_state_access扩展,并在不可用时模拟它。另请参阅
- bind(unit[, reset=QOpenGLTexture.TextureUnitReset.DontResetTextureUnit])
- Parameters:
unit – int
reset –
TextureUnitReset
将此纹理绑定到纹理单元
unit
以便进行渲染。请注意,您不需要绑定QOpenGLTexture
对象来修改它们,因为实现在可用时使用EXT_direct_state_access扩展,并在不可用时模拟它。如果参数
reset
是true
,那么此函数将恢复活动单元为进入时的纹理单元。另请参阅
返回此纹理的边框颜色。
另请参阅
- static boundTextureId(target)¶
- Parameters:
目标 –
BindingTarget
- Return type:
整数
返回绑定到当前活动纹理单元的
target
的纹理的textureId
。- static boundTextureId(unit, target)
- Parameters:
unit – int
target –
BindingTarget
- Return type:
整数
返回绑定到纹理单元
unit
的target
的纹理的textureId
。- comparisonFunction()¶
- Return type:
返回此纹理上设置的纹理比较运算符。默认情况下,纹理具有
CompareLessEqual
比较函数。- comparisonMode()¶
- Return type:
返回此纹理上设置的纹理比较模式。默认情况下,纹理具有
CompareNone
比较模式(即比较被禁用)。另请参阅
- create()¶
- Return type:
布尔
创建底层的OpenGL纹理对象。这需要一个当前有效的OpenGL上下文。如果纹理对象已经存在,此函数不执行任何操作。
一旦纹理对象被创建,你可以从
textureId()
函数中获取对象名称。如果你希望进行一些与此纹理相关的原始OpenGL调用,这可能会有用。通常不需要直接调用此函数,因为所有设置纹理对象属性的函数都会隐式地为您调用create()。
如果创建成功,返回
true
,否则返回false
。- createTextureView(target, viewFormat, minimumMipmapLevel, maximumMipmapLevel, minimumLayer, maximumLayer)¶
- Parameters:
target –
目标
viewFormat –
TextureFormat
minimumMipmapLevel – int
maximumMipmapLevel – int
minimumLayer – int
maximumLayer – int
- Return type:
尝试在此纹理上创建一个纹理视图。纹理视图在某种程度上类似于SQL中的视图,因为它呈现了原始数据的受限或重新解释的视图。纹理视图不会分配更多的服务器端存储,而是依赖于源纹理的存储缓冲区。
纹理视图仅在不可变存储时可用。有关纹理视图的更多信息,请参见http://www.opengl.org/wiki/Texture_Storage#Texture_views。
target
参数指定了用于视图的目标。根据原始目标的目标,只能使用某些目标。例如,一个基于Target1DArray
纹理的视图可以指定为Target1DArray
或Target1D
,但对于后者,使用minimumLayer
和maximumLayer
指定的数组层数必须恰好为 1。类似的约束适用于
viewFormat
。更多详情请参见上述链接和规范。minimumMipmapLevel
、maximumMipmapLevel
、minimumLayer
和maximumLayer
参数用于限制纹理视图中可访问的纹理部分。如果纹理视图创建失败,此函数将返回0。如果函数成功,它将返回一个指向新
QOpenGLTexture
对象的指针,该对象将从其isTextureView()
函数返回true
。另请参阅
- depth()¶
- Return type:
整数
返回3D纹理的深度。
- depthStencilMode()¶
- Return type:
返回使用组合深度/模板格式的纹理的深度模板模式。
- destroy()¶
销毁底层的OpenGL纹理对象。这需要一个当前有效的OpenGL上下文。
- faces()¶
- Return type:
整数
返回此纹理的面数。对于立方体贴图和立方体贴图数组类型的目标,这将为6。
对于非立方体贴图类型的目标,这将返回1。
- format()¶
- Return type:
返回此纹理对象的格式。
另请参阅
- generateMipMaps()¶
从mipmap级别0为此纹理对象生成mipmaps。如果您使用的纹理目标和过滤选项需要mipmaps,并且您已禁用自动mipmap生成,则需要调用此函数或重载来创建mipmap链。
- generateMipMaps(baseLevel[, resetBaseLevel=true])
- Parameters:
baseLevel – int
resetBaseLevel – 布尔值
从mipmap级别
baseLevel
为此纹理对象生成mipmaps。如果您使用的是需要mipmaps的纹理目标和过滤选项,并且您已禁用自动mipmap生成,则需要调用此函数或重载来创建mipmap链。通过将mipmap的基础级别设置为
baseLevel
,然后生成mipmap链,可以实现从baseLevel
以上的mipmap生成。如果resetBaseLevel
为true
,则纹理的baseLevel将重置为其先前的值。如果您的OpenGL实现和版本支持纹理功能
feature
,则返回true
。- height()¶
- Return type:
整数
返回2D或3D纹理的高度。
- isAutoMipMapGenerationEnabled()¶
- Return type:
布尔
返回是否为该纹理对象启用了自动mipmap生成。
- isBound()¶
- Return type:
布尔
如果此纹理绑定到当前活动纹理单元的相应目标,则返回
true
。- isBound(unit)
- Parameters:
单位 – int
- Return type:
布尔
如果此纹理绑定到纹理单元
unit
的相应目标,则返回true
。- isCreated()¶
- Return type:
布尔
如果底层的OpenGL纹理对象已创建,则返回
true
。另请参阅
- isFixedSamplePositions()¶
- Return type:
布尔
返回此纹理是否使用固定的多重采样样本模式。如果尚未为此纹理分配存储空间,则此函数返回请求的固定样本位置设置。
对于不支持多重采样的纹理目标,这将返回
true
。- isStorageAllocated()¶
- Return type:
布尔
如果已为此纹理分配了服务器端存储,则返回
true
。一旦存储分配完成,纹理格式、尺寸、mipmap级别和数组层数就不能更改。
- isTextureView()¶
- Return type:
布尔
如果此纹理对象实际上是另一个纹理对象的视图,则返回
true
。另请参阅
- layers()¶
- Return type:
整数
返回此纹理的数组层数。如果尚未为此纹理分配存储空间,则此函数返回请求的数组层数。
对于不支持数组层的纹理目标,这将返回1。
- levelOfDetailRange()¶
- Return type:
.std.pairfloat,float
返回细节参数的最小和最大级别。
- levelofDetailBias()¶
- Return type:
浮点数
返回细节偏差参数的水平。
返回放大过滤器。
- maximumAnisotropy()¶
- Return type:
浮点数
返回执行纹理查找时要考虑的各向异性的最大级别。这需要GL_EXT_texture_filter_anisotropic扩展。
- maximumLevelOfDetail()¶
- Return type:
浮点数
返回最大细节参数级别。
- maximumMipLevels()¶
- Return type:
整数
返回此纹理在当前尺寸下可以拥有的最大mipmap级别数。
- minMagFilters()¶
- Return type:
.std.pairQOpenGLTexture.Filter,QOpenGLTexture.Filter
返回当前的缩小和放大过滤器。
另请参阅
返回最小化过滤器。
- minimumLevelOfDetail()¶
- Return type:
浮点数
返回最小细节参数级别。
- mipBaseLevel()¶
- Return type:
整数
返回用于所有使用此纹理的纹理查找的mipmap基础级别。默认值为0。
- mipLevelRange()¶
- Return type:
.std.pairint,int
返回可用于此纹理的纹理查找的mipmap级别范围。
- mipLevels()¶
- Return type:
整数
返回此纹理的mipmap级别数量。如果尚未为此纹理分配存储空间,则返回请求的mipmap级别数量。
- mipMaxLevel()¶
- Return type:
整数
返回用于所有使用此纹理的纹理查找的mipmap最大级别。
- release()¶
从当前活动的纹理单元中解绑此纹理。
另请参阅
- release(unit[, reset=QOpenGLTexture.TextureUnitReset.DontResetTextureUnit])
- Parameters:
unit – int
reset –
TextureUnitReset
从纹理单元
unit
解绑此纹理。如果参数
reset
是true
,那么此函数将恢复活动单元为进入时的纹理单元。- samples()¶
- Return type:
整数
返回此纹理的多重采样样本点的数量。如果尚未为此纹理分配存储空间,则此函数返回请求的样本数量。
对于不支持多重采样的纹理目标,这将返回0。
- setAutoMipMapGenerationEnabled(enabled)¶
- Parameters:
enabled – 布尔值
如果
enabled
是true
,则每当通过setData()
设置第0级mipmap数据时,为此纹理对象启用自动mipmap生成。默认情况下,自动mipmap生成已启用。
将纹理的边框颜色设置为
color
。- setBorderColor(r, g, b, a)
- Parameters:
r – 浮点数
g – 浮点数
b – 浮点数
a – 浮点数
将红色设置为
r
,绿色设置为g
,蓝色设置为b
,并将a
设置为透明度值。这是一个重载函数。
- setBorderColor(r, g, b, a)
- Parameters:
r – 整数
g – 整数
b – 整数
a – 整数
将红色设置为
r
,绿色设置为g
,蓝色设置为b
,并将透明度值设置为a
。这是一个重载函数。
- setBorderColor(r, g, b, a)
- Parameters:
r – 整数
g – 整数
b – 整数
a – 整数
将红色设置为
r
,绿色设置为g
,蓝色设置为b
,并将透明度值设置为a
。这是一个重载函数。
- setComparisonFunction(function)¶
- Parameters:
function –
ComparisonFunction
将此纹理上的纹理比较函数设置为
function
。纹理比较函数在采样深度纹理时由阴影采样器使用。另请参阅
- setComparisonMode(mode)¶
- Parameters:
mode –
ComparisonMode
将此纹理的纹理比较模式设置为
mode
。纹理比较模式在采样深度纹理时由阴影采样器使用。另请参阅
- setCompressedData(dataSize, data[, options=None])¶
- Parameters:
dataSize – int
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
- setCompressedData(mipLevel, dataSize, data[, options=None])
- Parameters:
mipLevel – int
dataSize – int
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
- setCompressedData(mipLevel, layer, dataSize, data[, options=None])
- Parameters:
mipLevel – int
layer – int
dataSize – int
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
- setCompressedData(mipLevel, layer, cubeFace, dataSize, data[, options=None])
- Parameters:
mipLevel – int
layer – int
cubeFace –
CubeMapFace
dataSize – int
data –
void
options –
QOpenGLPixelTransferOptions
将压缩的像素
data
上传到mipLevel
、数组layer
和cubeFace
。像素传输可以选择性地通过options
进行控制。dataSize
参数应指定data
所指向的数据的大小。如果不使用压缩的
format()
,那么你应该使用setData()
而不是这个函数。- setCompressedData(mipLevel, layer, layerCount, cubeFace, dataSize, data[, options=None])
- Parameters:
mipLevel – int
layer – int
layerCount – int
cubeFace –
CubeMapFace
dataSize – int
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
参数
layerCount
是由此调用上传/填充的纹理数组中的层数。- setData(image[, genMipMaps=QOpenGLTexture.MipMapGeneration.GenerateMipMaps])¶
- Parameters:
image –
QImage
genMipMaps –
MipMapGeneration
这个
setData()
的重载将为你分配存储空间。像素数据包含在image
中。默认情况下会生成Mipmaps。将genMipMaps
设置为DontGenerateMipMaps
以关闭Mipmap生成。注意
image
会自动转换为 QImage::Format_RGBA8888,这可能会对具有不同格式的大图像产生性能影响。这是一个重载函数。
- setData(sourceFormat, sourceType, data[, options=None])
- Parameters:
sourceFormat –
PixelFormat
sourceType –
PixelType
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
- setData(mipLevel, sourceFormat, sourceType, data[, options=None])
- Parameters:
mipLevel – int
sourceFormat –
PixelFormat
sourceType –
PixelType
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
- setData(mipLevel, layer, sourceFormat, sourceType, data[, options=None])
- Parameters:
mipLevel – int
layer – int
sourceFormat –
PixelFormat
sourceType –
PixelType
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
- setData(mipLevel, layer, cubeFace, sourceFormat, sourceType, data[, options=None])
- Parameters:
mipLevel – int
layer – int
cubeFace –
CubeMapFace
sourceFormat –
PixelFormat
sourceType –
PixelType
data –
void
options –
QOpenGLPixelTransferOptions
上传此纹理对象的像素
data
,mipLevel
,数组layer
和cubeFace
。在上传像素数据之前必须已经分配了存储空间。setData()的一些重载函数将设置适当的维度、mipmap级别和数组层,然后如果有足够的信息,它们将为您分配存储空间。这将在函数文档中注明。由
data
指向的像素数据的结构由sourceFormat
和sourceType
指定。像素数据的上传可以选择性地由options
控制。如果使用压缩的
format()
,那么你应该使用setCompressedData()
而不是这个函数。另请参阅
- setData(mipLevel, layer, layerCount, cubeFace, sourceFormat, sourceType, data[, options=None])
- Parameters:
mipLevel – int
layer – int
layerCount – int
cubeFace –
CubeMapFace
sourceFormat –
PixelFormat
sourceType –
PixelType
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
参数
layerCount
是由此调用上传/填充的纹理数组中的层数。- setData(xOffset, yOffset, zOffset, width, height, depth, sourceFormat, sourceType, data[, options=None])
- Parameters:
xOffset – int
yOffset – int
zOffset – int
width – int
height – int
depth – int
sourceFormat –
PixelFormat
sourceType –
PixelType
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
此重载用于更新纹理的一部分。参数
xOffset
、yOffset
、zOffset
指定纹理内的纹素偏移。参数width
、height
和depth
指定子图像的尺寸。由
data
指向的像素数据的结构由sourceFormat
和sourceType
指定。像素数据的上传可以选择性地由options
控制。- setData(xOffset, yOffset, zOffset, width, height, depth, mipLevel, sourceFormat, sourceType, data[, options=None])
- Parameters:
xOffset – int
yOffset – int
zOffset – int
width – int
height – int
depth – int
mipLevel – int
sourceFormat –
PixelFormat
sourceType –
PixelType
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
此重载用于更新纹理的一部分。参数
xOffset
、yOffset
、zOffset
指定纹理内的纹素偏移。参数width
、height
和depth
指定子图像的尺寸。要更新的子图像的mip map级别由mipLevel
指定。由
data
指向的像素数据的结构由sourceFormat
和sourceType
指定。像素数据的上传可以选择性地由options
控制。- setData(xOffset, yOffset, zOffset, width, height, depth, mipLevel, layer, sourceFormat, sourceType, data[, options=None])
- Parameters:
xOffset – int
yOffset – int
zOffset – int
width – int
height – int
depth – int
mipLevel – int
layer – int
sourceFormat –
PixelFormat
sourceType –
PixelType
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
此重载用于更新纹理的一部分。参数
xOffset
、yOffset
、zOffset
指定纹理内的纹素偏移。参数width
、height
和depth
指定子图像的尺寸。我们要更新的子图像的mip map级别和层由mipLevel
和layer
指定。由
data
指向的像素数据的结构由sourceFormat
和sourceType
指定。像素数据的上传可以选择性地由options
控制。- setData(xOffset, yOffset, zOffset, width, height, depth, mipLevel, layer, cubeFace, sourceFormat, sourceType, data[, options=None])
- Parameters:
xOffset – int
yOffset – int
zOffset – int
width – int
height – int
depth – int
mipLevel – int
layer – int
cubeFace –
CubeMapFace
sourceFormat –
PixelFormat
sourceType –
PixelType
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
此重载用于更新纹理的一部分。参数
xOffset
,yOffset
,zOffset
指定纹理内的纹素偏移。参数width
,height
和depth
指定子图像的尺寸。我们想要更新的子图像的mip map级别、层和立方体贴图面由mipLevel
,layer
和face
指定。由
data
指向的像素数据的结构由sourceFormat
和sourceType
指定。像素数据的上传可以选择性地由options
控制。- setData(xOffset, yOffset, zOffset, width, height, depth, mipLevel, layer, cubeFace, layerCount, sourceFormat, sourceType, data[, options=None])
- Parameters:
xOffset – int
yOffset – int
zOffset – int
width – int
height – int
depth – int
mipLevel – int
layer – int
cubeFace –
CubeMapFace
layerCount – int
sourceFormat –
PixelFormat
sourceType –
PixelType
data –
void
options –
QOpenGLPixelTransferOptions
这是一个重载函数。
此重载用于更新纹理的一部分。参数
xOffset
,yOffset
,zOffset
指定纹理内的纹素偏移。参数width
,height
和depth
指定子图像的尺寸。我们想要更新的子图像的mip map级别、起始层、立方体贴图面和层数由mipLevel
,layer
,face
和layerCount
指定。由
data
指向的像素数据的结构由sourceFormat
和sourceType
指定。像素数据的上传可以选择性地由options
控制。- setDepthStencilMode(mode)¶
- Parameters:
mode –
DepthStencilMode
如果使用具有组合深度/模板格式的纹理,此函数设置纹理的哪个组件被访问到
mode
。当参数设置为
DepthMode
时,从着色器访问它将像往常一样访问深度组件作为单个浮点数。但是当参数设置为StencilMode
时,着色器将访问模板组件。- setFixedSamplePositions(fixed)¶
- Parameters:
fixed – 布尔值
设置是否将与多采样能力纹理目标一起使用的样本位置和样本数量设置为
fixed
。如果设置为true
,则图像中所有纹理元素的样本位置和样本数量将相同,并且不会依赖于图像大小或内部格式。此函数应在为纹理分配存储之前调用。对于不支持多重采样的目标,此函数无效。
默认值为
true
。- setFormat(format)¶
- Parameters:
格式 –
TextureFormat
将此纹理对象的格式设置为
format
。必须在分配纹理存储之前调用此函数。请注意,可能不支持所有格式。支持的确切格式集取决于您的OpenGL实现和版本。
- setLayers(layers)¶
- Parameters:
layers – 整数
设置要为数组
layers
分配的存储层数。在为纹理分配存储之前,应调用此函数。对于不支持数组层的目标,此函数无效。
- setLevelOfDetailRange(min, max)¶
- Parameters:
min – 浮点数
max – 浮点数
将细节参数的最小级别设置为
min
,最大级别设置为max
。注意
此函数对为OpenGL ES 2构建的Qt没有影响。
- setLevelofDetailBias(bias)¶
- Parameters:
偏差 – 浮点数
将细节偏差级别设置为
bias
。细节偏差级别影响mipmapping级别变化的点。增加细节偏差值会使整体图像更模糊或更平滑。减少值会使整体图像更清晰。将放大滤镜设置为
filter
。- setMaximumAnisotropy(anisotropy)¶
- Parameters:
各向异性 – float
如果你的OpenGL实现支持GL_EXT_texture_filter_anisotropic扩展,此函数将最大各向异性级别设置为
anisotropy
。另请参阅
- setMaximumLevelOfDetail(value)¶
- Parameters:
value – 浮点数
设置最大细节级别为
value
。这限制了最低分辨率mipmap(最高mipmap级别)的选择。默认值为1000。注意
此函数对为OpenGL ES 2构建的Qt没有影响。
- setMinMagFilters(minificationFilter, magnificationFilter)¶
将最小化过滤器设置为
minificationFilter
,并将放大过滤器设置为magnificationFilter
。将用于最小化的过滤器设置为
filter
。- setMinimumLevelOfDetail(value)¶
- Parameters:
value – 浮点数
设置最小细节级别为
value
。这限制了最高分辨率mipmap(最低mipmap级别)的选择。默认值为-1000。注意
此函数对为OpenGL ES 2构建的Qt没有影响。
- setMipBaseLevel(baseLevel)¶
- Parameters:
baseLevel – int
设置用于所有使用此纹理的纹理查找的基本mipmap级别为
baseLevel
。- setMipLevelRange(baseLevel, maxLevel)¶
- Parameters:
baseLevel – int
maxLevel – int
设置可用于此纹理的纹理查找的mipmap级别范围,从
baseLevel
到maxLevel
。- setMipLevels(levels)¶
- Parameters:
levels – 整数
对于支持mipmap的纹理目标,此函数设置请求的mipmap
levels
数量以分配存储空间。在分配纹理存储之前应调用此函数。如果纹理目标不支持mipmaps,此函数无效。
- setMipMaxLevel(maxLevel)¶
- Parameters:
maxLevel – int
设置用于所有使用此纹理的纹理查找的最大mipmap级别为
maxLevel
。- setSamples(samples)¶
- Parameters:
样本 – int
设置当渲染到支持多重采样的纹理目标时,为
samples
分配的存储数量。此函数应在为纹理分配存储之前调用。对于不支持多重采样的目标,此函数无效。
- setSize(width[, height=1[, depth=1]])¶
- Parameters:
width – int
height – int
depth – int
设置此纹理对象的尺寸为
width
、height
和depth
。每个维度的默认值为1。最大允许的纹理大小取决于您的OpenGL实现。如果系统资源不足,即使分配的纹理存储小于最大尺寸,仍然可能失败。如果提供的
width
、height
或depth
不是2的幂次方,并且您的OpenGL实现不支持重复非2的幂次方纹理,则自动将环绕模式设置为ClampToEdge
。- setSwizzleMask(component, value)¶
- Parameters:
组件 –
SwizzleComponent
value –
SwizzleValue
GLSL着色器能够重新排列由纹理函数返回的vec4的分量。同样希望能够从CPU端代码控制这种重新排列。自OpenGL 3.3以来,这通过swizzle掩码成为可能。
纹理的每个组件都可以映射到
SwizzleValue
选项之一。此函数将
component
映射到输出value
。- setSwizzleMask(r, g, b, a)
- Parameters:
r –
SwizzleValue
g –
SwizzleValue
b –
SwizzleValue
a –
SwizzleValue
参数
r
,g
,b
, 和a
用于设置红色、绿色、蓝色和透明度值。这是一个重载函数。
将所有纹理维度的包裹(或重复模式)设置为
mode
。另请参阅
- setWrapMode(direction, mode)
- Parameters:
方向 –
CoordinateDirection
mode –
WrapMode
保存纹理维度
direction
。这是一个重载函数。
- swizzleMask(component)¶
- Parameters:
组件 –
SwizzleComponent
- Return type:
返回纹理
component
的swizzle掩码。另请参阅
返回此纹理的绑定目标。
- textureId()¶
- Return type:
整数
返回底层OpenGL纹理对象的名称,如果尚未创建则返回0。
另请参阅
- width()¶
- Return type:
整数
返回一维、二维或三维纹理的宽度。
- wrapMode(direction)¶
- Parameters:
方向 –
CoordinateDirection
- Return type:
返回纹理维度
direction
的环绕模式。另请参阅