Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QGles2Texture Struct Reference

#include <qrhigles2_p.h>

Inheritance diagram for QGles2Texture:
Collaboration diagram for QGles2Texture:

Classes

struct  UsageState

Public Types

enum  Access {
  AccessNone , AccessSample , AccessFramebuffer , AccessStorageRead ,
  AccessStorageWrite , AccessStorageReadWrite , AccessUpdate , AccessRead
}
Public Types inherited from QRhiTexture
enum  Flag {
  RenderTarget = 1 << 0 , CubeMap = 1 << 2 , MipMapped = 1 << 3 , sRGB = 1 << 4 ,
  UsedAsTransferSource = 1 << 5 , UsedWithGenerateMips = 1 << 6 , UsedWithLoadStore = 1 << 7 , UsedAsCompressedAtlas = 1 << 8 ,
  ExternalOES = 1 << 9 , ThreeDimensional = 1 << 10 , TextureRectangleGL = 1 << 11 , TextureArray = 1 << 12 ,
  OneDimensional = 1 << 13 , UsedAsShadingRateMap = 1 << 14
}
 Flag values to specify how the texture is going to be used. More...
enum  Format {
  UnknownFormat , RGBA8 , BGRA8 , R8 ,
  RG8 , R16 , RG16 , RED_OR_ALPHA8 ,
  RGBA16F , RGBA32F , R16F , R32F ,
  RGB10A2 , R8SI , R32SI , RG32SI ,
  RGBA32SI , R8UI , R32UI , RG32UI ,
  RGBA32UI , D16 , D24 , D24S8 ,
  D32F , D32FS8 , BC1 , BC2 ,
  BC3 , BC4 , BC5 , BC6H ,
  BC7 , ETC2_RGB8 , ETC2_RGB8A1 , ETC2_RGBA8 ,
  ASTC_4x4 , ASTC_5x4 , ASTC_5x5 , ASTC_6x5 ,
  ASTC_6x6 , ASTC_8x5 , ASTC_8x6 , ASTC_8x8 ,
  ASTC_10x5 , ASTC_10x6 , ASTC_10x8 , ASTC_10x10 ,
  ASTC_12x10 , ASTC_12x12
}
 Specifies the texture format. More...
Public Types inherited from QRhiResource
enum  Type {
  Buffer , Texture , Sampler , RenderBuffer ,
  RenderPassDescriptor , SwapChainRenderTarget , TextureRenderTarget , ShaderResourceBindings ,
  GraphicsPipeline , SwapChain , ComputePipeline , CommandBuffer ,
  ShadingRateMap
}
 Specifies type of the resource. More...

Public Member Functions

 QGles2Texture (QRhiImplementation *rhi, Format format, const QSize &pixelSize, int depth, int arraySize, int sampleCount, Flags flags)
 ~QGles2Texture ()
void destroy () override
 Releases (or requests deferred releasing of) the underlying native graphics resources.
bool create () override
 Creates the corresponding native graphics resources.
bool createFrom (NativeTexture src) override
 Similar to create(), except that no new native textures are created.
NativeTexture nativeTexture () override
bool prepareCreate (QSize *adjustedSize=nullptr)
Public Member Functions inherited from QRhiTexture
QRhiResource::Type resourceType () const override
Format format () const
void setFormat (Format fmt)
 Sets the requested texture format to fmt.
QSize pixelSize () const
void setPixelSize (const QSize &sz)
 Sets the texture size, specified in pixels, to sz.
int depth () const
void setDepth (int depth)
 Sets the depth for a 3D texture.
int arraySize () const
void setArraySize (int arraySize)
 Sets the texture arraySize.
int arrayRangeStart () const
int arrayRangeLength () const
void setArrayRange (int startIndex, int count)
 Normally all array layers are exposed and it is up to the shader to select the layer via the third coordinate passed to the {texture()} GLSL function when sampling the sampler2DArray.
Flags flags () const
void setFlags (Flags f)
 Sets the texture flags to f.
int sampleCount () const
void setSampleCount (int s)
 Sets the sample count to s.
ViewFormat readViewFormat () const
 \variable QRhiTexture::ViewFormat::format
void setReadViewFormat (const ViewFormat &fmt)
ViewFormat writeViewFormat () const
void setWriteViewFormat (const ViewFormat &fmt)
virtual void setNativeLayout (int layout)
 With some graphics APIs, such as Vulkan, integrating custom rendering code that uses the graphics API directly needs special care when it comes to image layouts.
Public Member Functions inherited from QRhiResource
virtual ~QRhiResource ()
 Destructor.
void deleteLater ()
 When called without a frame being recorded, this function is equivalent to deleting the object.
QByteArray name () const
void setName (const QByteArray &name)
 Sets a name for the object.
quint64 globalResourceId () const
QRhirhi () const

Public Attributes

GLuint texture = 0
bool owns = true
GLenum target
GLenum glintformat
GLenum glsizedintformat
GLenum glformat
GLenum gltype
QGles2SamplerData samplerState
bool specified = false
bool zeroInitialized = false
int mipLevelCount = 0
int samples
UsageState usageState
uint generation = 0

Friends

class QRhiGles2

Additional Inherited Members

Protected Member Functions inherited from QRhiTexture
 QRhiTexture (QRhiImplementation *rhi, Format format_, const QSize &pixelSize_, int depth_, int arraySize_, int sampleCount_, Flags flags_)
 \variable QRhiTexture::NativeTexture::object
Protected Member Functions inherited from QRhiResource
 QRhiResource (QRhiImplementation *rhi)
