Animación Vulkan 1.0
Animación de tiro libre baloncesto con motor gráfico desarrollado en clase
Cargando...
Buscando...
Nada coincide
Referencia de la clase GERenderingContext

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

Descripción detallada

Clase que describe un contexto de renderizado.

Documentación de constructores y destructores

◆ GERenderingContext()

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).

Parámetros
gcContexto gráfico.
dcContexto de dibujo.
configConfiguración del pipeline.

Hace referencia a createDepthBuffers(), createFramebuffers(), createGraphicsPipeline(), createRenderPass(), extent, format, GEDrawingContext::getExtent(), GEDrawingContext::getFormat(), GEDrawingContext::getImageCount() y imageCount.

Gráfico de llamadas de esta función:

Documentación de funciones miembro

◆ createDepthBuffers()

void GERenderingContext::createDepthBuffers ( GEGraphicsContext * gc)
private

Crea los buffers de profundidad.

Parámetros
gcContexto gráfico.

Hace referencia a depthBuffers, extent y imageCount.

Referenciado por GERenderingContext().

Gráfico de llamadas a esta función:

◆ createFragmentShaderStageCreateInfo()

void GERenderingContext::createFragmentShaderStageCreateInfo ( GEGraphicsContext * gc,
int resource,
VkShaderModule * fragShaderModule,
VkPipelineShaderStageCreateInfo * fragShaderStageInfo )
private

Crea la información sobre el Fragment Shader.

Parámetros
gcContexto gráfico.
resourceRecurso del shader.
fragShaderModuleMódulo de shader de salida.
fragShaderStageInfoInformación de etapa de salida.

Hace referencia a createShaderModule() y getFileFromResource().

Referenciado por createGraphicsPipeline().

Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ createFramebuffers()

void GERenderingContext::createFramebuffers ( GEGraphicsContext * gc,
GEDrawingContext * dc )
private

Crea un Framebuffer para cada imagen del swapchain.

Parámetros
gcContexto gráfico.
dcContexto de dibujo.

Hace referencia a depthBuffers, GEGraphicsContext::device, extent, framebuffers, imageCount, GEDrawingContext::imageViews y renderPass.

Referenciado por GERenderingContext().

Gráfico de llamadas a esta función:

◆ createGraphicsPipeline()

void GERenderingContext::createGraphicsPipeline ( GEGraphicsContext * gc,
GEPipelineConfig * config )
private

Crea el Pipeline de renderizado.

Parámetros
gcContexto gráfico.
configConfiguració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().

Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ createPipelineColorBlendStateCreateInfo()

void GERenderingContext::createPipelineColorBlendStateCreateInfo ( VkPipelineColorBlendAttachmentState * colorBlendAttachment,
VkPipelineColorBlendStateCreateInfo * colorBlending )
private

Crea la información sobre la etapa de mezcla de colores.

Parámetros
colorBlendAttachmentAdjunto de mezcla de color.
colorBlendingInformación de mezcla de colores.

Referenciado por createGraphicsPipeline().

Gráfico de llamadas a esta función:

◆ createPipelineDepthStencilStateCreateInfo()

void GERenderingContext::createPipelineDepthStencilStateCreateInfo ( GEPipelineConfig * config,
VkPipelineDepthStencilStateCreateInfo * depthStencil )
private

Crea la información sobre los tests de profundidad y de plantilla.

Parámetros
configConfiguración del pipeline.
depthStencilInformación de depth stencil.

Hace referencia a GEPipelineConfig::depthTestEnable.

Referenciado por createGraphicsPipeline().

Gráfico de llamadas a esta función:

◆ createPipelineInputAssemblyStateCreateInfo()

void GERenderingContext::createPipelineInputAssemblyStateCreateInfo ( VkPipelineInputAssemblyStateCreateInfo * inputAssembly)
private

Crea la información para el ensamblado de primitivas.

Parámetros
inputAssemblyInformación de ensamblado.

Referenciado por createGraphicsPipeline().

Gráfico de llamadas a esta función:

◆ createPipelineLayout()

void GERenderingContext::createPipelineLayout ( GEGraphicsContext * gc,
GEPipelineConfig * config )
private

Crea el esquema de los conjuntos de descriptores.

Parámetros
gcContexto gráfico.
configConfiguración del pipeline.

Hace referencia a descriptorSetLayout, GEPipelineConfig::descriptorStages, GEPipelineConfig::descriptorTypes, GEGraphicsContext::device y pipelineLayout.

Referenciado por createGraphicsPipeline().

Gráfico de llamadas a esta función:

◆ createPipelineMultisampleStateCreateInfo()

void GERenderingContext::createPipelineMultisampleStateCreateInfo ( VkPipelineMultisampleStateCreateInfo * multisampling)
private

Crea la información de la etapa de muestreo.

Parámetros
multisamplingInformación de multisampling.

Referenciado por createGraphicsPipeline().

Gráfico de llamadas a esta función:

◆ createPipelineRasterizationStateCreateInfo()

void GERenderingContext::createPipelineRasterizationStateCreateInfo ( GEPipelineConfig * config,
VkPipelineRasterizationStateCreateInfo * rasterizer )
private

Crea la información de la etapa de rasterización.

