Clase que almacena el contexto gráfico de Vulkan (instancia y dispositivo). Más...
#include <GEGraphicsContext.h>
Métodos públicos | |
| GEGraphicsContext (GLFWwindow *window) | |
| Construye el contexto gráfico de Vulkan. | |
| ~GEGraphicsContext () | |
| Destruye el contexto gráfico y libera recursos. | |
| uint32_t | findMemoryType (uint32_t typeFilter, VkMemoryPropertyFlags properties) |
| Busca el tipo de memoria adecuado para un filtro y propiedades dadas. | |
| VkFormat | findDepthFormat () |
| Busca el formato de imagen adecuado para el buffer de profundidad. | |
Atributos públicos | |
| VkInstance | instance |
| Instancia de Vulkan. | |
| VkSurfaceKHR | surface |
| Superficie de presentación. | |
| VkPhysicalDevice | physicalDevice |
| Dispositivo físico seleccionado. | |
| VkDevice | device |
| Dispositivo lógico. | |
| uint32_t | graphicsQueueFamilyIndex |
| Índice de la familia de colas para gráficos. | |
| uint32_t | presentQueueFamilyIndex |
| Índice de la familia de colas para presentación. | |
Métodos privados | |
| void | createInstance () |
| Crea la instancia de Vulkan. | |
| void | createSurface (GLFWwindow *window) |
| Crea la superficie para la ventana GLFW. | |
| void | pickPhysicalDevice () |
| Selecciona el dispositivo físico adecuado. | |
| void | createLogicalDevice () |
| Crea el dispositivo lógico y configura las colas. | |
| void | showInstanceProperties () |
| Muestra propiedades de la instancia Vulkan (depuración). | |
| bool | isDeviceSuitable (VkPhysicalDevice pDevice) |
| Comprueba si un dispositivo físico es adecuado. | |
| void | showDevices () |
| Muestra y escribe en fichero las propiedades de los dispositivos detectados. | |
| void | resumeDeviceProperties (VkPhysicalDevice pDevice, int index) |
| Escribe en fichero las características detalladas de un dispositivo. | |
Atributos privados | |
| VkPhysicalDeviceMemoryProperties | memProperties |
| Propiedades de memoria del dispositivo. | |
Clase que almacena el contexto gráfico de Vulkan (instancia y dispositivo).
| GEGraphicsContext::GEGraphicsContext | ( | GLFWwindow * | window | ) |
Construye el contexto gráfico de Vulkan.
Crea un contexto gráfico de Vulkan (instancia, dispositivo físico y lógico).
| window | Ventana GLFW sobre la que crear el contexto. |
| window | Ventana GLFW sobre la que crear el contexto. |
Hace referencia a createInstance(), createLogicalDevice(), createSurface() y pickPhysicalDevice().
| GEGraphicsContext::~GEGraphicsContext | ( | ) |
|
private |
Crea la instancia de Vulkan.
Hace referencia a instance.
Referenciado por GEGraphicsContext().
|
private |
Crea el dispositivo lógico y configura las colas.
Crea el dispositivo lógico sobre el que generar los gráficos y selecciona la familia de colas sobre el dispositivo.
Hace referencia a device, graphicsQueueFamilyIndex, physicalDevice y presentQueueFamilyIndex.
Referenciado por GEGraphicsContext().
|
private |
Crea la superficie para la ventana GLFW.
Crea la superficie sobre la que mostrar la representación gráfica.
| window | Ventana GLFW. |
| window | Ventana GLFW sobre la que crear la superficie. |
Hace referencia a instance y surface.
Referenciado por GEGraphicsContext().
| VkFormat GEGraphicsContext::findDepthFormat | ( | ) |
Busca el formato de imagen adecuado para el buffer de profundidad.
Busca el formato adecuado para el buffer de profundidad.
Hace referencia a physicalDevice.
Referenciado por GERenderingContext::createRenderPass() y GEDepthBuffer::GEDepthBuffer().
| uint32_t GEGraphicsContext::findMemoryType | ( | uint32_t | typeFilter, |
| VkMemoryPropertyFlags | properties ) |
Busca el tipo de memoria adecuado para un filtro y propiedades dadas.
Busca el tipo de memoria adecuado para el filtro indicado.
| typeFilter | Máscara de tipos de memoria disponibles. |
| properties | Propiedades de memoria requeridas. |
| typeFilter | Filtro de tipos de memoria. |
| properties | Propiedades de memoria requeridas. |
Hace referencia a memProperties.
Referenciado por GEDepthBuffer::GEDepthBuffer(), GEIndexBuffer::GEIndexBuffer(), GEUniformBuffer::GEUniformBuffer() y GEVertexBuffer::GEVertexBuffer().
|
private |
Comprueba si un dispositivo físico es adecuado.
Verifica si un dispositivo físico admite generación de gráficos.
| pDevice | Dispositivo físico a verificar. |
| pDevice | Dispositivo físico a verificar. |
Hace referencia a graphicsQueueFamilyIndex, presentQueueFamilyIndex y surface.
Referenciado por pickPhysicalDevice().
|
private |
Selecciona el dispositivo físico adecuado.
Selecciona el dispositivo físico sobre el que generar los gráficos.
Hace referencia a instance, isDeviceSuitable(), memProperties y physicalDevice.
Referenciado por GEGraphicsContext().
|
private |
Escribe en fichero las características detalladas de un dispositivo.
| pDevice | Dispositivo físico a describir. |
| index | Índice del dispositivo. |
Hace referencia a BOOL.
Referenciado por showDevices().
|
private |
Muestra y escribe en fichero las propiedades de los dispositivos detectados.
Muestra los dispositivos físicos disponibles y genera un archivo con las propiedades de cada uno.
Hace referencia a instance, physicalDevice y resumeDeviceProperties().
|
private |
Muestra propiedades de la instancia Vulkan (depuración).
Muestra las propiedades de la instancia.
| VkDevice GEGraphicsContext::device |
Dispositivo lógico.
Referenciado por GECommandContext::createCommandBuffers(), GECommandContext::createCommandPool(), GERenderingContext::createFramebuffers(), GERenderingContext::createGraphicsPipeline(), createLogicalDevice(), GERenderingContext::createPipelineLayout(), GEDrawingContext::createQueues(), GERenderingContext::createRenderPass(), GERenderingContext::createShaderModule(), GEDrawingContext::createSwapChain(), GECommandContext::destroy(), GEDepthBuffer::destroy(), GEDescriptorSet::destroy(), GEDrawingContext::destroy(), GEIndexBuffer::destroy(), GERenderingContext::destroy(), GEUniformBuffer::destroy(), GEVertexBuffer::destroy(), GEDepthBuffer::GEDepthBuffer(), GEDescriptorSet::GEDescriptorSet(), GEDrawingContext::GEDrawingContext(), GEIndexBuffer::GEIndexBuffer(), GEUniformBuffer::GEUniformBuffer(), GEVertexBuffer::GEVertexBuffer(), GEDrawingContext::recreate(), GEDrawingContext::submitGraphicsCommands(), GEUniformBuffer::update(), GEDrawingContext::waitForNextImage() y ~GEGraphicsContext().
| uint32_t GEGraphicsContext::graphicsQueueFamilyIndex |
Índice de la familia de colas para gráficos.
Referenciado por GECommandContext::createCommandPool(), createLogicalDevice(), GEDrawingContext::createQueues(), GEDrawingContext::createSwapChain() y isDeviceSuitable().
| VkInstance GEGraphicsContext::instance |
Instancia de Vulkan.
Referenciado por createInstance(), createSurface(), pickPhysicalDevice(), showDevices() y ~GEGraphicsContext().
|
private |
Propiedades de memoria del dispositivo.
Referenciado por findMemoryType() y pickPhysicalDevice().
| VkPhysicalDevice GEGraphicsContext::physicalDevice |
Dispositivo físico seleccionado.
Referenciado por createLogicalDevice(), GEDrawingContext::createSwapChain(), findDepthFormat(), pickPhysicalDevice() y showDevices().
| uint32_t GEGraphicsContext::presentQueueFamilyIndex |
Índice de la familia de colas para presentación.
Referenciado por createLogicalDevice(), GEDrawingContext::createQueues(), GEDrawingContext::createSwapChain() y isDeviceSuitable().
| VkSurfaceKHR GEGraphicsContext::surface |
Superficie de presentación.
Referenciado por createSurface(), GEDrawingContext::createSwapChain(), isDeviceSuitable() y ~GEGraphicsContext().