andy-thomason / Vookoo

A set of utilities for taking the pain out of Vulkan in header only modern C++
MIT License
521 stars 53 forks source link

changes for you, reformed Framework and Window a little bit, adds functionality to PipelineMaker #46

Open timprepscius opened 2 years ago

timprepscius commented 2 years ago

https://github.com/timprepscius/Vookoo/branches tjp_remove_forced_multiview__pipeline_maker_options

Hey there,

I've made some changes basically summed up as:

  1. make DeviceMaker be more basic with defaultLayers, add functions to easily add VK_KHR_MULTIVIEW_EXTENSION_NAME, etc.
  2. make InstanceMaker be more basic with defaultLayers, add functions to easily add Geometry and Tesselation etc.
  3. make Framework take the DeviceMaker and InstanceMaker.
  4. add the ability to have no viewport and no scissor.

This allows more easily not having VK_KHR_MULTIVIEW_EXTENSION_NAME or Tessellation or GeometryShaders.

You will need to change bits of your code to have:


InstanceMaker im;
im
  .extensionMultiview();

DeviceMaker dm;
dm
  .extensionMultiview()
  .physicalDeviceFeatures()
  .enableGeometryShader()
  .enableTessellationShader()
  .multiviewFeatures()
  .enableMultiview();

Framework framework(im, dm);

But your code will actually be more descriptive by doing this as well.

Thank you very much for your code, especially vku.hpp.

timprepscius commented 2 years ago

Also, your header files need to reference "vku.hpp" from vku_framework.hpp, not