Parámetros
configConfiguración del pipeline.
rasterizerInformación de rasterización.

Hace referencia a GEPipelineConfig::cullMode.

Referenciado por createGraphicsPipeline().

Gráfico de llamadas a esta función:

◆ createPipelineVertexInputStateCreateInfo()

void GERenderingContext::createPipelineVertexInputStateCreateInfo ( GEPipelineConfig * config,
VkPipelineVertexInputStateCreateInfo * vertexInputInfo )
private

Crea la descripción de los atributos de los vértices.

Parámetros
configConfiguración del pipeline.
vertexInputInfoInformación de entrada de vértices.

Hace referencia a GEPipelineConfig::attrFormats, GEPipelineConfig::attrOffsets y GEPipelineConfig::attrStride.

Referenciado por createGraphicsPipeline().

Gráfico de llamadas a esta función:

◆ createPipelineViewportStateCreateInfo()

void GERenderingContext::createPipelineViewportStateCreateInfo ( VkPipelineViewportStateCreateInfo * viewportState)
private

Crea la información del viewport.

Parámetros
viewportStateEstado del viewport.

Hace referencia a scissor y viewport.

Referenciado por createGraphicsPipeline().

Gráfico de llamadas a esta función:

◆ createRenderPass()

void GERenderingContext::createRenderPass ( GEGraphicsContext * gc)
private

Crea los pasos de renderizado.

Parámetros
gcContexto gráfico.

Hace referencia a GEGraphicsContext::device, GEGraphicsContext::findDepthFormat(), format y renderPass.

Referenciado por GERenderingContext().

Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ createShaderModule()

VkShaderModule GERenderingContext::createShaderModule ( GEGraphicsContext * gc,
const std::vector< char > & code )
private

Crea un shader a partir de su código en SPIR-V.

Parámetros
gcContexto gráfico.
codeCódigo SPIR-V del shader.
Devuelve
Módulo de shader creado.

Hace referencia a GEGraphicsContext::device.

Referenciado por createFragmentShaderStageCreateInfo() y createVertexShaderStageCreateInfo().

Gráfico de llamadas a esta función:

◆ createVertexShaderStageCreateInfo()

void GERenderingContext::createVertexShaderStageCreateInfo ( GEGraphicsContext * gc,
int resource,
VkShaderModule * vertShaderModule,
VkPipelineShaderStageCreateInfo * vertShaderStageInfo )
private

Crea la información sobre el Vertex Shader.

Parámetros
gcContexto gráfico.
resourceRecurso del shader.
vertShaderModuleMódulo de shader de salida.
vertShaderStageInfoInformación de etapa de salida.

Hace referencia a createShaderModule() y getFileFromResource().

Referenciado por createGraphicsPipeline().

Gráfico de llamadas de esta función:
Gráfico de llamadas a esta función:

◆ destroy()

void GERenderingContext::destroy ( GEGraphicsContext * gc)

Destruye los recursos del contexto de renderizado.

Destruye los componentes del contexto de renderizado.

Parámetros
gcContexto gráfico.

Hace referencia a depthBuffers, descriptorSetLayout, GEGraphicsContext::device, framebuffers, graphicsPipeline, imageCount, pipelineLayout y renderPass.

◆ endFillingCommandBuffers()

void GERenderingContext::endFillingCommandBuffers ( std::vector< VkCommandBuffer > commandBuffers)

Finaliza el llenado de los buffers de comandos.

Parámetros
commandBuffersBuffers de comandos.

◆ getFileFromResource()

std::vector< char > GERenderingContext::getFileFromResource ( int resource)
private

Extrae el contenido de un fichero incluido como recurso de la aplicación.

Parámetros
resourceIdentificador del recurso.
Devuelve
Vector con los bytes del fichero.

Referenciado por createFragmentShaderStageCreateInfo() y createVertexShaderStageCreateInfo().

Gráfico de llamadas a esta función:

◆ startFillingCommandBuffers()

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.

Parámetros
commandBuffersBuffers de comandos a rellenar.
commandBuffersBuffers de comandos.

Hace referencia a extent, framebuffers, graphicsPipeline y renderPass.

Documentación de datos miembro

◆ depthBuffers

std::vector<GEDepthBuffer*> GERenderingContext::depthBuffers
private

◆ descriptorSetLayout

VkDescriptorSetLayout GERenderingContext::descriptorSetLayout

Layout de los descriptor sets.

Referenciado por createPipelineLayout(), destroy() y GEDescriptorSet::GEDescriptorSet().

◆ extent

VkExtent2D GERenderingContext::extent
private

◆ format

VkFormat GERenderingContext::format
private

◆ framebuffers

std::vector<VkFramebuffer> GERenderingContext::framebuffers
private

◆ graphicsPipeline

VkPipeline GERenderingContext::graphicsPipeline
private

◆ imageCount

uint32_t GERenderingContext::imageCount

◆ pipelineLayout

VkPipelineLayout GERenderingContext::pipelineLayout

Layout del pipeline.

Referenciado por createGraphicsPipeline(), createPipelineLayout() y destroy().

◆ renderPass

VkRenderPass GERenderingContext::renderPass
private

◆ scissor

VkRect2D GERenderingContext::scissor
private

◆ viewport

VkViewport GERenderingContext::viewport
private

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