create basic OpenGL stuff

This commit is contained in:
Gregory Wells
2025-07-09 21:07:42 -04:00
parent 7d22da040a
commit e1823bc3dd
6 changed files with 70 additions and 2 deletions

View File

@@ -0,0 +1,23 @@
set(CMAKE_EXPORT_COMPILE_COMMANDS on)
set(CMAKE_CXX_STANDARD 17)
project(GryphnOpenGLImpl)
file(GLOB_RECURSE SOURCE_FILES CONFIGURE_DEPENDS
"src/*.c"
)
file(GLOB_RECURSE LOADER_FILES CONFIGURE_DEPENDS
"loader/*.c"
)
add_library(GryphnOpenGLImpl STATIC ${SOURCE_FILES} ${LOADER_FILES})
target_include_directories(GryphnOpenGLImpl PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/src/
${CMAKE_CURRENT_SOURCE_DIR}/../../core/src/
${CMAKE_CURRENT_SOURCE_DIR}/../../core/
${CMAKE_CURRENT_SOURCE_DIR}/../../extensions/
${CMAKE_CURRENT_SOURCE_DIR}/../../utils/
${CMAKE_CURRENT_SOURCE_DIR}/../../platform/
${CMAKE_CURRENT_SOURCE_DIR}/../../
${CMAKE_CURRENT_SOURCE_DIR}/../../../include/
)
add_compile_definitions(GN_REVEAL_IMPL)
target_link_libraries(GryphnOpenGLImpl GL)

View File

@@ -0,0 +1,16 @@
#include "opengl_loader.h"
#include "instance/opengl_instance.h"
gnInstanceFunctions loadOpenGLInstanceFunctions() {
return (gnInstanceFunctions){
._gnCreateInstance = createOpenGLInstance,
._gnDestroyInstance = destroyOpenGLInstance,
// ._gnGetPhysicalDevices = getMetalDevices,
// ._gnQueueCanPresentToSurface = metalCanQueuePresentToSurface,
// ._gnCreateOutputDevice = createMetalOutputDevice,
// ._gnDestroyOutputDevice = destroyMetalOutputDevice,
// ._gnCreateMacOSWindowSurface = createMetalSurface,
// ._gnDestroyWindowSurface = destroyMetalWindowSurface,
// ._gnGetSurfaceDetails = getMetalSurfaceDetails
};
}

View File

@@ -0,0 +1,8 @@
#pragma once
#include "loader/src/gryphn_instance_functions.h"
#include "loader/src/gryphn_device_functions.h"
#include "loader/src/gryphn_command_functions.h"
gnInstanceFunctions loadOpenGLInstanceFunctions();
gnDeviceFunctions loadOpenGLDeviceFunctions();
gnCommandFunctions loadOpenGLCommandFunctions();

View File

@@ -0,0 +1,8 @@
#include "opengl_instance.h"
gnReturnCode createOpenGLInstance(gnInstanceHandle instance, gnInstanceInfo instanceInfo) {
return GN_SUCCESS;
}
void destroyOpenGLInstance(gnInstanceHandle instance) {
}

View File

@@ -0,0 +1,8 @@
#pragma once
#include <GL/gl.h>
#include "instance/gryphn_instance.h"
typedef struct gnPlatformInstance_t {} gnPlatformInstance;
gnReturnCode createOpenGLInstance(gnInstanceHandle instance, gnInstanceInfo instanceInfo);
void destroyOpenGLInstance(gnInstanceHandle instance);