diff --git a/rendering_api/vulkan/src/vulkan_surface/vulkan_surface.mm b/rendering_api/vulkan/src/vulkan_surface/vulkan_surface.m similarity index 73% rename from rendering_api/vulkan/src/vulkan_surface/vulkan_surface.mm rename to rendering_api/vulkan/src/vulkan_surface/vulkan_surface.m index c3f749f..8a22e6f 100644 --- a/rendering_api/vulkan/src/vulkan_surface/vulkan_surface.mm +++ b/rendering_api/vulkan/src/vulkan_surface/vulkan_surface.m @@ -10,7 +10,7 @@ #include "vulkan/vulkan_metal.h" -GN_EXPORT gnReturnCode gnCreateMacOSWindowSurfaceFn(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnMacOSWindowSurfaceInfo_t createInfo) { +gnReturnCode gnCreateMacOSWindowSurfaceFn(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnMacOSWindowSurfaceInfo_t createInfo) { NSWindow* window = (__bridge NSWindow*)createInfo.window; NSView* view = [window contentView]; @@ -21,14 +21,14 @@ GN_EXPORT gnReturnCode gnCreateMacOSWindowSurfaceFn(struct gnWindowSurface_t* wi [view setLayer:layer]; [view setWantsLayer:YES]; - windowSurface->windowSurface = new gnPlatformWindowSurface(); + windowSurface->windowSurface = malloc(sizeof(gnPlatformWindowSurface)); VkMetalSurfaceCreateInfoEXT surfaceCreateInfo = {}; surfaceCreateInfo.sType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT; - surfaceCreateInfo.pNext = nullptr; + surfaceCreateInfo.pNext = NULL; surfaceCreateInfo.flags = 0; surfaceCreateInfo.pLayer = layer; - VkResult result = vkCreateMetalSurfaceEXT(instance->instance->vk_instance, &surfaceCreateInfo, nullptr, &windowSurface->windowSurface->surface); + VkResult result = vkCreateMetalSurfaceEXT(instance->instance->vk_instance, &surfaceCreateInfo, NULL, &windowSurface->windowSurface->surface); if (result != VK_SUCCESS) return GN_FAILED_TO_ATTACH_WINDOW; return GN_SUCCESS; diff --git a/rendering_api/vulkan/src/vulkan_surface/vulkan_surfance.cpp b/rendering_api/vulkan/src/vulkan_surface/vulkan_surfance.cpp deleted file mode 100644 index a38399d..0000000 --- a/rendering_api/vulkan/src/vulkan_surface/vulkan_surfance.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include -#include "vulkan_surface.h" - -#ifdef GN_PLATFORM_LINUX -#ifdef GN_WINDOW_X11 -#include -#include - -GN_EXPORT gnReturnCode gnCreateX11WindowSurfaceFn(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnX11WindowSurfaceInfo_t createInfo) { - windowSurface->windowSurface = new gnPlatformWindowSurface(); - VkXlibSurfaceCreateInfoKHR info{}; - info.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR; - info.dpy = createInfo.display; - info.window = createInfo.window; - - VkResult result = vkCreateXlibSurfaceKHR(instance->instance->vk_instance, &info, nullptr, &windowSurface->windowSurface->surface); - if (result != VK_SUCCESS) - return GN_FAILED_TO_ATTACH_WINDOW; - return GN_SUCCESS; -} -#endif - -#ifdef GN_WINFDOW_WAYLAND -#include -#include -GN_EXPORT gnReturnCode gnCreateWaylandWindowSurface(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnWaylandWindowSurfaceInfo_t createInfo) { - windowSurface->windowSurface = new gnPlatformWindowSurface(); - VkWaylandSurfaceCreateInfoKHR info{}; - info.sType = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR; - info.display = createInfo.display; - info.surface = createInfo.surface; - - VkResult result = vkCreateWaylandSurfaceKHR(instance->instance->vk_instance, &info, nullptr, &windowSurface->windowSurface->surface); - if (result != VK_SUCCESS) - return GN_FAILED_TO_ATTACH_WINDOW; - return GN_SUCCESS; -} -#endif -#endif - -#ifdef GN_PLATFORM_WINDOWS -#include "vulkan/vulkan_win32.h" -GN_EXPORT gnReturnCode gnCreateWin32WindowSurface(struct gnWindowSurface_t* windowSurface, gnInstance* instance, struct gnWin32WindowSurfaceInfo_t createInfo) { - windowSurface->windowSurface = new gnPlatformWindowSurface(); - VkWin32SurfaceCreateInfoKHR info{}; - info.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR; - info.hwnd = createInfo.window; - info.hinstance = createInfo.instance; - - VkResult result = vkCreateWin32SurfaceKHR(instance->instance->vk_instance, &info, nullptr, &windowSurface->windowSurface->surface); - if (result != VK_SUCCESS) - return GN_FAILED_TO_ATTACH_WINDOW; - return GN_SUCCESS; -} -#endif - - -GN_EXPORT void gnDestroyWindowSurfaceFn(struct gnWindowSurface_t* windowSurface) { - vkDestroySurfaceKHR(windowSurface->instance->instance->vk_instance, windowSurface->windowSurface->surface, nullptr); -}