This commit is contained in:
2026-03-06 16:34:45 -06:00
parent 9139c4350a
commit 93074d653e
27 changed files with 122 additions and 61 deletions

View File

@@ -52,13 +52,13 @@ project(${DUSK_LIBRARY_TARGET_NAME}
# Either, create library and binary separately (used for tests), or make them # Either, create library and binary separately (used for tests), or make them
# one in the same so all code is in the binary only. # one in the same so all code is in the binary only.
# Binary Executable
add_executable(${DUSK_BINARY_TARGET_NAME} ${DUSK_SOURCES_DIR}/dusk/null.c)
if(ENABLE_TESTS) if(ENABLE_TESTS)
# MainLibrary # MainLibrary
add_library(${DUSK_LIBRARY_TARGET_NAME} STATIC) add_library(${DUSK_LIBRARY_TARGET_NAME} STATIC)
# Binary Executable
add_executable(${DUSK_BINARY_TARGET_NAME} ${DUSK_SOURCES_DIR}/null.c)
# Link library to binary # Link library to binary
target_link_libraries(${DUSK_BINARY_TARGET_NAME} target_link_libraries(${DUSK_BINARY_TARGET_NAME}
PUBLIC PUBLIC
@@ -66,7 +66,6 @@ if(ENABLE_TESTS)
) )
else() else()
set(DUSK_LIBRARY_TARGET_NAME "${DUSK_BINARY_TARGET_NAME}" CACHE INTERNAL ${DUSK_CACHE_TARGET}) set(DUSK_LIBRARY_TARGET_NAME "${DUSK_BINARY_TARGET_NAME}" CACHE INTERNAL ${DUSK_CACHE_TARGET})
add_executable(${DUSK_BINARY_TARGET_NAME} ${DUSK_SOURCES_DIR}/null.c)
endif() endif()
# Definitions # Definitions

View File

@@ -7,9 +7,13 @@ add_subdirectory(dusk)
if(DUSK_TARGET_SYSTEM STREQUAL "linux") if(DUSK_TARGET_SYSTEM STREQUAL "linux")
add_subdirectory(dusklinux) add_subdirectory(dusklinux)
add_subdirectory(dusksdl2)
add_subdirectory(duskopengl)
elseif(DUSK_TARGET_SYSTEM STREQUAL "psp") elseif(DUSK_TARGET_SYSTEM STREQUAL "psp")
add_subdirectory(duskpsp) add_subdirectory(duskpsp)
add_subdirectory(dusksdl2)
add_subdirectory(duskopengl)
elseif(DUSK_TARGET_SYSTEM STREQUAL "gamecube" OR DUSK_TARGET_SYSTEM STREQUAL "wii") elseif(DUSK_TARGET_SYSTEM STREQUAL "gamecube" OR DUSK_TARGET_SYSTEM STREQUAL "wii")
add_subdirectory(duskdolphin) add_subdirectory(duskdolphin)

View File

@@ -1,22 +0,0 @@
/**
* Copyright (c) 2026 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "debug/debug.h"
/**
* Platform-specific debug print function for Dolphin.
*
* @param message The message format string.
* @param ... Additional arguments for the format string.
*/
void debugPrintDolphin(const char_t *message, ...);
/**
* Flushes the Dolphin debug output buffer.
*/
void debugFlushDolphin();

View File

@@ -1,17 +0,0 @@
/**
* Copyright (c) 2026 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "debug/debug.h"
/**
* Platform-specific debug print function for PSP.
*
* @param message The message format string.
* @param ... Additional arguments for the format string.
*/
void debugPrintPSP(const char_t *message, ...);

View File

@@ -17,7 +17,6 @@ target_sources(${DUSK_LIBRARY_TARGET_NAME}
add_subdirectory(camera) add_subdirectory(camera)
add_subdirectory(mesh) add_subdirectory(mesh)
add_subdirectory(texture) add_subdirectory(texture)
add_subdirectory(platform)
# Color definitions # Color definitions
dusk_run_python( dusk_run_python(

View File

@@ -10,19 +10,9 @@
#include "error/error.h" #include "error/error.h"
#include "display/camera/camera.h" #include "display/camera/camera.h"
#include "display/framebuffer.h" #include "display/framebuffer.h"
#if DISPLAY_SDL2 #include "display/displayplatform.h"
#include "display/platform/sdl2.h"
#elif DOLPHIN
#include "display/platform/dolphin.h"
#endif
typedef struct { typedef displayplatform_t display_t;
#if DISPLAY_SDL2
displaysdl2_t sdl2;
#elif DOLPHIN
displaydolphin_t dolphin;
#endif
} display_t;
extern display_t DISPLAY; extern display_t DISPLAY;

View File

@@ -2,3 +2,12 @@
# #
# This software is released under the MIT License. # This software is released under the MIT License.
# https://opensource.org/licenses/MIT # https://opensource.org/licenses/MIT
# Includes
target_include_directories(${DUSK_LIBRARY_TARGET_NAME}
PUBLIC
${CMAKE_CURRENT_LIST_DIR}
)
# Subdirs
add_subdirectory(debug)

View File

@@ -7,6 +7,5 @@
target_sources(${DUSK_LIBRARY_TARGET_NAME} target_sources(${DUSK_LIBRARY_TARGET_NAME}
PUBLIC PUBLIC
psp.c debug.c
dolphin.c
) )

View File

@@ -10,7 +10,7 @@
static char_t DEBUG_ERROR_BUFFER[16*1024] = {0}; static char_t DEBUG_ERROR_BUFFER[16*1024] = {0};
void debugPrintDolphin(const char_t *message, ...) { void debugPrint(const char_t *message, ...) {
// append to error buffer // append to error buffer
size_t start = strlen(DEBUG_ERROR_BUFFER); size_t start = strlen(DEBUG_ERROR_BUFFER);
va_list args; va_list args;
@@ -24,7 +24,7 @@ void debugPrintDolphin(const char_t *message, ...) {
va_end(args); va_end(args);
} }
void debugFlushDolphin() { void debugFlush() {
// Either create graphics, or hijack the displays' graphics. // Either create graphics, or hijack the displays' graphics.
void *xfb = NULL; void *xfb = NULL;
GXRModeObj *rmode = NULL; GXRModeObj *rmode = NULL;

View File

@@ -0,0 +1,9 @@
/**
* Copyright (c) 2026 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "display/displaysdl2.h"

View File

@@ -3,5 +3,11 @@
# This software is released under the MIT License. # This software is released under the MIT License.
# https://opensource.org/licenses/MIT # https://opensource.org/licenses/MIT
# Includes
target_include_directories(${DUSK_LIBRARY_TARGET_NAME}
PUBLIC
${CMAKE_CURRENT_LIST_DIR}
)
# Subdirs # Subdirs
add_subdirectory(debug) add_subdirectory(debug)

View File

@@ -6,3 +6,4 @@
*/ */
#pragma once #pragma once
#include "dusksdl2.h"

View File

@@ -0,0 +1,12 @@
# Copyright (c) 2026 Dominic Masters
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
# Includes
target_include_directories(${DUSK_LIBRARY_TARGET_NAME}
PUBLIC
${CMAKE_CURRENT_LIST_DIR}
)
# Subdirs

View File

@@ -0,0 +1,8 @@
/**
* Copyright (c) 2026 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once

View File

@@ -0,0 +1,13 @@
# Copyright (c) 2026 Dominic Masters
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
# Includes
target_include_directories(${DUSK_LIBRARY_TARGET_NAME}
PUBLIC
${CMAKE_CURRENT_LIST_DIR}
)
# Subdirs
add_subdirectory(debug)

View File

@@ -0,0 +1,11 @@
# Copyright (c) 2026 Dominic Masters
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
# Sources
target_sources(${DUSK_LIBRARY_TARGET_NAME}
PUBLIC
debug.c
)

View File

@@ -7,7 +7,7 @@
#include "psp.h" #include "psp.h"
void debugPrintPSP(const char_t *message, ...) { void debugPrint(const char_t *message, ...) {
FILE *file = fopen("ms0:/PSP/GAME/Dusk/debug.log", "a"); FILE *file = fopen("ms0:/PSP/GAME/Dusk/debug.log", "a");
if(!file) return; if(!file) return;
@@ -17,3 +17,7 @@ void debugPrintPSP(const char_t *message, ...) {
va_end(args); va_end(args);
fclose(file); fclose(file);
} }
void debugFlush() {
fflush(stdout);
}

View File

@@ -0,0 +1,12 @@
# Copyright (c) 2026 Dominic Masters
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
# Includes
target_include_directories(${DUSK_LIBRARY_TARGET_NAME}
PUBLIC
${CMAKE_CURRENT_LIST_DIR}
)
# Subdirs

View File

@@ -0,0 +1,15 @@
/**
* Copyright (c) 2026 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "dusk.h"
typedef struct {
SDL_Window *window;
SDL_GLContext glContext;
bool_t usingShaderedPalettes;
} displayplatform_t;

9
src/dusksdl2/dusksdl2.h Normal file
View File

@@ -0,0 +1,9 @@
/**
* Copyright (c) 2026 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "duskopengl.h"