Comparação do Qt com OpenGL e o Qt com o Vulkan
O Qt oferece o módulo QtGUI: um conjunto completo de contêineres para facilitar o desenvolvimento de aplicativos gráficos usando o OpenGL/GLSL. Por exemplo, para definirmos um quadro que exibe gráficos gerados pelo OpenGL no Qt, podemos utilizar um objeto do tipo QOpenGLWidget
no Qt Designer, criar uma nova classe que estende QOpenGLWidget
e implementar as funções virtuais paintGL
, resizeGL
e initializeGL
. Com isso, podemos ir ao Qt Designer e “promover” o widget QOpenGLWidget
para nossa classe que estende QOpenGLWidget
. Porém, quando utilizamos Vulkan esse processo é um pouco diferente. Primeiro, o Qt não tem uma classe para Vulkan equivalente a QOpenGLWidget
, mas sim uma classe que estende QWindow
chamada QVulkanWindow
. Isso significa que não podemos “promover” QVulkaWindow
para um widget do tipo “QVulkanWidget
”. Para adicionarmos um widget que exibe gráficos gerados pelo Vulkan, precisamos adicionar ao arquivo de formulário uma interface de usuário baseada em QWidget
no Qt Designer como por exemplo um Frame. Em seguida, criar uma classe que estenda QVulkanWindow
. Depois disso, devemos incorporar essa classe que estende QVulkanWindow
na interface de usuário baseada em QWidget
usando QWidget::createWindowContainer()
. Além disso, apenas a criação de uma classe que estende QVulkanWindow
não é suficiente para gerarmos gráficos utilizando Vulkan. Precisamos de mais duas classes auxiliares que apresentaremos no próximo capítulo.