From df861ee241cbe91f6319ea593fd630d160b135b8 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Thu, 14 Jan 2021 08:48:55 +0100 Subject: Refactor code for multiplatform --- include/defines.hpp | 10 ++++++++++ include/rt.hpp | 22 ---------------------- include/vec3.hpp | 1 - include/vk-renderer.hpp | 4 +++- include/vulkan-loader.hpp | 5 ++--- src/camera.cpp | 5 +++-- src/color.cpp | 2 +- src/main.cpp | 18 +++++++++++++++--- src/vec3.cpp | 4 +++- src/vk-renderer.cpp | 10 +++++----- src/vulkan-loader.cpp | 10 +++++++--- 11 files changed, 49 insertions(+), 42 deletions(-) create mode 100644 include/defines.hpp delete mode 100644 include/rt.hpp diff --git a/include/defines.hpp b/include/defines.hpp new file mode 100644 index 0000000..2cb14a0 --- /dev/null +++ b/include/defines.hpp @@ -0,0 +1,10 @@ +#ifndef __DEFINES_HPP_ +#define __DEFINES_HPP_ + +#if defined(__linux__) +#define LINUX +#elif defined(_WIN32) || defined(_WIN64) +#define WINDOWS +#endif + +#endif // !__DEFINES_HPP_ diff --git a/include/rt.hpp b/include/rt.hpp deleted file mode 100644 index c7fa9a0..0000000 --- a/include/rt.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef __RT_HPP_ -#define __RT_HPP_ - -#if defined(__linux__) -#define LINUX -#include -#include -#elif defined(_WIN32) || defined(_WIN64) -#define WINDOWS -#include -#endif - -#include "utils.hpp" -#include "vec3.hpp" -#include "color.hpp" -#include "sphere.hpp" -#include "camera.hpp" -#include "material.hpp" - -#include "window.hpp" - -#endif // !__RT_HPP_ diff --git a/include/vec3.hpp b/include/vec3.hpp index 26cd2b3..112fdf9 100644 --- a/include/vec3.hpp +++ b/include/vec3.hpp @@ -2,7 +2,6 @@ #define __VEC3_HPP_ #include -#include class vec3 { public: diff --git a/include/vk-renderer.hpp b/include/vk-renderer.hpp index aecda0f..c2344c9 100644 --- a/include/vk-renderer.hpp +++ b/include/vk-renderer.hpp @@ -6,7 +6,9 @@ #include "vulkan-loader.hpp" #include "thirdparty/vk_mem_alloc.h" -#include "rt.hpp" +#include "window.hpp" +#include "camera.hpp" +#include "sphere.hpp" struct input_data { color sky_color; diff --git a/include/vulkan-loader.hpp b/include/vulkan-loader.hpp index cafd5bc..3e01132 100644 --- a/include/vulkan-loader.hpp +++ b/include/vulkan-loader.hpp @@ -1,10 +1,9 @@ #ifndef __VULKAN_LOADER_HPP_ #define __VULKAN_LOADER_HPP_ -#if defined(WINDOWS) -#include -#include +#include "defines.hpp" +#if defined(WINDOWS) #define VK_USE_PLATFORM_WIN32_KHR #elif defined(LINUX) #define VK_USE_PLATFORM_XCB_KHR diff --git a/src/camera.cpp b/src/camera.cpp index 6cb7b83..027ad1e 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -1,6 +1,7 @@ -#include "camera.hpp" +#include -#include "rt.hpp" +#include "camera.hpp" +#include "utils.hpp" camera::camera( point3 position, diff --git a/src/color.cpp b/src/color.cpp index 33351a8..92195de 100644 --- a/src/color.cpp +++ b/src/color.cpp @@ -1,5 +1,5 @@ #include "color.hpp" -#include "rt.hpp" +#include "utils.hpp" void write_color(std::ostream& out, const color& pixel_color) { auto r = pixel_color.x; diff --git a/src/main.cpp b/src/main.cpp index 5b321ff..cbaa798 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1,14 +1,26 @@ #include -#include #include #include #include #include -#include "rt.hpp" + +#if defined(LINUX) +#include +#include +#elif defined(WINDOWS) +#include +#endif + #include "vk-renderer.hpp" #include "thirdparty/renderdoc.h" +#include "vec3.hpp" +#include "material.hpp" +#include "sphere.hpp" +#include "camera.hpp" +#include "utils.hpp" + color ground_color { 1.0, 1.0, 1.0 }; color sky_color { 0.5, 0.7, 1.0 }; @@ -77,7 +89,7 @@ int main() { int ret = RENDERDOC_GetAPI(eRENDERDOC_API_Version_1_1_2, (void **)&rdoc_api); assert(ret == 1); } -#elif LINUX +#elif defined(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)) diff --git a/src/vec3.cpp b/src/vec3.cpp index b1e73f8..afc4c97 100644 --- a/src/vec3.cpp +++ b/src/vec3.cpp @@ -1,5 +1,7 @@ +#include + #include "vec3.hpp" -#include "rt.hpp" +#include "utils.hpp" vec3::vec3(): x(0.0), y(0.0), z(0.0) {} diff --git a/src/vk-renderer.cpp b/src/vk-renderer.cpp index ea7a9cb..26b2ff3 100644 --- a/src/vk-renderer.cpp +++ b/src/vk-renderer.cpp @@ -1,12 +1,12 @@ -#include "vk-renderer.hpp" -#include "utils.hpp" +#include +#include +#include "vk-renderer.hpp" #define VMA_IMPLEMENTATION #include "thirdparty/vk_mem_alloc.h" -#include -#include -#include +#include "defines.hpp" +#include "utils.hpp" #define VKRESULT(result) assert(result == VK_SUCCESS); diff --git a/src/vulkan-loader.cpp b/src/vulkan-loader.cpp index 4590cff..2214bbf 100644 --- a/src/vulkan-loader.cpp +++ b/src/vulkan-loader.cpp @@ -1,9 +1,12 @@ -#include "vulkan-loader.hpp" - #include -#include "rt.hpp" + +#include "vulkan-loader.hpp" +#include "defines.hpp" #if defined(WINDOWS) +#include +#include + HMODULE vulkanLibrary = LoadLibrary("vulkan-1.dll"); #define LoadProcAddress GetProcAddress @@ -16,6 +19,7 @@ void *vulkanLibrary = dlopen( "libvulkan.so.1", RTLD_NOW ); #define LoadProcAddress dlsym #endif + #define X(name) PFN_##name name; VULKAN_EXPORTED_FUNCTIONS VULKAN_APPLICATION_FUNCTIONS -- cgit v1.3