Protected Attributes inherited from QRhiTexture
Format m_format
QSize m_pixelSize
int m_depth
int m_arraySize
int m_sampleCount
Flags m_flags
int m_arrayRangeStart = -1
int m_arrayRangeLength = -1
ViewFormat m_readViewFormat = { UnknownFormat, false }
ViewFormat m_writeViewFormat = { UnknownFormat, false }
Protected Attributes inherited from QRhiResource
QRhiImplementationm_rhi = nullptr
quint64 m_id
QByteArray m_objectName

Detailed Description

Definition at line 108 of file qrhigles2_p.h.

Member Enumeration Documentation

◆ Access

Enumerator
AccessNone 
AccessSample 
AccessFramebuffer 
AccessStorageRead 
AccessStorageWrite 
AccessStorageReadWrite 
AccessUpdate 
AccessRead 

Definition at line 133 of file qrhigles2_p.h.

Constructor & Destructor Documentation

◆ QGles2Texture()

QGles2Texture::QGles2Texture ( QRhiImplementation * rhi,
Format format,
const QSize & pixelSize,
int depth,
int arraySize,
int sampleCount,
Flags flags )

Definition at line 5749 of file qrhigles2.cpp.

◆ ~QGles2Texture()

QGles2Texture::~QGles2Texture ( )

Definition at line 5755 of file qrhigles2.cpp.

Member Function Documentation

◆ create()

bool QGles2Texture::create ( )
overridevirtual

Creates the corresponding native graphics resources.

If there are already resources present due to an earlier create() with no corresponding destroy(), then destroy() is called implicitly first.

Returns
true when successful, false when a graphics operation failed. Regardless of the return value, calling destroy() is always safe.

Implements QRhiTexture.

Definition at line 5882 of file qrhigles2.cpp.

◆ createFrom()

bool QGles2Texture::createFrom ( QRhiTexture::NativeTexture src)
overridevirtual

Similar to create(), except that no new native textures are created.

Instead, the native texture resources specified by src is used.

This allows importing an existing native texture object (which must belong to the same device or sharing context, depending on the graphics API) from an external graphics engine.

Returns
true if the specified existing native texture object has been successfully wrapped as a non-owning QRhiTexture.
Note
format(), pixelSize(), sampleCount(), and flags() must still be set correctly. Passing incorrect sizes and other values to QRhi::newTexture() and then following it with a createFrom() expecting that the native texture object alone is sufficient to deduce such values is wrong and will lead to problems.
QRhiTexture does not take ownership of the texture object. destroy() does not free the object or any associated memory.

The opposite of this operation, exposing a QRhiTexture-created native texture object to a foreign engine, is possible via nativeTexture().

Note
When importing a 3D texture, or a texture array object, or, with OpenGL ES, an external texture, it is then especially important to set the corresponding flags (ThreeDimensional, TextureArray, ExternalOES) via setFlags() before calling this function.

Reimplemented from QRhiTexture.

Definition at line 5997 of file qrhigles2.cpp.

◆ destroy()

void QGles2Texture::destroy ( )
overridevirtual

Releases (or requests deferred releasing of) the underlying native graphics resources.

Safe to call multiple times, subsequent invocations will be a no-op then.

Once destroy() is called, the QRhiResource instance can be reused, by calling create() again. That will then result in creating new native graphics resources underneath.

Note
Resources referenced by commands for the current frame should not be released until the frame is submitted by QRhi::endFrame().

The QRhiResource destructor also performs the same task, so calling this function is not necessary before deleting a QRhiResource.

See also
deleteLater()

Implements QRhiResource.

Definition at line 5760 of file qrhigles2.cpp.

◆ nativeTexture()

QRhiTexture::NativeTexture QGles2Texture::nativeTexture ( )
overridevirtual
Returns
the underlying native resources for this texture. The returned value will be empty if exposing the underlying native resources is not supported by the backend.
See also
createFrom()

Reimplemented from QRhiTexture.

Definition at line 6018 of file qrhigles2.cpp.

◆ prepareCreate()

bool QGles2Texture::prepareCreate ( QSize * adjustedSize = nullptr)

Definition at line 5782 of file qrhigles2.cpp.

◆ QRhiGles2

friend class QRhiGles2
friend

Definition at line 149 of file qrhigles2_p.h.

Member Data Documentation

◆ generation

uint QGles2Texture::generation = 0

Definition at line 148 of file qrhigles2_p.h.

◆ glformat

GLenum QGles2Texture::glformat

Definition at line 125 of file qrhigles2_p.h.

◆ glintformat

GLenum QGles2Texture::glintformat

Definition at line 123 of file qrhigles2_p.h.

◆ glsizedintformat

GLenum QGles2Texture::glsizedintformat

Definition at line 124 of file qrhigles2_p.h.

◆ gltype

GLenum QGles2Texture::gltype

Definition at line 126 of file qrhigles2_p.h.

◆ mipLevelCount

int QGles2Texture::mipLevelCount = 0

Definition at line 130 of file qrhigles2_p.h.

◆ owns

bool QGles2Texture::owns = true

Definition at line 121 of file qrhigles2_p.h.

◆ samplerState

QGles2SamplerData QGles2Texture::samplerState

Definition at line 127 of file qrhigles2_p.h.

◆ samples

int QGles2Texture::samples

Definition at line 131 of file qrhigles2_p.h.

◆ specified

bool QGles2Texture::specified = false

◆ target

GLenum QGles2Texture::target

Definition at line 122 of file qrhigles2_p.h.

◆ texture

GLuint QGles2Texture::texture = 0

Definition at line 120 of file qrhigles2_p.h.

◆ usageState

UsageState QGles2Texture::usageState

◆ zeroInitialized

bool QGles2Texture::zeroInitialized = false

Definition at line 129 of file qrhigles2_p.h.

Referenced by QRhiGles2::enqueueSubresUpload().


The documentation for this struct was generated from the following files: