get the metal loader to kinda work (does not load functions)
This commit is contained in:
@@ -3,19 +3,28 @@ project(Gryphn)
|
|||||||
|
|
||||||
add_compile_definitions(GN_REVEAL_IMPL)
|
add_compile_definitions(GN_REVEAL_IMPL)
|
||||||
|
|
||||||
add_subdirectory(projects/loader) # build gryphn loader
|
|
||||||
add_subdirectory(projects/core) # build gryphn core
|
|
||||||
add_subdirectory(projects/platform) # build gryphn platform
|
|
||||||
add_library(Gryphn INTERFACE)
|
add_library(Gryphn INTERFACE)
|
||||||
if (UNIX AND NOT APPLE)
|
if (UNIX AND NOT APPLE)
|
||||||
add_compile_definitions(GN_PLATFORM_LINUX GN_WINDOW_X11)
|
add_compile_definitions(
|
||||||
|
GN_PLATFORM_LINUX
|
||||||
|
GN_WINDOW_X11
|
||||||
|
|
||||||
|
GN_API_VULKAN
|
||||||
|
)
|
||||||
add_subdirectory(projects/apis/vulkan/)
|
add_subdirectory(projects/apis/vulkan/)
|
||||||
target_link_libraries(Gryphn INTERFACE GryphnVulkanImpl)
|
target_link_libraries(Gryphn INTERFACE GryphnVulkanImpl)
|
||||||
endif()
|
endif()
|
||||||
if (APPLE)
|
if (APPLE)
|
||||||
add_compile_definitions(GN_PLATFORM_MACOS GN_API_VULKAN GN_API_METAL)
|
add_compile_definitions(
|
||||||
|
GN_PLATFORM_MACOS
|
||||||
|
|
||||||
|
GN_API_VULKAN GN_API_METAL
|
||||||
|
)
|
||||||
add_subdirectory(projects/apis/vulkan/)
|
add_subdirectory(projects/apis/vulkan/)
|
||||||
add_subdirectory(projects/apis/metal/)
|
add_subdirectory(projects/apis/metal/)
|
||||||
target_link_libraries(Gryphn INTERFACE GryphnVulkanImpl GryphnMetalImpl)
|
target_link_libraries(Gryphn INTERFACE GryphnVulkanImpl GryphnMetalImpl)
|
||||||
endif()
|
endif()
|
||||||
|
add_subdirectory(projects/loader) # build gryphn loader
|
||||||
|
add_subdirectory(projects/core) # build gryphn core
|
||||||
|
add_subdirectory(projects/platform) # build gryphn platform
|
||||||
target_link_libraries(Gryphn INTERFACE GryphnCore GryphnLoader GryphnPlatform)
|
target_link_libraries(Gryphn INTERFACE GryphnCore GryphnLoader GryphnPlatform)
|
||||||
|
@@ -5,7 +5,10 @@ project(GryphnMetalImpl)
|
|||||||
file(GLOB_RECURSE SOURCE_FILES CONFIGURE_DEPENDS
|
file(GLOB_RECURSE SOURCE_FILES CONFIGURE_DEPENDS
|
||||||
"src/*.c" "src/*.h" "src/*.m"
|
"src/*.c" "src/*.h" "src/*.m"
|
||||||
)
|
)
|
||||||
add_library(GryphnMetalImpl STATIC ${SOURCE_FILES})
|
file(GLOB_RECURSE LOADER_FILES CONFIGURE_DEPENDS
|
||||||
|
"loader/*.m"
|
||||||
|
)
|
||||||
|
add_library(GryphnMetalImpl STATIC ${SOURCE_FILES} ${LOADER_FILES})
|
||||||
target_include_directories(GryphnMetalImpl PUBLIC
|
target_include_directories(GryphnMetalImpl PUBLIC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../../core/src/
|
${CMAKE_CURRENT_SOURCE_DIR}/../../core/src/
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/../../utils/
|
${CMAKE_CURRENT_SOURCE_DIR}/../../utils/
|
||||||
|
@@ -1,5 +1,10 @@
|
|||||||
#include "gryphn_loader.h"
|
#include "gryphn_loader.h"
|
||||||
|
#ifdef GN_API_VULKAN
|
||||||
#include <apis/vulkan/loader/vulkan_loader.h>
|
#include <apis/vulkan/loader/vulkan_loader.h>
|
||||||
|
#endif
|
||||||
|
#ifdef GN_API_METAL
|
||||||
|
#include <apis/metal/loader/metal_loader.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
gnInstanceFunctions loadInstanceFunctions(loaderInfo info) {
|
gnInstanceFunctions loadInstanceFunctions(loaderInfo info) {
|
||||||
switch (info.api) {
|
switch (info.api) {
|
||||||
@@ -10,7 +15,10 @@ gnInstanceFunctions loadInstanceFunctions(loaderInfo info) {
|
|||||||
case GN_RENDERINGAPI_DIRECTX11: return (gnInstanceFunctions){ NULL };
|
case GN_RENDERINGAPI_DIRECTX11: return (gnInstanceFunctions){ NULL };
|
||||||
case GN_RENDERINGAPI_DIRECTX12: return (gnInstanceFunctions){ NULL };
|
case GN_RENDERINGAPI_DIRECTX12: return (gnInstanceFunctions){ NULL };
|
||||||
case GN_RENDERINGAPI_OPENGL: return (gnInstanceFunctions){ NULL };
|
case GN_RENDERINGAPI_OPENGL: return (gnInstanceFunctions){ NULL };
|
||||||
case GN_RENDERINGAPI_METAL: return (gnInstanceFunctions){ NULL };
|
#ifdef GN_API_METAL
|
||||||
|
case GN_RENDERINGAPI_METAL: return loadMetalInstanceFunctions();
|
||||||
|
#endif
|
||||||
|
default: return (gnInstanceFunctions){NULL};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,7 +31,11 @@ gnDeviceFunctions loadDeviceFunctions(loaderInfo info) {
|
|||||||
case GN_RENDERINGAPI_DIRECTX11: return (gnDeviceFunctions){ NULL };
|
case GN_RENDERINGAPI_DIRECTX11: return (gnDeviceFunctions){ NULL };
|
||||||
case GN_RENDERINGAPI_DIRECTX12: return (gnDeviceFunctions){ NULL };
|
case GN_RENDERINGAPI_DIRECTX12: return (gnDeviceFunctions){ NULL };
|
||||||
case GN_RENDERINGAPI_OPENGL: return (gnDeviceFunctions){ NULL };
|
case GN_RENDERINGAPI_OPENGL: return (gnDeviceFunctions){ NULL };
|
||||||
case GN_RENDERINGAPI_METAL: return (gnDeviceFunctions){ NULL };
|
#ifdef GN_API_METAL
|
||||||
|
case GN_RENDERINGAPI_METAL: return loadMetalDeviceFunctions();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
default: return (gnDeviceFunctions){NULL};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -36,6 +48,10 @@ gnCommandFunctions loadCommandFunctions(loaderInfo info) {
|
|||||||
case GN_RENDERINGAPI_DIRECTX11: return (gnCommandFunctions){ NULL };
|
case GN_RENDERINGAPI_DIRECTX11: return (gnCommandFunctions){ NULL };
|
||||||
case GN_RENDERINGAPI_DIRECTX12: return (gnCommandFunctions){ NULL };
|
case GN_RENDERINGAPI_DIRECTX12: return (gnCommandFunctions){ NULL };
|
||||||
case GN_RENDERINGAPI_OPENGL: return (gnCommandFunctions){ NULL };
|
case GN_RENDERINGAPI_OPENGL: return (gnCommandFunctions){ NULL };
|
||||||
case GN_RENDERINGAPI_METAL: return (gnCommandFunctions){ NULL };
|
#ifdef GN_API_METAL
|
||||||
|
case GN_RENDERINGAPI_METAL: return loadMetalCommandFunctions();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
default: return (gnCommandFunctions){NULL};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user