Small tweaks before rewrite
This commit is contained in:
parent
6d48ac251c
commit
0ed40a0b64
@ -66,6 +66,14 @@ elseif(MSVC)
|
||||
target_compile_options(${EXE_NAME} PRIVATE /W4)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
add_custom_command(
|
||||
TARGET ${EXE_NAME} POST_BUILD
|
||||
COMMAND "${CMAKE_COMMAND}" -E copy $<TARGET_FILE:SDL3::SDL3-shared> $<TARGET_FILE_DIR:${EXE_NAME}>
|
||||
VERBATIM
|
||||
)
|
||||
endif()
|
||||
|
||||
# Linking
|
||||
target_link_libraries(${EXE_NAME} PRIVATE SDL3::SDL3)
|
||||
target_link_libraries(${EXE_NAME} PRIVATE Vulkan::Vulkan)
|
||||
|
||||
@ -7,7 +7,7 @@
|
||||
#include <vector>
|
||||
#include <optional>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <cstdio>
|
||||
|
||||
#include <vulkan/vulkan.h>
|
||||
|
||||
@ -125,6 +125,7 @@ private:
|
||||
VkSurfaceFormatKHR chooseSwapSurfaceFormat(const std::vector<VkSurfaceFormatKHR>&);
|
||||
VkPresentModeKHR chooseSwapPresentMode(const std::vector<VkPresentModeKHR>&);
|
||||
VkExtent2D chooseSwapExtent(const VkSurfaceCapabilitiesKHR&);
|
||||
|
||||
// Validation layer stuff
|
||||
void setupDebugMessenger();
|
||||
bool checkValidationLayerSupport();
|
||||
|
||||
13
src/main.cc
13
src/main.cc
@ -7,8 +7,8 @@
|
||||
|
||||
#include <exception>
|
||||
|
||||
constexpr uint32_t winInitWidth = 512;
|
||||
constexpr uint32_t winInitHeight = 512;
|
||||
constexpr uint32_t winInitWidth = 1024;
|
||||
constexpr uint32_t winInitHeight = 1024;
|
||||
|
||||
struct AppContext {
|
||||
VulkanApp vkapp;
|
||||
@ -28,7 +28,7 @@ SDL_AppResult SDL_AppInit(void **appstate, int argc, char **argv) {
|
||||
return SDL_Fail();
|
||||
|
||||
try {
|
||||
*appstate = new AppContext { .vkapp = VulkanApp(1024, 1024)};
|
||||
*appstate = new AppContext { .vkapp = VulkanApp(winInitWidth, winInitHeight)};
|
||||
AppContext* app = static_cast<AppContext*>(*appstate);
|
||||
app->vkapp.init();
|
||||
} catch(const std::exception& except) {
|
||||
@ -79,11 +79,10 @@ SDL_AppResult SDL_AppIterate(void *appstate) {
|
||||
void SDL_AppQuit(void *appstate, SDL_AppResult result) {
|
||||
AppContext* app = static_cast<AppContext*>(appstate);
|
||||
|
||||
if(result == SDL_APP_FAILURE) {
|
||||
if(result == SDL_APP_FAILURE)
|
||||
fputs("Program failure, shutting down\n", stderr);
|
||||
} else {
|
||||
puts("Program shutting down, no errors.");
|
||||
}
|
||||
else
|
||||
puts("Program shutting down, no errors.");
|
||||
|
||||
if(app) {
|
||||
app->vkapp.cleanup();
|
||||
|
||||
@ -3,7 +3,6 @@
|
||||
#include <SDL3/SDL.h>
|
||||
#include <SDL3/SDL_vulkan.h>
|
||||
|
||||
#include <cstdio>
|
||||
#include <stdexcept>
|
||||
#include <set>
|
||||
#include <limits>
|
||||
@ -305,9 +304,8 @@ void VulkanApp::drawFrame() {
|
||||
}
|
||||
|
||||
void VulkanApp::init() {
|
||||
// Initialize SDL2
|
||||
SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTS);
|
||||
//SDL_Vulkan_LoadLibrary(nullptr);
|
||||
// Initialize SDL3
|
||||
SDL_Init(SDL_INIT_VIDEO);
|
||||
|
||||
// Create the window
|
||||
mWin = SDL_CreateWindow("Vulkan+SDL2 Application",
|
||||
@ -330,6 +328,7 @@ void VulkanApp::init() {
|
||||
throw std::runtime_error("Could not create Vulkan surface!");
|
||||
}
|
||||
|
||||
// TODO: Replace some of this crap with vkbootstrap code
|
||||
selectPhysicalDevice();
|
||||
createLogicalDevice();
|
||||
createSwapChain();
|
||||
@ -349,7 +348,8 @@ void VulkanApp::createInstance() {
|
||||
|
||||
// Get # of extensions then get extensions
|
||||
uint32_t extensionCount = 0;
|
||||
const char * const * extensionArr = SDL_Vulkan_GetInstanceExtensions(&extensionCount);
|
||||
const char * const *extensionArr = SDL_Vulkan_GetInstanceExtensions(&extensionCount);
|
||||
// Put extensions into vector
|
||||
std::vector<const char*> extensionNames(extensionArr, extensionArr + extensionCount);
|
||||
|
||||
if(enableValidationLayers)
|
||||
@ -358,11 +358,11 @@ void VulkanApp::createInstance() {
|
||||
// App info
|
||||
VkApplicationInfo appInfo{};
|
||||
appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO;
|
||||
appInfo.pApplicationName = "Simple Triangle";
|
||||
appInfo.applicationVersion = VK_MAKE_VERSION(1, 0, 0);
|
||||
appInfo.pApplicationName = "Triangle";
|
||||
appInfo.applicationVersion = VK_MAKE_VERSION(1, 1, 0);
|
||||
appInfo.pEngineName = "RAPT2";
|
||||
appInfo.engineVersion = VK_MAKE_VERSION(1, 0, 0);
|
||||
appInfo.apiVersion = VK_API_VERSION_1_0;
|
||||
appInfo.engineVersion = VK_MAKE_VERSION(1, 1, 0);
|
||||
appInfo.apiVersion = VK_API_VERSION_1_3;
|
||||
|
||||
// Extensions
|
||||
VkInstanceCreateInfo createInfo{};
|
||||
@ -404,9 +404,8 @@ void VulkanApp::selectPhysicalDevice() {
|
||||
uint32_t deviceCount = 0;
|
||||
vkEnumeratePhysicalDevices(mInstance, &deviceCount, nullptr);
|
||||
|
||||
if(deviceCount == 0) {
|
||||
if(deviceCount == 0)
|
||||
throw std::runtime_error("Could not find a Vulkan compatible GPU!");
|
||||
}
|
||||
|
||||
std::vector<VkPhysicalDevice> devices(deviceCount);
|
||||
vkEnumeratePhysicalDevices(mInstance, &deviceCount, devices.data());
|
||||
@ -419,9 +418,8 @@ void VulkanApp::selectPhysicalDevice() {
|
||||
}
|
||||
}
|
||||
|
||||
if(mPhysicalDevice == VK_NULL_HANDLE) {
|
||||
if(mPhysicalDevice == VK_NULL_HANDLE)
|
||||
throw std::runtime_error("Could not find any suitable GPU!");
|
||||
}
|
||||
}
|
||||
|
||||
void VulkanApp::createLogicalDevice() {
|
||||
@ -885,9 +883,8 @@ void VulkanApp::cleanup() {
|
||||
|
||||
vkDestroyDevice(mLogicalDevice, nullptr);
|
||||
|
||||
if (enableValidationLayers) {
|
||||
if (enableValidationLayers)
|
||||
DestroyDebugUtilsMessengerEXT(mInstance, mDebugMessenger, nullptr);
|
||||
}
|
||||
|
||||
vkDestroySurfaceKHR(mInstance, mSurface, nullptr);
|
||||
vkDestroyInstance(mInstance, nullptr);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user