fix some stuff

This commit is contained in:
Gregory Wells
2025-06-10 15:51:51 -04:00
parent 2b9cb50a20
commit 6c7c6f1b69
8 changed files with 19 additions and 9 deletions

View File

@@ -39,6 +39,7 @@ if(APPLE)
endif() endif()
if(UNIX AND NOT APPLE) if(UNIX AND NOT APPLE)
add_compile_definitions(GN_PLATFORM_LINUX) add_compile_definitions(GN_PLATFORM_LINUX)
add_compile_definitions(GN_WINDOW_X11)
add_subdirectory(rendering_api/vulkan/) add_subdirectory(rendering_api/vulkan/)
endif() endif()

View File

@@ -5,7 +5,6 @@
#include <core/debugger/gryphn_debugger.h> #include <core/debugger/gryphn_debugger.h>
#include <core/output_device/gryphn_physical_output_device.h> #include <core/output_device/gryphn_physical_output_device.h>
#include <core/window_surface/gryphn_surface.h> #include <core/window_surface/gryphn_surface.h>
#include <core/window_surface/gryphn_surface_create_functions.h>
#include <core/presentation_queue/gryphn_presentation_queue.h> #include <core/presentation_queue/gryphn_presentation_queue.h>
#include <core/shader_module/gryphn_shader_module.h> #include <core/shader_module/gryphn_shader_module.h>
#include <core/pipelines/graphics_pipeline/gryphn_graphics_pipeline.h> #include <core/pipelines/graphics_pipeline/gryphn_graphics_pipeline.h>

View File

@@ -1,2 +1,3 @@
#pragma once #pragma once
#include <platform/gryphn_platform_include.h> #include <platform/gryphn_platform_include.h>
#include <core/window_surface/gryphn_surface_create_functions.h>

View File

@@ -58,7 +58,7 @@ gnReturnCode gnCreateInstanceFn(gnInstanceHandle instance, gnInstanceInfo instan
#ifdef GN_PLATFORM_LINUX #ifdef GN_PLATFORM_LINUX
gnBool isX11 = gnFalse; gnBool isX11 = gnTrue;
uint32_t extensionCount = 3; uint32_t extensionCount = 3;
const char* extensions[3]; const char* extensions[3];
if (isX11) { if (isX11) {
@@ -101,7 +101,12 @@ gnReturnCode gnCreateInstanceFn(gnInstanceHandle instance, gnInstanceInfo instan
VkInstanceCreateInfo createInfo = {}; VkInstanceCreateInfo createInfo = {};
createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
createInfo.pApplicationInfo = &appInfo; createInfo.pApplicationInfo = &appInfo;
createInfo.flags = VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR; VkInstanceCreateFlags createFlags = 0;
#ifdef GN_PLATFORM_MACOS
createFlags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR;
#endif
createInfo.flags = createFlags;
const char* validation_layers[1] = { "VK_LAYER_KHRONOS_validation" }; const char* validation_layers[1] = { "VK_LAYER_KHRONOS_validation" };
createInfo.enabledLayerCount = 1; createInfo.enabledLayerCount = 1;

View File

@@ -1,13 +1,15 @@
#include <core/window_surface/gryphn_surface_create_functions.h>
#include <instance/vulkan_instance.h> #include <instance/vulkan_instance.h>
#include "vulkan_surface.h" #include "vulkan_surface.h"
#include <output_device/vulkan_physical_device.h> #include <output_device/vulkan_physical_device.h>
#include <stdio.h> #include <stdio.h>
#ifdef GN_PLATFORM_LINUX #ifdef GN_PLATFORM_LINUX
#ifdef GN_WINDOW_X11 #ifdef GN_WINDOW_X11
#include <vulkan/vulkan_xlib.h> #include <vulkan/vulkan_xlib.h>
#include <X11/Xlib.h> #include <X11/Xlib.h>
gnReturnCode gnCreateX11WindowSurfaceFn(struct gnWindowSurface_t* windowSurface, gnInstanceHandle instance, struct gnX11WindowSurfaceInfo_t createInfo) { gnReturnCode gnCreateX11WindowSurfaceFn(gnWindowSurfaceHandle windowSurface, gnInstanceHandle instance, gnX11WindowSurfaceInfo createInfo) {
windowSurface->windowSurface = malloc(sizeof(struct gnPlatformWindowSurface_t)); windowSurface->windowSurface = malloc(sizeof(struct gnPlatformWindowSurface_t));
VkXlibSurfaceCreateInfoKHR info = {}; VkXlibSurfaceCreateInfoKHR info = {};
info.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR; info.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;

View File

@@ -1,6 +1,5 @@
#include "gryphn_debugger.h" #include "gryphn_debugger.h"
#include <core/gryphn_platform_functions.h> #include <core/gryphn_platform_functions.h>
#include "stdio.h"
gnReturnCode gnCreateDebugger(gnDebuggerHandle* debugger, const struct gnDebuggerInfo_t info) { gnReturnCode gnCreateDebugger(gnDebuggerHandle* debugger, const struct gnDebuggerInfo_t info) {
*debugger = malloc(sizeof(struct gnDebugger_t)); *debugger = malloc(sizeof(struct gnDebugger_t));

View File

@@ -1,12 +1,15 @@
#define GN_WINDOW_X11
#include "gryphn_surface_create_functions.h" #include "gryphn_surface_create_functions.h"
#include "core/instance/gryphn_instance.h" #include "core/instance/gryphn_instance.h"
#include "core/gryphn_platform_functions.h" #include "core/gryphn_platform_functions.h"
#include "stdio.h"
#ifdef GN_PLATFORM_LINUX #ifdef GN_PLATFORM_LINUX
#ifdef GN_WINDOW_X11 #ifdef GN_WINDOW_X11
gnReturnCode gnCreateX11WindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, struct gnX11WindowSurfaceInfo_t createInfo) { gnReturnCode gnCreateX11WindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, struct gnX11WindowSurfaceInfo_t createInfo) {
*windowSurface = malloc(sizeof(struct gnWindowSurface_t)); *windowSurface = malloc(sizeof(struct gnWindowSurface_t));
return instance->functions->_gnCreateX11WindowSurface(windowSurface, instance, createInfo); (*windowSurface)->instance = instance;
return instance->functions->_gnCreateX11WindowSurface(*windowSurface, instance, createInfo);
} }
#endif #endif
#ifdef GN_WINDOW_WAYLAND #ifdef GN_WINDOW_WAYLAND

View File

@@ -7,10 +7,10 @@
#ifdef GN_WINDOW_X11 #ifdef GN_WINDOW_X11
typedef struct gnX11WindowSurfaceInfo_t { typedef struct gnX11WindowSurfaceInfo_t {
Display* display; Display* display;
Window* window; Window window;
} gnX11WindowSurfaceCreateInfo; } gnX11WindowSurfaceInfo;
gnReturnCode gnCreateX11WindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, struct gnX11WindowSurfaceInfo_t createInfo); gnReturnCode gnCreateX11WindowSurface(gnWindowSurfaceHandle* windowSurface, gnInstanceHandle instance, gnX11WindowSurfaceInfo createInfo);
#endif #endif
#ifdef GN_WINDOW_WAYLAND #ifdef GN_WINDOW_WAYLAND
typedef struct gnWaylandWindowSurfaceInfo_t { typedef struct gnWaylandWindowSurfaceInfo_t {