recreate presentaion queue to work in C

This commit is contained in:
Greg Wells
2025-05-23 21:57:40 -04:00
parent b957956bbe
commit d1aee0d570
5 changed files with 29 additions and 31 deletions

View File

@@ -1,5 +1,5 @@
#pragma once
enum gnPresentationQueueState {
typedef enum gnPresentationQueueState_e {
GN_OUT_OF_DATE, GN_SUBOPTIMAL, GN_VALID
};
} gnPresentationQueueState;

View File

@@ -1,7 +1,7 @@
#pragma once
#include <gryphn/gryphn_utils.h>
struct gnPresentationDetails {
typedef struct gnPresentationDetails_t {
gnUInt ImageCount;
gnUInt2 ImageSize;
};
} gnPresentationDetails;

View File

@@ -0,0 +1,6 @@
#include "gryphn_presentation_queue.h"
// gnTexture* gnGetPresentationQueueImage(gnPresentationQueue& presentationQueue, int index) {
// // if (index < gnListLength(presentationQueue.images))
// return gnListGetPtr(presentationQueue.images, index); // zero fucking error checking in this file, im not doing that shit
// }

View File

@@ -1,6 +0,0 @@
#include "gryphn_presentation_queue.h"
gnTexture* gnGetPresentationQueueImage(gnPresentationQueue& presentationQueue, int index) {
// if (index < gnListLength(presentationQueue.images))
return gnListGetPtr(presentationQueue.images, index); // zero fucking error checking in this file, im not doing that shit
}

View File

@@ -2,30 +2,28 @@
#include <gryphn/gryphn_utils.h>
#include "gryphn_presentation_details.h"
#include "core/output_device/gryphn_output_device.h"
#include "core/sync_objects/gryphn_sync_semaphore.h"
// #include "core/sync_objects/gryphn_sync_semaphore.h"
#include "gryphn_present_queue_state.h"
#include "core/textures/gryphn_texture.h"
#include "gryphn_device_presentation_details.h"
// #include "core/textures/gryphn_texture.h"
// #include "gryphn_device_presentation_details.h"
struct gnPlatformPresentationQueue;
struct gnPlatformPresentationQueue_t;
struct gnPresentationQueue {
ACCESS_LEVEL:
gnPlatformPresentationQueue* presentationQueue;
bool valid = false;
gnList<gnTexture> images = gnCreateList<gnTexture>();
public:
gnPresentationQueue() {}
};
typedef struct gnPresentationQueue_t {
struct gnPlatformPresentationQueue* presentationQueue;
gnBool valid;
// uint32_t textureCount;
// gnTexture* texturs;
} gnPresentationQueue;
gnTexture* gnGetPresentationQueueImage(gnPresentationQueue& presentationQueue, int index);
// gnTexture* gnGetPresentationQueueImage(gnPresentationQueue& presentationQueue, int index);
inline gnReturnCode (*gnCreatePresentationQueue)(gnPresentationQueue* presentationQueue, const gnOutputDevice& device, gnPresentationDetails& details);
inline void (*gnDestroyPresentationQueue)(gnPresentationQueue& queue);
inline gnImageFormat (*_gnPresentationQueueGetImageFormat)(gnPresentationQueue& presentationQueue);
inline gnImageFormat gnPresentationQueueGetImageFormat(gnPresentationQueue& presentationQueue) {
// inline gnReturnCode (*gnCreatePresentationQueue)(gnPresentationQueue* presentationQueue, const gnOutputDevice& device, gnPresentationDetails& details);
// inline void (*gnDestroyPresentationQueue)(gnPresentationQueue& queue);
// inline gnImageFormat (*_gnPresentationQueueGetImageFormat)(gnPresentationQueue& presentationQueue);
// inline gnImageFormat gnPresentationQueueGetImageFormat(gnPresentationQueue& presentationQueue) {
// std::cout << "gnPresentationQueueGetImageFormat should lowkey become supported\n";
return _gnPresentationQueueGetImageFormat(presentationQueue);
}
inline gnPresentationQueueState (*gnPresentationQueueGetState)(gnPresentationQueue& presentationQueue);
inline gnReturnCode (*gnPresentationQueueGetNextImageAsync)(gnPresentationQueue& presentationQueue, const gnSyncSemaphore& semaphore, gnUInt* imageIndex);
// return _gnPresentationQueueGetImageFormat(presentationQueue);
// }
// inline gnPresentationQueueState (*gnPresentationQueueGetState)(gnPresentationQueue& presentationQueue);
// inline gnReturnCode (*gnPresentationQueueGetNextImageAsync)(gnPresentationQueue& presentationQueue, const gnSyncSemaphore& semaphore, gnUInt* imageIndex);