rewrite objective c++ into objective c

This commit is contained in:
Greg Wells
2025-05-24 15:23:06 -04:00
parent 12223b0bf3
commit 2bf4100e59
2 changed files with 4 additions and 64 deletions

View File

@@ -10,7 +10,7 @@
#include "vulkan/vulkan_metal.h" #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; NSWindow* window = (__bridge NSWindow*)createInfo.window;
NSView* view = [window contentView]; NSView* view = [window contentView];
@@ -21,14 +21,14 @@ GN_EXPORT gnReturnCode gnCreateMacOSWindowSurfaceFn(struct gnWindowSurface_t* wi
[view setLayer:layer]; [view setLayer:layer];
[view setWantsLayer:YES]; [view setWantsLayer:YES];
windowSurface->windowSurface = new gnPlatformWindowSurface(); windowSurface->windowSurface = malloc(sizeof(gnPlatformWindowSurface));
VkMetalSurfaceCreateInfoEXT surfaceCreateInfo = {}; VkMetalSurfaceCreateInfoEXT surfaceCreateInfo = {};
surfaceCreateInfo.sType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT; surfaceCreateInfo.sType = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT;
surfaceCreateInfo.pNext = nullptr; surfaceCreateInfo.pNext = NULL;
surfaceCreateInfo.flags = 0; surfaceCreateInfo.flags = 0;
surfaceCreateInfo.pLayer = layer; 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) if (result != VK_SUCCESS)
return GN_FAILED_TO_ATTACH_WINDOW; return GN_FAILED_TO_ATTACH_WINDOW;
return GN_SUCCESS; return GN_SUCCESS;

View File

@@ -1,60 +0,0 @@
#include <instance/vulkan_instance.h>
#include "vulkan_surface.h"
#ifdef GN_PLATFORM_LINUX
#ifdef GN_WINDOW_X11
#include <vulkan/vulkan_xlib.h>
#include <X11/Xlib.h>
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 <vulkan/vulkan_wayland.h>
#include <wayland-client.h>
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);
}