Clase que describe un contexto de renderizado. Más...
#include <GERenderingContext.h>
Métodos públicos | |
| GERenderingContext (GEGraphicsContext *gc, GEDrawingContext *dc, GEPipelineConfig *config) | |
| Construye el contexto de renderizado (render pass, pipeline y framebuffers). | |
| void | destroy (GEGraphicsContext *gc) |
| Destruye los recursos del contexto de renderizado. | |
| void | startFillingCommandBuffers (std::vector< VkCommandBuffer > commandBuffers) |
| Prepara los buffers de comandos para añadir las operaciones de renderizado. | |
| void | endFillingCommandBuffers (std::vector< VkCommandBuffer > commandBuffers) |
| Finaliza el llenado de los buffers de comandos. | |
Atributos públicos | |
| uint32_t | imageCount |
| Número de imágenes en el swapchain. | |
| VkDescriptorSetLayout | descriptorSetLayout |
| Layout de los descriptor sets. | |
| VkPipelineLayout | pipelineLayout |
| Layout del pipeline. | |
Métodos privados | |
| void | createRenderPass (GEGraphicsContext *gc) |
| Crea los pasos de renderizado. | |
| void | createGraphicsPipeline (GEGraphicsContext *gc, GEPipelineConfig *config) |
| Crea el Pipeline de renderizado. | |
| void | createDepthBuffers (GEGraphicsContext *gc) |
| Crea los buffers de profundidad. | |
| void | createFramebuffers (GEGraphicsContext *gc, GEDrawingContext *dc) |
| Crea un Framebuffer para cada imagen del swapchain. | |
| void | createPipelineLayout (GEGraphicsContext *gc, GEPipelineConfig *config) |
| Crea el esquema de los conjuntos de descriptores. | |
| void | createVertexShaderStageCreateInfo (GEGraphicsContext *gc, int resource, VkShaderModule *vertShaderModule, VkPipelineShaderStageCreateInfo *vertShaderStageInfo) |
| Crea la información sobre el Vertex Shader. | |
| void | createFragmentShaderStageCreateInfo (GEGraphicsContext *gc, int resource, VkShaderModule *fragShaderModule, VkPipelineShaderStageCreateInfo *fragShaderStageInfo) |
| Crea la información sobre el Fragment Shader. | |
| void | createPipelineVertexInputStateCreateInfo (GEPipelineConfig *config, VkPipelineVertexInputStateCreateInfo *vertexInputInfo) |
| Crea la descripción de los atributos de los vértices. | |
| void | createPipelineInputAssemblyStateCreateInfo (VkPipelineInputAssemblyStateCreateInfo *inputAssembly) |
| Crea la información para el ensamblado de primitivas. | |
| void | createPipelineViewportStateCreateInfo (VkPipelineViewportStateCreateInfo *viewportState) |
| Crea la información del viewport. | |
| void | createPipelineRasterizationStateCreateInfo (GEPipelineConfig *config, VkPipelineRasterizationStateCreateInfo *rasterizer) |
| Crea la información de la etapa de rasterización. | |
| void | createPipelineMultisampleStateCreateInfo (VkPipelineMultisampleStateCreateInfo *multisampling) |
| Crea la información de la etapa de muestreo. | |
| void | createPipelineDepthStencilStateCreateInfo (GEPipelineConfig *config, VkPipelineDepthStencilStateCreateInfo *depthStencil) |
| Crea la información sobre los tests de profundidad y de plantilla. | |
| void | createPipelineColorBlendStateCreateInfo (VkPipelineColorBlendAttachmentState *colorBlendAttachment, VkPipelineColorBlendStateCreateInfo *colorBlending) |
| Crea la información sobre la etapa de mezcla de colores. | |
| VkShaderModule | createShaderModule (GEGraphicsContext *gc, const std::vector< char > &code) |
| Crea un shader a partir de su código en SPIR-V. | |
| std::vector< char > | getFileFromResource (int resource) |
| Extrae el contenido de un fichero incluido como recurso de la aplicación. | |
Atributos privados | |
| VkFormat | format |
| VkExtent2D | extent |
| VkRenderPass | renderPass |
| VkPipeline | graphicsPipeline |
| std::vector< GEDepthBuffer * > | depthBuffers |
| std::vector< VkFramebuffer > | framebuffers |
| VkViewport | viewport |
| VkRect2D | scissor |
Clase que describe un contexto de renderizado.
| GERenderingContext::GERenderingContext | ( | GEGraphicsContext * | gc, |
| GEDrawingContext * | dc, | ||
| GEPipelineConfig * | config ) |
Construye el contexto de renderizado (render pass, pipeline y framebuffers).
Crea un contexto de renderizado (pipeline, renderpass y framebuffer).
| gc | Contexto gráfico. |
| dc | Contexto de dibujo. |
| config | Configuración del pipeline. |
Hace referencia a createDepthBuffers(), createFramebuffers(), createGraphicsPipeline(), createRenderPass(), extent, format, GEDrawingContext::getExtent(), GEDrawingContext::getFormat(), GEDrawingContext::getImageCount() y imageCount.
|
private |
Crea los buffers de profundidad.
| gc | Contexto gráfico. |
Hace referencia a depthBuffers, extent y imageCount.
Referenciado por GERenderingContext().
|
private |
Crea la información sobre el Fragment Shader.
| gc | Contexto gráfico. |
| resource | Recurso del shader. |
| fragShaderModule | Módulo de shader de salida. |
| fragShaderStageInfo | Información de etapa de salida. |
Hace referencia a createShaderModule() y getFileFromResource().
Referenciado por createGraphicsPipeline().
|
private |
Crea un Framebuffer para cada imagen del swapchain.
| gc | Contexto gráfico. |
| dc | Contexto de dibujo. |
Hace referencia a depthBuffers, GEGraphicsContext::device, extent, framebuffers, imageCount, GEDrawingContext::imageViews y renderPass.
Referenciado por GERenderingContext().
|
private |
Crea el Pipeline de renderizado.
| gc | Contexto gráfico. |
| config | Configuración del pipeline. |
Hace referencia a createFragmentShaderStageCreateInfo(), createPipelineColorBlendStateCreateInfo(), createPipelineDepthStencilStateCreateInfo(), createPipelineInputAssemblyStateCreateInfo(), createPipelineLayout(), createPipelineMultisampleStateCreateInfo(), createPipelineRasterizationStateCreateInfo(), createPipelineVertexInputStateCreateInfo(), createPipelineViewportStateCreateInfo(), createVertexShaderStageCreateInfo(), GEGraphicsContext::device, GEPipelineConfig::extent, GEPipelineConfig::fragment_shader, graphicsPipeline, pipelineLayout, renderPass, scissor, GEPipelineConfig::vertex_shader y viewport.
Referenciado por GERenderingContext().
|
private |
Crea la información sobre la etapa de mezcla de colores.
| colorBlendAttachment | Adjunto de mezcla de color. |
| colorBlending | Información de mezcla de colores. |
Referenciado por createGraphicsPipeline().
|
private |
Crea la información sobre los tests de profundidad y de plantilla.
| config | Configuración del pipeline. |
| depthStencil | Información de depth stencil. |
Hace referencia a GEPipelineConfig::depthTestEnable.
Referenciado por createGraphicsPipeline().
|
private |
Crea la información para el ensamblado de primitivas.
| inputAssembly | Información de ensamblado. |
Referenciado por createGraphicsPipeline().
|
private |
Crea el esquema de los conjuntos de descriptores.
| gc | Contexto gráfico. |
| config | Configuración del pipeline. |
Hace referencia a descriptorSetLayout, GEPipelineConfig::descriptorStages, GEPipelineConfig::descriptorTypes, GEGraphicsContext::device y pipelineLayout.
Referenciado por createGraphicsPipeline().
|
private |
Crea la información de la etapa de muestreo.
| multisampling | Información de multisampling. |
Referenciado por createGraphicsPipeline().
|
private |
Crea la información de la etapa de rasterización.
| config | Configuración del pipeline. |
| rasterizer | Información de rasterización. |
Hace referencia a GEPipelineConfig::cullMode.
Referenciado por createGraphicsPipeline().
|
private |
Crea la descripción de los atributos de los vértices.
| config | Configuración del pipeline. |
| vertexInputInfo | Información de entrada de vértices. |
Hace referencia a GEPipelineConfig::attrFormats, GEPipelineConfig::attrOffsets y GEPipelineConfig::attrStride.
Referenciado por createGraphicsPipeline().
|
private |
Crea la información del viewport.
| viewportState | Estado del viewport. |
Hace referencia a scissor y viewport.
Referenciado por createGraphicsPipeline().
|
private |
Crea los pasos de renderizado.
| gc | Contexto gráfico. |
Hace referencia a GEGraphicsContext::device, GEGraphicsContext::findDepthFormat(), format y renderPass.
Referenciado por GERenderingContext().
|
private |
Crea un shader a partir de su código en SPIR-V.
| gc | Contexto gráfico. |
| code | Código SPIR-V del shader. |
Hace referencia a GEGraphicsContext::device.
Referenciado por createFragmentShaderStageCreateInfo() y createVertexShaderStageCreateInfo().
|
private |
Crea la información sobre el Vertex Shader.
| gc | Contexto gráfico. |
| resource | Recurso del shader. |
| vertShaderModule | Módulo de shader de salida. |
| vertShaderStageInfo | Información de etapa de salida. |
Hace referencia a createShaderModule() y getFileFromResource().
Referenciado por createGraphicsPipeline().
| void GERenderingContext::destroy | ( | GEGraphicsContext * | gc | ) |
Destruye los recursos del contexto de renderizado.
Destruye los componentes del contexto de renderizado.
| gc | Contexto gráfico. |
Hace referencia a depthBuffers, descriptorSetLayout, GEGraphicsContext::device, framebuffers, graphicsPipeline, imageCount, pipelineLayout y renderPass.
| void GERenderingContext::endFillingCommandBuffers | ( | std::vector< VkCommandBuffer > | commandBuffers | ) |
Finaliza el llenado de los buffers de comandos.
| commandBuffers | Buffers de comandos. |
|
private |
Extrae el contenido de un fichero incluido como recurso de la aplicación.
| resource | Identificador del recurso. |
Referenciado por createFragmentShaderStageCreateInfo() y createVertexShaderStageCreateInfo().
| void GERenderingContext::startFillingCommandBuffers | ( | std::vector< VkCommandBuffer > | commandBuffers | ) |
Prepara los buffers de comandos para añadir las operaciones de renderizado.
Actualiza los buffers de comandos para añadir el renderizado.
| commandBuffers | Buffers de comandos a rellenar. |
| commandBuffers | Buffers de comandos. |
Hace referencia a extent, framebuffers, graphicsPipeline y renderPass.
|
private |
Referenciado por createDepthBuffers(), createFramebuffers() y destroy().
| VkDescriptorSetLayout GERenderingContext::descriptorSetLayout |
Layout de los descriptor sets.
Referenciado por createPipelineLayout(), destroy() y GEDescriptorSet::GEDescriptorSet().
|
private |
Referenciado por createDepthBuffers(), createFramebuffers(), GERenderingContext() y startFillingCommandBuffers().
|
private |
Referenciado por createRenderPass() y GERenderingContext().
|
private |
Referenciado por createFramebuffers(), destroy() y startFillingCommandBuffers().
|
private |
Referenciado por createGraphicsPipeline(), destroy() y startFillingCommandBuffers().
| uint32_t GERenderingContext::imageCount |
Número de imágenes en el swapchain.
Referenciado por createDepthBuffers(), createFramebuffers(), destroy(), GEDescriptorSet::GEDescriptorSet(), GERenderingContext() y GEFigure::initialize().
| VkPipelineLayout GERenderingContext::pipelineLayout |
Layout del pipeline.
Referenciado por createGraphicsPipeline(), createPipelineLayout() y destroy().
|
private |
Referenciado por createFramebuffers(), createGraphicsPipeline(), createRenderPass(), destroy() y startFillingCommandBuffers().
|
private |
Referenciado por createGraphicsPipeline() y createPipelineViewportStateCreateInfo().
|
private |
Referenciado por createGraphicsPipeline() y createPipelineViewportStateCreateInfo().