aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt2
-rw-r--r--src/main.cpp15
-rw-r--r--src/vk-renderer.cpp4
-rw-r--r--src/vulkan-loader.cpp3
-rw-r--r--src/window.cpp6
5 files changed, 25 insertions, 5 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 43a9858..77614b2 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -1,3 +1,5 @@
+add_definitions(-DNOMINMAX -D_USE_MATH_DEFINES)
+
include_directories(${CMAKE_SOURCE_DIR}/include)
include_directories(${Vulkan_INCLUDE_DIRS})
diff --git a/src/main.cpp b/src/main.cpp
index 5bd2f6e..5b321ff 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -4,8 +4,6 @@
#include <cstring>
#include <cstdio>
#include <cassert>
-#include <unistd.h>
-#include <dlfcn.h>
#include "rt.hpp"
#include "vk-renderer.hpp"
@@ -70,6 +68,16 @@ void random_scene(sphere *world) {
int main() {
RENDERDOC_API_1_1_2 *rdoc_api = NULL;
+#ifdef WINDOWS
+ // At init, on windows
+ if(HMODULE mod = GetModuleHandleA("renderdoc.dll"))
+ {
+ pRENDERDOC_GetAPI RENDERDOC_GetAPI =
+ (pRENDERDOC_GetAPI)GetProcAddress(mod, "RENDERDOC_GetAPI");
+ int ret = RENDERDOC_GetAPI(eRENDERDOC_API_Version_1_1_2, (void **)&rdoc_api);
+ assert(ret == 1);
+ }
+#elif LINUX
// At init, on linux/android.
// For android replace librenderdoc.so with libVkLayer_GLES_RenderDoc.so
if(void *mod = dlopen("librenderdoc.so", RTLD_NOW | RTLD_NOLOAD))
@@ -78,6 +86,7 @@ int main() {
int ret = RENDERDOC_GetAPI(eRENDERDOC_API_Version_1_1_2, (void **)&rdoc_api);
assert(ret == 1);
}
+#endif
// Image dimensions
// const float aspect_ratio = 16.0 / 9.0;
@@ -150,8 +159,6 @@ int main() {
// stop the capture
if(rdoc_api) rdoc_api->EndFrameCapture(NULL, NULL);
- pause();
-
//-------------------------
// GPU path tracer
//-------------------------
diff --git a/src/vk-renderer.cpp b/src/vk-renderer.cpp
index a34b83d..ea7a9cb 100644
--- a/src/vk-renderer.cpp
+++ b/src/vk-renderer.cpp
@@ -150,7 +150,9 @@ void vkrenderer::create_instance() {
std::vector<const char*> extensions = {
VK_EXT_DEBUG_UTILS_EXTENSION_NAME,
"VK_KHR_surface",
+#ifdef LINUX
"VK_KHR_xcb_surface"
+#endif
};
VkInstanceCreateInfo instance_create_info = {};
@@ -192,6 +194,7 @@ void vkrenderer::create_debugger() {
}
void vkrenderer::create_surface(window& wnd) {
+#ifdef LINUX
VkXcbSurfaceCreateInfoKHR create_info = {};
create_info.sType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
create_info.pNext = nullptr;
@@ -200,6 +203,7 @@ void vkrenderer::create_surface(window& wnd) {
create_info.window = wnd.win;
VKRESULT(vkCreateXcbSurfaceKHR(instance, &create_info, nullptr, &platform_surface))
+#endif
}
void vkrenderer::create_device() {
diff --git a/src/vulkan-loader.cpp b/src/vulkan-loader.cpp
index 17ddb31..4590cff 100644
--- a/src/vulkan-loader.cpp
+++ b/src/vulkan-loader.cpp
@@ -1,13 +1,14 @@
#include "vulkan-loader.hpp"
#include <iostream>
+#include "rt.hpp"
#if defined(WINDOWS)
HMODULE vulkanLibrary = LoadLibrary("vulkan-1.dll");
#define LoadProcAddress GetProcAddress
-#elif defined(__linux__)
+#elif defined(LINUX)
#include <dlfcn.h>
void *vulkanLibrary = dlopen( "libvulkan.so.1", RTLD_NOW );
diff --git a/src/window.cpp b/src/window.cpp
index 1bfc903..d901e66 100644
--- a/src/window.cpp
+++ b/src/window.cpp
@@ -1,5 +1,6 @@
#include "window.hpp"
+#ifdef LINUX
window::window(uint32_t width, uint32_t height)
:width(width), height(height) {
connection = xcb_connect(NULL, NULL);
@@ -27,3 +28,8 @@ window::window(uint32_t width, uint32_t height)
xcb_map_window(connection, win);
xcb_flush(connection);
}
+#elif defined(WINDOWS)
+window::window(uint32_t width, uint32_t height)
+ :width(width), height(height) {
+}
+#endif