diff --git a/ConjureEngine/CMakeLists.txt b/ConjureEngine/CMakeLists.txt index 44a802d..729604b 100644 --- a/ConjureEngine/CMakeLists.txt +++ b/ConjureEngine/CMakeLists.txt @@ -21,11 +21,6 @@ find_package(glm REQUIRED) find_package(SDL2 REQUIRED) find_package(Vulkan REQUIRED) -IF (WIN32) - define_property(TARGET PROPERTY VK_PROTOTYPES ) - define_property(TARGET PROPERTY VK_USE_PLATFORM_WIN32_KHR) -endif () - add_library(${PROJECT_NAME} STATIC ${HEADER_FILES} ${SOURCES_FILES}) # Specify include directories diff --git a/ConjureEngine/src/ConjureEngine/VulkanContext.cpp b/ConjureEngine/src/ConjureEngine/VulkanContext.cpp index f577b15..2ce5c34 100644 --- a/ConjureEngine/src/ConjureEngine/VulkanContext.cpp +++ b/ConjureEngine/src/ConjureEngine/VulkanContext.cpp @@ -4,15 +4,13 @@ #include "VulkanContext.h" -#ifdef __WIN32__ - // #include -#endif #ifdef __APPLE__ #include "vulkan/vulkan_metal.h" #endif namespace ConjureEngine { - VulkanContext::VulkanContext(SDL_Window* window, const VkApplicationInfo& appInfo) { + VulkanContext::VulkanContext(SDL_Window* window, const VkApplicationInfo& appInfo) + { // LOAD THE EXTENSIONS SDL_Vulkan_GetInstanceExtensions(window, &m_extensionCount, nullptr); m_extensionNames.reserve(m_extensionCount); @@ -92,10 +90,20 @@ namespace ConjureEngine { // CREATE VIRTUAL DEVICE FOR RENDERING - vkCreateDevice(m_selectedPhysicalDevice, &m_deviceCreateInfo, nullptr, &m_device); + VkResult result = vkCreateDevice(m_selectedPhysicalDevice, &m_deviceCreateInfo, nullptr, &m_device); + if(result != VkResult::VK_SUCCESS) { + SDL_LogError(SDL_LOG_CATEGORY_VIDEO, "Error while creating the device: %d", static_cast(result)); + } + else { + SDL_Log("DEVICE CREATED SUCCESSFULLY"); + } vkGetDeviceQueue(m_device, graphicsQueueIndex, 0, &m_graphicQueue); + + #ifndef __APPLE__ // MAC DOESNT SUPPORT 2 QUEUES LIKE ON WINDOWS/ vkGetDeviceQueue(m_device, presentQueueIndex, 0, &m_presentQueue); + #endif + const std::string error = SDL_GetError(); if(!error.empty()) { diff --git a/ConjureEngine/src/ConjureEngine/VulkanContext.h b/ConjureEngine/src/ConjureEngine/VulkanContext.h index 18bcd29..24e5c86 100644 --- a/ConjureEngine/src/ConjureEngine/VulkanContext.h +++ b/ConjureEngine/src/ConjureEngine/VulkanContext.h @@ -16,16 +16,18 @@ namespace ConjureEngine { private: uint32_t m_extensionCount{0}; std::vector m_extensionNames; - VkInstance m_vkInst{}; + VkInstance m_vkInst{nullptr}; uint32_t m_physicalDeviceCount{0}; std::vector m_physicalDevices; - VkPhysicalDevice m_selectedPhysicalDevice; + VkPhysicalDevice m_selectedPhysicalDevice{nullptr}; uint32_t m_queueFamilyCount{0}; - VkSurfaceKHR m_surface; - VkDeviceQueueCreateInfo m_deviceQueueCreateInfo; - VkDeviceCreateInfo m_deviceCreateInfo; - VkDevice m_device; - VkQueue m_graphicQueue; - VkQueue m_presentQueue; + VkSurfaceKHR m_surface{nullptr}; + VkDeviceQueueCreateInfo m_deviceQueueCreateInfo{}; + VkDeviceCreateInfo m_deviceCreateInfo{}; + VkDevice m_device{nullptr}; + VkQueue m_graphicQueue{nullptr}; + #ifndef __APPLE__ + VkQueue m_presentQueue{nullptr}; + #endif }; } // ConjureEngine