- Qt 6.12
- Qt OpenGL
- C++ Classes
- QOpenGLFramebufferObjectFormat
- Qt 6.12.0 Reference Documentation

# QOpenGLFramebufferObjectFormat Class

The QOpenGLFramebufferObjectFormat class specifies the format of an OpenGL framebuffer object. More...

Header: | `#include <QOpenGLFramebufferObjectFormat>`
CMake: | `find_package(Qt6 REQUIRED COMPONENTS OpenGL)` `target_link_libraries(mytarget PRIVATE Qt6::OpenGL)`
qmake: | `QT += opengl`

- List of all members, including inherited members
- QOpenGLFramebufferObjectFormat is part of Rendering in 3D.

## Public Functions

| QOpenGLFramebufferObjectFormat()
| QOpenGLFramebufferObjectFormat(const QOpenGLFramebufferObjectFormat &other)
| ~QOpenGLFramebufferObjectFormat()
QOpenGLFramebufferObject::Attachment | attachment() const
GLenum | internalTextureFormat() const
bool | mipmap() const
int | samples() const
void | setAttachment(QOpenGLFramebufferObject::Attachment attachment)
void | setInternalTextureFormat(GLenum internalTextureFormat)
void | setMipmap(bool enabled)
void | setSamples(int samples)
void | setTextureTarget(GLenum target)
GLenum | textureTarget() const
bool | operator!=(const QOpenGLFramebufferObjectFormat &other) const
QOpenGLFramebufferObjectFormat & | operator=(const QOpenGLFramebufferObjectFormat &other)
bool | operator==(const QOpenGLFramebufferObjectFormat &other) const

## Detailed Description

A framebuffer object has several characteristics:

- Number of samples per pixels.
- Depth and/or stencil attachments.
- Texture target.
- Internal texture format.

Note that the desired attachments or number of samples per pixels might not be supported by the hardware driver. Call QOpenGLFramebufferObject::format() after creating a QOpenGLFramebufferObject to find the exact format that was used to create the frame buffer object.

See also QOpenGLFramebufferObject.

## Member Function Documentation

### QOpenGLFramebufferObjectFormat::QOpenGLFramebufferObjectFormat()

Creates a QOpenGLFramebufferObjectFormat object for specifying the format of an OpenGL framebuffer object.

By default the format specifies a non-multisample framebuffer object with no depth/stencil attachments, texture target `GL_TEXTURE_2D`, and internal format `GL_RGBA8`. On OpenGL/ES systems, the default internal format is `GL_RGBA`.

See also samples(), attachment(), and internalTextureFormat().

### QOpenGLFramebufferObjectFormat::QOpenGLFramebufferObjectFormat(const QOpenGLFramebufferObjectFormat &other)

Constructs a copy of other.

### `[noexcept]` QOpenGLFramebufferObjectFormat::~QOpenGLFramebufferObjectFormat()

Destroys the QOpenGLFramebufferObjectFormat.

### QOpenGLFramebufferObject::Attachment QOpenGLFramebufferObjectFormat::attachment() const

Returns the configuration of the depth and stencil buffers attached to a framebuffer object. The default is QOpenGLFramebufferObject::NoAttachment.

See also setAttachment().

### GLenum QOpenGLFramebufferObjectFormat::internalTextureFormat() const

Returns the internal format of a framebuffer object's texture or multisample framebuffer object's color buffer. The default is `GL_RGBA8` on desktop OpenGL systems, and `GL_RGBA` on OpenGL/ES systems.

See also setInternalTextureFormat().

### bool QOpenGLFramebufferObjectFormat::mipmap() const

Returns `true` if mipmapping is enabled.

See also setMipmap().

### int QOpenGLFramebufferObjectFormat::samples() const

Returns the number of samples per pixel if a framebuffer object is a multisample framebuffer object. Otherwise, returns 0. The default value is 0.

See also setSamples().

### void QOpenGLFramebufferObjectFormat::setAttachment(QOpenGLFramebufferObject::Attachment attachment)

Sets the attachment configuration of a framebuffer object to attachment.

See also attachment().

### void QOpenGLFramebufferObjectFormat::setInternalTextureFormat(GLenum internalTextureFormat)

Sets the internal format of a framebuffer object's texture or multisample framebuffer object's color buffer to internalTextureFormat.

See also internalTextureFormat().

### void QOpenGLFramebufferObjectFormat::setMipmap(bool enabled)

Enables mipmapping if enabled is true; otherwise disables it.

Mipmapping is disabled by default.

If mipmapping is enabled, additional memory will be allocated for the mipmap levels. The mipmap levels can be updated by binding the texture and calling glGenerateMipmap(). Mipmapping cannot be enabled for multisampled framebuffer objects.

See also mipmap() and QOpenGLFramebufferObject::texture().

### void QOpenGLFramebufferObjectFormat::setSamples(int samples)

Sets the number of samples per pixel for a multisample framebuffer object to samples. The default sample count of 0 represents a regular non-multisample framebuffer object.

If the desired amount of samples per pixel is not supported by the hardware then the maximum number of samples per pixel will be used. Note that multisample framebuffer objects cannot be bound as textures. Also, the `GL_EXT_framebuffer_multisample` extension is required to create a framebuffer with more than one sample per pixel.

See also samples().

### void QOpenGLFramebufferObjectFormat::setTextureTarget(GLenum target)

Sets the texture target of the texture attached to a framebuffer object to target. Ignored for multisample framebuffer objects.

See also textureTarget() and samples().

### GLenum QOpenGLFramebufferObjectFormat::textureTarget() const

Returns the texture target of the texture attached to a framebuffer object. Ignored for multisample framebuffer objects. The default is `GL_TEXTURE_2D`.

See also setTextureTarget() and samples().

### bool QOpenGLFramebufferObjectFormat::operator!=(const QOpenGLFramebufferObjectFormat &other) const

Returns `false` if all the options of this framebuffer object format are the same as other; otherwise returns `true`.

### QOpenGLFramebufferObjectFormat &QOpenGLFramebufferObjectFormat::operator=(const QOpenGLFramebufferObjectFormat &other)

Assigns other to this object.

### bool QOpenGLFramebufferObjectFormat::operator==(const QOpenGLFramebufferObjectFormat &other) const

Returns `true` if all the options of this framebuffer object format are the same as other; otherwise returns `false`.