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()
if(UNIX AND NOT APPLE)
add_compile_definitions(GN_PLATFORM_LINUX)
add_compile_definitions(GN_WINDOW_X11)
add_subdirectory(rendering_api/vulkan/)
endif()

View File

@@ -5,7 +5,6 @@
#include <core/debugger/gryphn_debugger.h>
#include <core/output_device/gryphn_physical_output_device.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/shader_module/gryphn_shader_module.h>
#include <core/pipelines/graphics_pipeline/gryphn_graphics_pipeline.h>

View File

@@ -1,2 +1,3 @@
#pragma once
#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
gnBool isX11 = gnFalse;
gnBool isX11 = gnTrue;
uint32_t extensionCount = 3;
const char* extensions[3];
if (isX11) {
@@ -101,7 +101,12 @@ gnReturnCode gnCreateInstanceFn(gnInstanceHandle instance, gnInstanceInfo instan
VkInstanceCreateInfo createInfo = {};
createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
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" };
createInfo.enabledLayerCount = 1;

View File

@@ -1,13 +1,15 @@
#include <core/window_surface/gryphn_surface_create_functions.h>
#include <instance/vulkan_instance.h>
#include "vulkan_surface.h"
#include <output_device/vulkan_physical_device.h>
#include <stdio.h>
#ifdef GN_PLATFORM_LINUX
#ifdef GN_WINDOW_X11
#include <vulkan/vulkan_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));
VkXlibSurfaceCreateInfoKHR info = {};
info.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;

View File

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

View File

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

View File

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