First attempt at negative viewport, its not quite working for some reason (yet)

This commit is contained in:
connellpaxton 2024-01-26 10:52:20 -05:00
parent bd7f1ed4d3
commit 764044b01e
3 changed files with 20 additions and 15 deletions

View File

@ -24,7 +24,7 @@ Renderer::Renderer(Window& win) : win(win) {
.apiVersion = VK_API_VERSION_1_1, .apiVersion = VK_API_VERSION_1_1,
}; };
const auto req_extensions = win.requiredExtensions(); auto req_instance_extensions = win.requiredExtensions();
auto extensions = vk::enumerateInstanceExtensionProperties(); auto extensions = vk::enumerateInstanceExtensionProperties();
std::vector<const char*> extension_names(extensions.size()); std::vector<const char*> extension_names(extensions.size());
@ -32,11 +32,12 @@ Renderer::Renderer(Window& win) : win(win) {
extension_names[i] = extensions[i].extensionName; extension_names[i] = extensions[i].extensionName;
} }
Log::info("%u Required extensions:\n", (u32)req_extensions.size()); Log::info("%u Required extensions:\n", (u32)req_instance_extensions.size());
for (const auto& ext : req_extensions) { for (const auto& ext : req_instance_extensions) {
Log::info("\t- \"%s\"\n", ext); Log::info("\t- \"%s\"\n", ext);
} }
/* query and enable available layers if in DEBUG mode */ /* query and enable available layers if in DEBUG mode */
#ifdef _DEBUG #ifdef _DEBUG
@ -55,8 +56,8 @@ Renderer::Renderer(Window& win) : win(win) {
.pApplicationInfo = &app_info, .pApplicationInfo = &app_info,
.enabledLayerCount = std::size(my_layers), .enabledLayerCount = std::size(my_layers),
.ppEnabledLayerNames = my_layers, .ppEnabledLayerNames = my_layers,
.enabledExtensionCount = static_cast<u32>(req_extensions.size()), .enabledExtensionCount = static_cast<u32>(req_instance_extensions.size()),
.ppEnabledExtensionNames = req_extensions.data(), .ppEnabledExtensionNames = req_instance_extensions.data(),
}; };
#else #else
@ -116,8 +117,9 @@ Renderer::Renderer(Window& win) : win(win) {
}; };
/* enumerate available device features */ /* enumerate available device features */
std::vector<const char*> required_extensions; std::vector<const char*> req_dev_extensions;
required_extensions.push_back("VK_KHR_swapchain"); req_dev_extensions.push_back("VK_KHR_swapchain");
req_dev_extensions.push_back(VK_KHR_MAINTENANCE1_EXTENSION_NAME);
auto dev_extentions = phys_dev.enumerateDeviceExtensionProperties(); auto dev_extentions = phys_dev.enumerateDeviceExtensionProperties();
Log::info("%zu available device extensions\n", dev_extentions.size()); Log::info("%zu available device extensions\n", dev_extentions.size());
for (const auto& ext : dev_extentions) { for (const auto& ext : dev_extentions) {
@ -139,8 +141,8 @@ Renderer::Renderer(Window& win) : win(win) {
.pQueueCreateInfos = &queue_info, .pQueueCreateInfos = &queue_info,
.enabledLayerCount = static_cast<u32>(dev_layer_names.size()), .enabledLayerCount = static_cast<u32>(dev_layer_names.size()),
.ppEnabledLayerNames = dev_layer_names.data(), .ppEnabledLayerNames = dev_layer_names.data(),
.enabledExtensionCount = static_cast<u32>(required_extensions.size()), .enabledExtensionCount = static_cast<u32>(req_dev_extensions.size()),
.ppEnabledExtensionNames = required_extensions.data(), .ppEnabledExtensionNames = req_dev_extensions.data(),
}; };
dev = phys_dev.createDevice(dev_info); dev = phys_dev.createDevice(dev_info);
@ -168,9 +170,9 @@ Renderer::Renderer(Window& win) : win(win) {
/* basic triangle */ /* basic triangle */
std::vector<Vertex> triangle = { std::vector<Vertex> triangle = {
{{ 0.0, 0.5, 0.0 }}, {{ 1.0, 1.0, 0.0 }},
{{ 0.5, 0.0, 0.0 }}, {{-1.0, 1.0, 0.0 }},
{{ 0.5, 0.5, 0.0 }}, {{ 0.0,-1.0, 0.0 }},
}; };
vertex_buffer = std::make_unique<VertexBuffer>(phys_dev, dev, triangle.size()); vertex_buffer = std::make_unique<VertexBuffer>(phys_dev, dev, triangle.size());
@ -230,11 +232,13 @@ void Renderer::draw() {
.pClearValues = clear_values, .pClearValues = clear_values,
}; };
/* flip viewport */
auto viewport = vk::Viewport{ auto viewport = vk::Viewport{
.x = 0.0f, .x = 0.0f,
.y = 0.0f, // .y = 0.0f,
.y = static_cast<float>(swapchain->extent.height),
.width = static_cast<float>(swapchain->extent.width), .width = static_cast<float>(swapchain->extent.width),
.height = static_cast<float>(swapchain->extent.height), .height = -static_cast<float>(swapchain->extent.height),
.minDepth = 0.0f, .minDepth = 0.0f,
.maxDepth = 1.0f, .maxDepth = 1.0f,
}; };

View File

@ -7,5 +7,6 @@ layout (set = 0, binding = 0) uniform Matrices {
}; };
void main() { void main() {
FragColor = vec4(abs(cos(time)), 0.5, 1.0, 1.0); // FragColor = vec4(abs(cos(time)), 0.5, 1.0, 1.0);
FragColor = vec4(1.0);
} }

Binary file not shown.