re implement debugger in C
This commit is contained in:
@@ -1,17 +1,11 @@
|
||||
#undef GN_UTILS_CPP
|
||||
#include "gryphn_debugger.h"
|
||||
#include "core/gryphn_platform_functions.h"
|
||||
#include "stdio.h"
|
||||
|
||||
static gnReturnCode (*_gnCreateDebugger)(gnDebugger* debugger, const struct gnDebuggerInfo_t info);
|
||||
static void (*_gnDestroyDebugger)(gnDebugger* debugger);
|
||||
|
||||
void gn_load_functions() {
|
||||
|
||||
gnReturnCode gnCreateDebugger(gnDebugger* debugger, gnInstance* instance, const struct gnDebuggerInfo_t info) {
|
||||
debugger->instance = instance;
|
||||
return instance->functions->_gnCreateDebugger(debugger, instance, info);
|
||||
}
|
||||
void gnDestroyDebugger(gnDebugger* debugger) {
|
||||
debugger->instance->functions->_gnDestroyDebugger(debugger);
|
||||
}
|
||||
|
||||
// void gnAddDebugLayer(gnDebugger& debugger, const gnString& layer) {
|
||||
// gnListAdd(debugger.debug_layers, layer);
|
||||
// }
|
||||
|
||||
// const gnList<gnString>& gnDebuggerGetDebugLayers(gnDebugger& debugger) {
|
||||
// return debugger.debug_layers;
|
||||
// }
|
||||
|
@@ -1,17 +1,53 @@
|
||||
#pragma once
|
||||
#include "utils/strings/gryphn_string.h"
|
||||
#include "utils/gryphn_error_code.h"
|
||||
#include "core/instance/gryphn_instance.h"
|
||||
|
||||
struct gnPlatformDebugger;
|
||||
|
||||
typedef enum gnMessageSeverity_e {
|
||||
GN_MESSAGE_VERBOSE = 0x00000001,
|
||||
GN_MESSAGE_INFO = 0x00000010,
|
||||
GN_MESSAGE_WARNING = 0x00000100,
|
||||
GN_MESSAGE_ERROR = 0x00001000,
|
||||
} gnMessageSeverity;
|
||||
|
||||
typedef enum gnMessageType_e {
|
||||
GN_DEBUG_MESSAGE_GENERAL = 0x00000001,
|
||||
GN_DEBUG_MESSAGE_VALIDATION = 0x00000002,
|
||||
GN_DEBUG_MESSAGE_PERFORMANCE = 0x00000004,
|
||||
// GN_DEBUG_MESSAGE_ADDRESS_BINDING = 0x00000008, vulkan had this but imma leave it out
|
||||
} gnMessageType;
|
||||
|
||||
typedef struct gnMessageData {
|
||||
// const char* pMessageIdName;
|
||||
// int32_t messageIdNumber;
|
||||
// uint32_t queueLabelCount;
|
||||
// const VkDebugUtilsLabelEXT* pQueueLabels;
|
||||
// uint32_t cmdBufLabelCount;
|
||||
// const VkDebugUtilsLabelEXT* pCmdBufLabels;
|
||||
// uint32_t objectCount;
|
||||
// const VkDebugUtilsObjectNameInfoEXT* pObjects;
|
||||
//
|
||||
// If i ever figure out what this shit does il add it
|
||||
gnString message;
|
||||
} gnMessageData;
|
||||
|
||||
typedef gnBool (*gnDebuggerCallback)(
|
||||
gnMessageSeverity messageSeverity,
|
||||
gnMessageType messageType,
|
||||
gnMessageData messageData,
|
||||
void* userData);
|
||||
|
||||
typedef struct gnDebuggerInfo_t {
|
||||
int layerCount;
|
||||
gnString* layerNames;
|
||||
gnDebuggerCallback callback;
|
||||
void* userData;
|
||||
} gnDebuggerInfo;
|
||||
|
||||
typedef struct gnDebugger_t {
|
||||
struct gnPlatformDebugger* debugger;
|
||||
gnInstance* instance;
|
||||
} gnDebugger;
|
||||
|
||||
gnReturnCode gnCreateDebugger(gnDebugger* debugger, const struct gnDebuggerInfo_t info);
|
||||
gnReturnCode gnDestroyDebugger(gnDebugger* debugger);
|
||||
gnReturnCode gnCreateDebugger(gnDebugger* debugger, gnInstance* instance, const struct gnDebuggerInfo_t info);
|
||||
void gnDestroyDebugger(gnDebugger* debugger);
|
||||
|
Reference in New Issue
Block a user