Wildvine Engine
Referencia Doxygen del codigo propio de Wildvine Engine.
Cargando...
Buscando...
Nada coincide
Referencia de la clase SwapChain

Encapsula un IDXGISwapChain en Direct3D 11 para administrar buffers de presentación. Más...

#include <SwapChain.h>

Métodos públicos

void destroy ()
 Libera todos los recursos asociados al Swap Chain.
 
HRESULT getBackBuffer (Texture &backBuffer)
 
HRESULT init (Device &device, DeviceContext &deviceContext, Texture &backBuffer, Window window)
 Inicializa el Swap Chain y obtiene el back buffer.
 
void present ()
 Presenta el back buffer en pantalla.
 
void render ()
 Ejecuta operaciones de renderizado relacionadas con el Swap Chain.
 
HRESULT resizeBuffers (unsigned int width, unsigned int height)
 
 SwapChain ()=default
 Constructor por defecto.
 
void update ()
 Actualiza parámetros internos del Swap Chain.
 
 ~SwapChain ()=default
 Destructor por defecto.
 

Atributos públicos

D3D_DRIVER_TYPE m_driverType = D3D_DRIVER_TYPE_NULL
 Tipo de driver utilizado (hardware, referencia, software, etc.).
 
IDXGISwapChain * m_swapChain = nullptr
 Objeto principal del Swap Chain en Direct3D 11.
 

Atributos privados

IDXGIAdapter * m_dxgiAdapter = nullptr
 Interfaz DXGI para el adaptador (GPU).
 
IDXGIDevice * m_dxgiDevice = nullptr
 Interfaz DXGI para el dispositivo.
 
IDXGIFactory * m_dxgiFactory = nullptr
 Interfaz DXGI para la fábrica (creación de swap chains).
 
D3D_FEATURE_LEVEL m_featureLevel = D3D_FEATURE_LEVEL_11_0
 Nivel de características de Direct3D soportado por el dispositivo.
 
unsigned int m_qualityLevels
 Niveles de calidad soportados para la configuración de MSAA.
 
unsigned int m_sampleCount
 Número de muestras para MSAA.
 

Descripción detallada

Un Swap Chain es responsable de la gestión de los buffers de renderizado que se presentan en pantalla (front y back buffer). Esta clase maneja su creación, actualización, renderizado y presentación final.

También soporta configuración de MSAA (Multisample Anti-Aliasing) para suavizado de bordes.

Definición en la línea 24 del archivo SwapChain.h.

Documentación de constructores y destructores

◆ SwapChain()

SwapChain::SwapChain ( )
default

◆ ~SwapChain()

SwapChain::~SwapChain ( )
default

No libera automáticamente los recursos COM; llamar a destroy().

Documentación de funciones miembro

◆ destroy()

void SwapChain::destroy ( )

También libera las interfaces relacionadas de DXGI (device, adapter, factory).

Postcondición
m_swapChain == nullptr.

Definición en la línea 143 del archivo SwapChain.cpp.

Hace referencia a m_dxgiAdapter, m_dxgiDevice, m_dxgiFactory, m_swapChain y SAFE_RELEASE.

Referenciado por BaseApp::destroy().

◆ getBackBuffer()

HRESULT SwapChain::getBackBuffer ( Texture backBuffer)

Definición en la línea 196 del archivo SwapChain.cpp.

Hace referencia a ERROR y m_swapChain.

Referenciado por BaseApp::onResize().

◆ init()

HRESULT SwapChain::init ( Device device,
DeviceContext deviceContext,
Texture backBuffer,
Window  window 
)

Crea el objeto IDXGISwapChain asociado a una ventana específica, obteniendo además la textura del back buffer para el renderizado.

Parámetros
deviceDispositivo con el que se crea el recurso.
deviceContextContexto de dispositivo asociado.
backBufferTextura que representará el back buffer.
windowVentana de la aplicación donde se presentará la imagen.
Devuelve
S_OK si fue exitoso; código HRESULT en caso contrario.
Postcondición
Si retorna S_OK, m_swapChain != nullptr.

Definición en la línea 13 del archivo SwapChain.cpp.

Hace referencia a ERROR, Device::m_device, DeviceContext::m_deviceContext, m_dxgiAdapter, m_dxgiDevice, m_dxgiFactory, m_featureLevel, Window::m_height, Window::m_hWnd, m_qualityLevels, m_sampleCount, m_swapChain, Window::m_width y MESSAGE.

Referenciado por BaseApp::init().

◆ present()

void SwapChain::present ( )

Llama a IDXGISwapChain::Present para mostrar el contenido renderizado en la ventana asociada.

Nota
Si se utiliza V-Sync, puede configurarse en la implementación de este método.

Definición en la línea 159 del archivo SwapChain.cpp.

Hace referencia a ERROR y m_swapChain.

Referenciado por BaseApp::render().

◆ render()

void SwapChain::render ( )

Usualmente se utilizaría para depuración o para sincronizar buffers antes de la presentación.

Nota
Actualmente no realiza ninguna operación.

◆ resizeBuffers()

HRESULT SwapChain::resizeBuffers ( unsigned int  width,
unsigned int  height 
)

Definición en la línea 172 del archivo SwapChain.cpp.

Hace referencia a ERROR y m_swapChain.

Referenciado por BaseApp::onResize().

◆ update()

void SwapChain::update ( )

Método de marcador para soportar cambios dinámicos, como resize de ventana, reconfiguración de MSAA u otros ajustes.

Nota
Actualmente no realiza ninguna operación.

Documentación de datos miembro

◆ m_driverType

D3D_DRIVER_TYPE SwapChain::m_driverType = D3D_DRIVER_TYPE_NULL

Definición en la línea 116 del archivo SwapChain.h.

Referenciado por BaseApp::update().

◆ m_dxgiAdapter

IDXGIAdapter* SwapChain::m_dxgiAdapter = nullptr
private

Definición en la línea 144 del archivo SwapChain.h.

Referenciado por destroy() y init().

◆ m_dxgiDevice

IDXGIDevice* SwapChain::m_dxgiDevice = nullptr
private

Definición en la línea 139 del archivo SwapChain.h.

Referenciado por destroy() y init().

◆ m_dxgiFactory

IDXGIFactory* SwapChain::m_dxgiFactory = nullptr
private

Definición en la línea 149 del archivo SwapChain.h.

Referenciado por destroy() y init().

◆ m_featureLevel

D3D_FEATURE_LEVEL SwapChain::m_featureLevel = D3D_FEATURE_LEVEL_11_0
private

Definición en la línea 122 del archivo SwapChain.h.

Referenciado por init().

◆ m_qualityLevels

unsigned int SwapChain::m_qualityLevels
private

Definición en la línea 134 del archivo SwapChain.h.

Referenciado por init().

◆ m_sampleCount

unsigned int SwapChain::m_sampleCount
private

Ejemplo: 4 = 4x MSAA (4 muestras por píxel).

Definición en la línea 129 del archivo SwapChain.h.

Referenciado por init().

◆ m_swapChain

IDXGISwapChain* SwapChain::m_swapChain = nullptr

Definición en la línea 111 del archivo SwapChain.h.

Referenciado por destroy(), getBackBuffer(), init(), BaseApp::onResize(), present() y resizeBuffers().


La documentación de esta clase está generada de los siguientes archivos: