get OpenGL to work

This commit is contained in:
Gregory Wells
2025-08-05 09:12:12 -04:00
parent 2fddf0e9d9
commit dd5f1485d9
13 changed files with 56 additions and 34 deletions

View File

@@ -1,5 +1,5 @@
#include "opengl_output_device.h"
gnReturnCode createOpenGLOutputDevice(gnOutputDeviceHandle outputDevice, gnInstanceHandle instance, gnOutputDeviceInfo deviceInfo) { return GN_SUCCESS; }
gnReturnCode createOpenGLOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device, gnOutputDeviceInfo deviceInfo) { return GN_SUCCESS; }
void waitForOpenGLDevice(const gnOutputDeviceHandle device) {}
void destroyOpenGLOutputDevice(gnOutputDeviceHandle device) {}

View File

@@ -3,6 +3,6 @@
typedef struct gnPlatformOutputDevice_t {} gnPlatformOutputDevice;
gnReturnCode createOpenGLOutputDevice(gnOutputDeviceHandle outputDevice, gnInstanceHandle instance, gnOutputDeviceInfo deviceInfo);
gnReturnCode createOpenGLOutputDevice(gnInstanceHandle instance, gnOutputDeviceHandle device, gnOutputDeviceInfo deviceInfo);
void waitForOpenGLDevice(const gnOutputDeviceHandle device);
void destroyOpenGLOutputDevice(gnOutputDeviceHandle device);

View File

@@ -1,11 +1,12 @@
#include "opengl_physical_device.h"
#include "stdlib.h"
gnPhysicalDevice* getOpenGLDevice(gnInstanceHandle instance, uint32_t* deviceCount) {
*deviceCount = 1;
gnPhysicalDevice* devices = malloc(sizeof(gnPhysicalDevice));
gnPhysicalDevice device = {
devices[0] = malloc(sizeof(struct gnPhysicalOutputDevice_t));
*devices[0] = (struct gnPhysicalOutputDevice_t){
.physicalDevice = malloc(sizeof(gnPlatformPhysicalDevice)),
.features = {
.maxColorSamples = GN_SAMPLE_BIT_1,
@@ -16,20 +17,10 @@ gnPhysicalDevice* getOpenGLDevice(gnInstanceHandle instance, uint32_t* deviceCou
.properties = {
.deviceType = GN_DEDICATED_DEVICE,
.name = gnCreateString("Generic OpenGL device")
},
.queueProperties = {
.queueCount = 1,
.queueProperties = (gnQueueProperties[1]){
(gnQueueProperties){
.queueCount = 1,
.queueType = GN_QUEUE_GRAPHICS
}
}
}
};
devices[0] = device;
return devices;
}
gnBool openGLQueueCanPresent(const gnPhysicalDevice device, uint32_t queueIndex, gnWindowSurfaceHandle windowSurface) {
return gnTrue;
gnBool openglCanDevicePresent(gnPhysicalDevice device, gnWindowSurfaceHandle windowSurface) {
return GN_TRUE;
}

View File

@@ -5,4 +5,4 @@
typedef struct gnPlatformPhysicalDevice_t {} gnPlatformPhysicalDevice;
gnPhysicalDevice* getOpenGLDevice(gnInstanceHandle instance, uint32_t* deviceCount);
gnBool openGLQueueCanPresent(const gnPhysicalDevice device, uint32_t queueIndex, gnWindowSurfaceHandle windowSurface);
gnBool openglCanDevicePresent(gnPhysicalDevice device, gnWindowSurfaceHandle windowSurface);