From 367c78608919ee4972753ea9727e84c725726b01 Mon Sep 17 00:00:00 2001 From: wowvain-dev Date: Sun, 24 Mar 2024 22:59:11 +0200 Subject: [PATCH] Added base implementation of the Linux platform layer. Modified a bit of the logging structure. --- Sandbox/main.cpp | 13 + Vane/Core/Logger.cpp | 4 +- Vane/Core/Logger.h | 51 ++-- Vane/Makefile | 8 +- Vane/Platform/Platform.h | 29 +- Vane/Platform/Platform_Linux.cpp | 247 ++++++++++++++-- Vane/Platform/Platform_Linux.h | 61 ++++ .../{Platform_Win32.cpp => Platform_Win32.h} | 0 Vane/premake5.lua | 7 + build-objs/dbg-linux-x64/Sandbox/main.d | 42 ++- build-objs/dbg-linux-x64/Sandbox/main.o | Bin 1600 -> 38472 bytes build-objs/dbg-linux-x64/Vane/Logger.o | Bin 33544 -> 147424 bytes .../dbg-linux-x64/Vane/Platform_Linux.d | 263 +++++++++++++++++- .../dbg-linux-x64/Vane/Platform_Linux.o | Bin 5880 -> 97136 bytes .../dbg-linux-x64/Vane/Platform_Win32.d | 43 --- .../dbg-linux-x64/Vane/Platform_Win32.o | Bin 5696 -> 0 bytes build-objs/dbg-linux-x64/Vane/entry.o | Bin 1968 -> 29176 bytes build-objs/dbg-linux-x64/VaneEditor/main.o | Bin 59472 -> 59424 bytes build-objs/dbg-linux-x64/VaneEditor/window.o | Bin 952 -> 1344 bytes 19 files changed, 643 insertions(+), 125 deletions(-) create mode 100644 Vane/Platform/Platform_Linux.h rename Vane/Platform/{Platform_Win32.cpp => Platform_Win32.h} (100%) delete mode 100644 build-objs/dbg-linux-x64/Vane/Platform_Win32.d delete mode 100644 build-objs/dbg-linux-x64/Vane/Platform_Win32.o diff --git a/Sandbox/main.cpp b/Sandbox/main.cpp index ad66134..097019c 100755 --- a/Sandbox/main.cpp +++ b/Sandbox/main.cpp @@ -11,6 +11,19 @@ #include #include +#include +#include int main(int argc, char** argv) { + Vane::LinuxPlatform platform; + if (platform.startup("Vane Engine Sandbox", 100, 100, 1280, 720)) { + while (true) { + platform.consoleWrite("test\n", Vane::LOG_LEVEL::V_FATAL); + platform.pumpMessages(); + } + } + + platform.shutdown(); + + return 0; } diff --git a/Vane/Core/Logger.cpp b/Vane/Core/Logger.cpp index 60abdc9..4248116 100755 --- a/Vane/Core/Logger.cpp +++ b/Vane/Core/Logger.cpp @@ -14,7 +14,7 @@ namespace Vane { void reportAssertionFailure(const char* expression, const char* message, const char* file, i32 line) { - Logger::log_output(Logger::LOG_LEVEL_FATAL, "Assertion Failure: %s, message: '%s', in file: %s, line: %d\n", + Logger::log_output(LOG_LEVEL::V_FATAL, "Assertion Failure: %s, message: '%s', in file: %s, line: %d\n", expression, message, file, @@ -28,7 +28,7 @@ namespace Vane { std::string file, i32 line ) { - Logger::log_output(Logger::LOG_LEVEL_FATAL, "Assertion Failure: %s, message: '%s', in file: %s, line: %d\n", + Logger::log_output(LOG_LEVEL::V_FATAL, "Assertion Failure: %s, message: '%s', in file: %s, line: %d\n", expression, message, file, diff --git a/Vane/Core/Logger.h b/Vane/Core/Logger.h index 6e83a30..ff89e93 100755 --- a/Vane/Core/Logger.h +++ b/Vane/Core/Logger.h @@ -19,28 +19,25 @@ #define LOG_DEBUG_ENABLED 1 #define LOG_TRACE_ENABLED 1 -#define RESET_COLOR "\x1B[0m" -#define INFO_COLOR "\x1B[1;34m" -#define DEBUG_COLOR "\x1B[1;30m" -#define WARNING_COLOR "\x1B[1;33m" -#define ERROR_COLOR "\x1B[31m" #ifdef RELEASE #define LOG_DEBUG_ENABLED 0 #define LOG_TRACE_ENABLED 0 #endif + namespace Vane { + enum LOG_LEVEL { + V_FATAL = 0, + V_ERROR = 1, + V_WARN = 2, + V_INFO = 3, + V_DEBUG = 4, + V_TRACE = 5 + }; + class VAPI Logger { public: - enum LOG_LEVEL { - LOG_LEVEL_FATAL = 0, - LOG_LEVEL_ERROR = 1, - LOG_LEVEL_WARN = 2, - LOG_LEVEL_INFO = 3, - LOG_LEVEL_DEBUG = 4, - LOG_LEVEL_TRACE = 5 - }; private: public: @@ -51,50 +48,50 @@ namespace Vane { template static void log_output(LOG_LEVEL level, const char *message, Args... args) { std::tuple level_strings[6] = { - std::make_tuple("[FATAL]: ", ERROR_COLOR), - std::make_tuple("[ERROR]: ", ERROR_COLOR), - std::make_tuple("[WARN]: ", WARNING_COLOR), - std::make_tuple("[INFO]: ", INFO_COLOR), - std::make_tuple("[DEBUG]: ", DEBUG_COLOR), - std::make_tuple("[TRACE]: ", DEBUG_COLOR) + std::make_tuple("[FATAL]: ", "0;41"), + std::make_tuple("[ERROR]: ", "1;31"), + std::make_tuple("[WARN]: ", "1;33"), + std::make_tuple("[INFO]: ", "1;32"), + std::make_tuple("[DEBUG]: ", "1;34"), + std::make_tuple("[TRACE]: ", "1:30") }; bool is_error = level < 2; - printf("%s%s - ", + printf("\033[%sm%s - ", std::get<1>(level_strings[level]), std::get<0>(level_strings[level])); printf(message, args...); - printf("%s\n", RESET_COLOR); + printf("\033[0m\n"); } }; #ifndef VFATAL -#define VFATAL(message, ...) Vane::Logger::log_output(Vane::Logger::LOG_LEVEL::LOG_LEVEL_FATAL, message, ##__VA_ARGS__); +#define VFATAL(message, ...) Vane::Logger::log_output(Vane::LOG_LEVEL::V_FATAL, message, ##__VA_ARGS__); #endif #ifndef VERROR -#define VERROR(message, ...) Vane::Logger::log_output(Vane::Logger::LOG_LEVEL::LOG_LEVEL_ERROR, message, ##__VA_ARGS__); +#define VERROR(message, ...) Vane::Logger::log_output(Vane::LOG_LEVEL::V_ERROR, message, ##__VA_ARGS__); #endif #if LOG_WARN_ENABLED == 1 -#define VWARN(message, ...) Vane::Logger::log_output(Vane::Logger::LOG_LEVEL::LOG_LEVEL_WARN, message, ##__VA_ARGS__); +#define VWARN(message, ...) Vane::Logger::log_output(Vane::LOG_LEVEL::V_WARN, message, ##__VA_ARGS__); #else #define VWARN(message, ...) #endif #if LOG_INFO_ENABLED == 1 -#define VINFO(message, ...) Vane::Logger::log_output(Vane::Logger::LOG_LEVEL::LOG_LEVEL_INFO, message, ##__VA_ARGS__); +#define VINFO(message, ...) Vane::Logger::log_output(Vane::LOG_LEVEL::V_INFO, message, ##__VA_ARGS__); #else #define VINFO(message, ...) #endif #if LOG_DEBUG_ENABLED == 1 -#define VDEBUG(message, ...) Vane::Logger::log_output(Vane::Logger::LOG_LEVEL::LOG_LEVEL_DEBUG, message, ##__VA_ARGS__); +#define VDEBUG(message, ...) Vane::Logger::log_output(Vane::LOG_LEVEL::V_DEBUG, message, ##__VA_ARGS__); #else #define VDEBUG(message, ...) #endif #if LOG_TRACE_ENABLED == 1 -#define VTRACE(message, ...) Vane::Logger::log_output(Vane::Logger::LOG_LEVEL::LOG_LEVEL_TRACE, message, ##__VA_ARGS__); +#define VTRACE(message, ...) Vane::Logger::log_output(Vane::LOG_LEVEL::V_TRACE, message, ##__VA_ARGS__); #else #define VTRACE(message, ...) #endif diff --git a/Vane/Makefile b/Vane/Makefile index 2ea1aa2..80c1cd3 100755 --- a/Vane/Makefile +++ b/Vane/Makefile @@ -22,7 +22,7 @@ ifeq ($(config),dbg) ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m64 -fPIC -g ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -m64 -fPIC -g -std=c++20 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - LIBS += -Wl,-Bstatic -lSDL2 -lSDL2main -Wl,-Bdynamic -lvulkan -lfmt + LIBS += -Wl,-Bstatic -lSDL2 -lSDL2main -Wl,-Bdynamic -lvulkan -lfmt -lX11 -lxcb -lX11-xcb LDDEPS += ALL_LDFLAGS += $(LDFLAGS) -L../vendor/x64-linux/lib -L../../../../vulkan/1.3.280.0/x86_64/lib -L/usr/lib64 -m64 -shared -Wl,-soname=libVane.so LINKCMD = $(CXX) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS) @@ -49,7 +49,7 @@ ifeq ($(config),rel) ALL_CFLAGS += $(CFLAGS) $(ALL_CPPFLAGS) -m64 -O2 -fPIC ALL_CXXFLAGS += $(CXXFLAGS) $(ALL_CPPFLAGS) -m64 -O2 -fPIC -std=c++20 ALL_RESFLAGS += $(RESFLAGS) $(DEFINES) $(INCLUDES) - LIBS += -Wl,-Bstatic -lSDL2 -lSDL2main -Wl,-Bdynamic -lvulkan -lfmt + LIBS += -Wl,-Bstatic -lSDL2 -lSDL2main -Wl,-Bdynamic -lvulkan -lfmt -lX11 -lxcb -lX11-xcb LDDEPS += ALL_LDFLAGS += $(LDFLAGS) -L../vendor/x64-linux/lib -L../../../../vulkan/1.3.280.0/x86_64/lib -L/usr/lib64 -m64 -shared -Wl,-soname=libVane.so -s LINKCMD = $(CXX) -o "$@" $(OBJECTS) $(RESOURCES) $(ALL_LDFLAGS) $(LIBS) @@ -67,7 +67,6 @@ endif OBJECTS := \ $(OBJDIR)/Logger.o \ $(OBJDIR)/Platform_Linux.o \ - $(OBJDIR)/Platform_Win32.o \ $(OBJDIR)/entry.o \ RESOURCES := \ @@ -133,9 +132,6 @@ $(OBJDIR)/Logger.o: Core/Logger.cpp $(OBJDIR)/Platform_Linux.o: Platform/Platform_Linux.cpp @echo $(notdir $<) $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<" -$(OBJDIR)/Platform_Win32.o: Platform/Platform_Win32.cpp - @echo $(notdir $<) - $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<" $(OBJDIR)/entry.o: entry.cpp @echo $(notdir $<) $(SILENT) $(CXX) $(ALL_CXXFLAGS) $(FORCE_INCLUDE) -o "$@" -MF "$(@:%.o=%.d)" -c "$<" diff --git a/Vane/Platform/Platform.h b/Vane/Platform/Platform.h index 084574b..a237335 100644 --- a/Vane/Platform/Platform.h +++ b/Vane/Platform/Platform.h @@ -13,25 +13,22 @@ class Platform { i32 y, i32 width, i32 height - ); + ) = 0; - virtual void shutdown(); + virtual void shutdown() = 0; - virtual bool pumpMessages(); + virtual bool pumpMessages() = 0; - virtual void* allocate(u64 size, bool aligned); - virtual void free(); - virtual void* zeroMemory(void* block, u64 size); - virtual void* copyMemory(void* dest, const void* source, u64 size); - virtual void* setMemory(void* dest, i32 value, u64 size); - - virtual void* consoleWrite(const char* message, u8 color); - virtual void* consoleWriteError(const char* message, u8 color); - - virtual f64 getAbsoluteTime(); - - virtual void sleep(); + virtual void* allocate(std::size_t size, bool aligned) = 0; + virtual void free(void*, std::size_t) = 0; + virtual void* zeroMemory(void* block, std::size_t size) = 0; + virtual void* copyMemory(void* dest, const void* source, std::size_t size) = 0; + virtual void* setMemory(void* dest, i32 value, std::size_t size) = 0; + virtual void consoleWrite(const char* message, u8 color) = 0; + virtual void consoleWriteError(const char* message, u8 color) = 0; + virtual f64 getAbsoluteTime() = 0; + virtual void sleep(u64) = 0; }; -} +}; diff --git a/Vane/Platform/Platform_Linux.cpp b/Vane/Platform/Platform_Linux.cpp index a62b7b7..e7a4990 100644 --- a/Vane/Platform/Platform_Linux.cpp +++ b/Vane/Platform/Platform_Linux.cpp @@ -1,25 +1,236 @@ -#include "../Core/Defines.h" -#include "Platform.h" +#include "Platform_Linux.h" -#ifdef VPLATFORM_LINUX +#ifdef VPLATFORM_LINUX -#include -// #include -#include -#include -#include -#include +using namespace Vane; -// TODO(wowvain-dev): decide whether to continue with X11 or -// use SDL2 cross platform +bool LinuxPlatform::startup( + const char* application_name, + i32 x, + i32 y, + i32 width, + i32 height +) { + // Connecting to X + display = XOpenDisplay(NULL); + // Turn off key repeats + XAutoRepeatOff(display); -namespace Vane { - class LinuxPlatform : public Platform { - Display *display; - xcb_connection_t *connection; - xcb_window_t window; - xcb_screen_t *screen; - }; + + connection = XGetXCBConnection(display); + + if (xcb_connection_has_error(connection)) { + VFATAL("Failed to form connection via XCB."); + return false; + } + + const auto setup = xcb_get_setup(connection); + int screen_p = 0; + auto it = xcb_setup_roots_iterator(setup); + for (i32 s = screen_p; s > 0; s--) { + xcb_screen_next(&it); + } + + screen = it.data; + window = xcb_generate_id(connection); + + // Register event types. + // XCB_CW_BACK_PIXEL = filling then window bg with a single color + // XCB_CW_EVENT_MASK is required. + u32 event_mask = XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK; + + u32 event_values = XCB_EVENT_MASK_BUTTON_PRESS | XCB_EVENT_MASK_BUTTON_RELEASE | + XCB_EVENT_MASK_KEY_PRESS | XCB_EVENT_MASK_KEY_RELEASE | + XCB_EVENT_MASK_EXPOSURE | XCB_EVENT_MASK_POINTER_MOTION | + XCB_EVENT_MASK_STRUCTURE_NOTIFY; + + u32 value_list[] = {screen->black_pixel, event_values}; + + auto cookie = xcb_create_window( + connection, + XCB_COPY_FROM_PARENT, + window, + screen->root, + x, + y, + width, + height, + 0, + XCB_WINDOW_CLASS_INPUT_OUTPUT, + screen->root_visual, + event_mask, + value_list + ); + + xcb_change_property( + connection, + XCB_PROP_MODE_REPLACE, + window, + XCB_ATOM_WM_NAME, + XCB_ATOM_STRING, + 8, + std::string_view(application_name).length(), + application_name + ); + + auto wm_delete_cookie = xcb_intern_atom( + connection, + 0, + std::string_view("WM_DELETE_WINDOW").length(), + "WM_DELETE_WINDOW" + ); + + auto wm_protocols_cookie = xcb_intern_atom( + connection, + 0, + std::string_view("WM_PROTOCOLS").length(), + "WM_PROTOCOLS" + ); + + auto wm_delete_reply = xcb_intern_atom_reply( + connection, + wm_delete_cookie, + nullptr + ); + + auto wm_protocols_reply = xcb_intern_atom_reply( + connection, + wm_protocols_cookie, + nullptr + ); + + wm_delete_win = wm_delete_reply->atom; + wm_protocols = wm_protocols_reply->atom; + + xcb_change_property( + connection, + XCB_PROP_MODE_REPLACE, + window, + wm_protocols_reply->atom, + 4, + 32, + 1, + &wm_delete_reply->atom + ); + + xcb_map_window(connection, window); + + i32 stream_result = xcb_flush(connection); + + if (stream_result <= 0) { + VFATAL("An error occured when flushing the stream: %d", stream_result); + return false; + } + + return true; } +void LinuxPlatform::shutdown() { + XAutoRepeatOn(display); + + xcb_destroy_window(connection, window); +} + +bool LinuxPlatform::pumpMessages() { + xcb_generic_event_t *event; + xcb_client_message_event_t *cm; + + bool quitFlagged = false; + + while (event != 0) { + event = xcb_poll_for_event(connection); + if (event == 0) { + break; + } + + switch (event->response_type & ~0x80) { + case XCB_KEY_PRESS: + case XCB_KEY_RELEASE: { + // Key presses and releases + } break; + + case XCB_BUTTON_PRESS: + case XCB_BUTTON_RELEASE: { + // Mouse button presses and releases + } + case XCB_MOTION_NOTIFY: + // mouse movement + break; + + case XCB_CONFIGURE_NOTIFY: { + + } + + case XCB_CLIENT_MESSAGE: { + cm = (xcb_client_message_event_t*) event; + + // Window close + if (cm->data.data32[0] == wm_delete_win) { + quitFlagged = true; + } + } break; + + default: { + // Something else + break; + } + } + + delete event; + } + return !quitFlagged; +} + +void* LinuxPlatform::allocate(std::size_t size, bool aligned) { + return ::operator new(size); +} + +void LinuxPlatform::free(void* block, std::size_t size) { + ::operator delete(block); +} + +void* LinuxPlatform::zeroMemory(void* block, std::size_t size) { + return std::memset(block, 0, size); +} + +void* LinuxPlatform::copyMemory(void* dest, const void* source, std::size_t size) { + return std::memcpy(dest, source, size); +} + +void* LinuxPlatform::setMemory(void* dest, i32 value, std::size_t size) { + return std::memset(dest, value, size); +} + +void LinuxPlatform::consoleWrite(const char* message, u8 color) { + // FATAL, ERROR, WARN, INFO, DEBUG, TRACE + const char* color_strings[] = {"0;41", "1;31", "1;33", "1;32", "1;34", "1;30"}; + printf("\033[%sm%s\033[0m", color_strings[color], message); +} + +void LinuxPlatform::consoleWriteError(const char* message, u8 color) { + // FATAL, ERROR, WARN, INFO, DEBUG, TRACE + const char* color_strings[] = {"0;41", "1;31", "1;33", "1;32", "1;34", "1;30"}; + printf("\033[%sm%s\033[0m", color_strings[color], message); +} + +f64 LinuxPlatform::getAbsoluteTime() { + timespec now; + clock_gettime(CLOCK_MONOTONIC, &now); + return now.tv_sec + now.tv_nsec * 0.000000001; +} + +void LinuxPlatform::sleep(u64 ms) { +#if _POSIX_C_SOURCE >= 199309L + timespec ts; + ts.tv_sec = ms / 1000; + ts.tv_nsec = (ms % 1000) * 1000 * 1000; + nanosleep(&ts, 0); +#else + if (ms >= 1000) { + sleep(ms / 1000); + } + usleep((ms % 1000) * 1000); +#endif +} + #endif \ No newline at end of file diff --git a/Vane/Platform/Platform_Linux.h b/Vane/Platform/Platform_Linux.h new file mode 100644 index 0000000..bcc2019 --- /dev/null +++ b/Vane/Platform/Platform_Linux.h @@ -0,0 +1,61 @@ +#include "Platform.h" + +#ifdef VPLATFORM_LINUX + +#include "../Core/Defines.h" +#include "../Core/Logger.h" + +#include +// #include +#include +#include +#include +#include + +#if _POSIX_C_SOURCE >= 199309L +#include +#else +#include +#endif + +#include +#include +#include +#include +#include + +namespace Vane { + class LinuxPlatform : public Platform { + Display *display; + xcb_connection_t *connection; + xcb_window_t window; + xcb_screen_t *screen; + xcb_atom_t wm_protocols; + xcb_atom_t wm_delete_win; + + public: + bool startup( + const char*, + i32, + i32, + i32, + i32 + ); + + void shutdown(); + + bool pumpMessages(); + + void* allocate(std::size_t, bool); + void free(void*, std::size_t); + void* zeroMemory(void*, std::size_t); + void* copyMemory(void*, const void*, std::size_t); + void* setMemory(void*, i32, std::size_t); + void consoleWrite(const char*, u8); + void consoleWriteError(const char*, u8); + f64 getAbsoluteTime(); + void sleep(u64); + }; +}; + +#endif \ No newline at end of file diff --git a/Vane/Platform/Platform_Win32.cpp b/Vane/Platform/Platform_Win32.h similarity index 100% rename from Vane/Platform/Platform_Win32.cpp rename to Vane/Platform/Platform_Win32.h diff --git a/Vane/premake5.lua b/Vane/premake5.lua index 16f9239..3c7a481 100755 --- a/Vane/premake5.lua +++ b/Vane/premake5.lua @@ -34,6 +34,13 @@ project "Vane" "SDL2main:static", } + filter "system:Linux" + links { + "X11", + "xcb", + "X11-xcb" + } + filter "configurations:dbg" defines { "DEBUG", "_DEBUG" } symbols "On" diff --git a/build-objs/dbg-linux-x64/Sandbox/main.d b/build-objs/dbg-linux-x64/Sandbox/main.d index cd49280..231bbec 100644 --- a/build-objs/dbg-linux-x64/Sandbox/main.d +++ b/build-objs/dbg-linux-x64/Sandbox/main.d @@ -131,7 +131,20 @@ /usr/include/c++/13/bits/locale_facets.tcc \ /usr/include/c++/13/bits/basic_ios.tcc \ /usr/include/c++/13/bits/ostream.tcc /usr/include/c++/13/istream \ - /usr/include/c++/13/bits/istream.tcc ../Vane/entry.h + /usr/include/c++/13/bits/istream.tcc ../Vane/entry.h \ + ../Vane/Core/Logger.h ../Vane/Core/Defines.h /usr/include/c++/13/cstdint \ + /usr/lib/gcc/x86_64-redhat-linux/13/include/stdint.h \ + /usr/include/stdint.h /usr/include/bits/stdint-uintn.h \ + ../Vane/Platform/Platform_Linux.h ../Vane/Platform/Platform.h \ + /usr/include/xcb/xcb.h /usr/include/sys/uio.h \ + /usr/include/bits/types/struct_iovec.h /usr/include/bits/uio_lim.h \ + /usr/include/bits/uio-ext.h /usr/include/xcb/xproto.h \ + /usr/include/xcb/xcb.h /usr/include/X11/XKBlib.h /usr/include/X11/Xlib.h \ + /usr/include/X11/X.h /usr/include/X11/Xfuncproto.h \ + /usr/include/X11/Xosdefs.h /usr/include/X11/extensions/XKBstr.h \ + /usr/include/X11/extensions/XKB.h /usr/include/X11/Xlib-xcb.h \ + /usr/include/sys/time.h /usr/include/c++/13/cstring \ + /usr/include/string.h /usr/include/strings.h /usr/include/stdc-predef.h: /usr/include/c++/13/iostream: /usr/include/c++/13/bits/requires_hosted.h: @@ -326,3 +339,30 @@ /usr/include/c++/13/istream: /usr/include/c++/13/bits/istream.tcc: ../Vane/entry.h: +../Vane/Core/Logger.h: +../Vane/Core/Defines.h: +/usr/include/c++/13/cstdint: +/usr/lib/gcc/x86_64-redhat-linux/13/include/stdint.h: +/usr/include/stdint.h: +/usr/include/bits/stdint-uintn.h: +../Vane/Platform/Platform_Linux.h: +../Vane/Platform/Platform.h: +/usr/include/xcb/xcb.h: +/usr/include/sys/uio.h: +/usr/include/bits/types/struct_iovec.h: +/usr/include/bits/uio_lim.h: +/usr/include/bits/uio-ext.h: +/usr/include/xcb/xproto.h: +/usr/include/xcb/xcb.h: +/usr/include/X11/XKBlib.h: +/usr/include/X11/Xlib.h: +/usr/include/X11/X.h: +/usr/include/X11/Xfuncproto.h: +/usr/include/X11/Xosdefs.h: +/usr/include/X11/extensions/XKBstr.h: +/usr/include/X11/extensions/XKB.h: +/usr/include/X11/Xlib-xcb.h: +/usr/include/sys/time.h: +/usr/include/c++/13/cstring: +/usr/include/string.h: +/usr/include/strings.h: diff --git a/build-objs/dbg-linux-x64/Sandbox/main.o b/build-objs/dbg-linux-x64/Sandbox/main.o index 56e72fdbf52b7ac006958d080b12e95aa3232348..72ddcba3dab828e292784b6899fdc1ad994476b3 100644 GIT binary patch literal 38472 zcmc(IcYIvMwg22*$&!85Y}vA88(Si_CEHlda_`u3!M$Oyfn~K?6)f$F-IWWNYKo0R zg6RPQ1PGx8oX`m^fg}(}NJt>$C6ph87DFDPBtR1Qoi=yx9%mw$fuW9^yw&Y3ea zXU?2CGh2K{^U5Uw$1(PC%si9MS=5-lUr(nOP;!B(HsgtR5aeC>!+HhqS19RXpe2$X z40MR3OMz}$w(reld)`~S@3e=P?dv_b?84^9m+kxcJ5XXUz3{SlG^aJT(?sA3`vr#4qg7pZvK8koV~)xb=OfeM)tg?Qi~c*}jsCju(8-dnL=D zjA8Cl2H(?99375DE1P5Ooj^8(W34UmohB7crUn_ur%G(=|NFDL2|GJuZC5ze7Eg3H zoA1;ZP^y!UJ!`<1Dtzhh$w4sp#o^O{49w5NTqC}e=a>YL;h4rmI+a7%E`ajAREZgw zLv^R*lfVH(hhwGk{JbKvv*#ewl#@3&cn>7T!JipYiVT!29fZXuh%b4?d56-Op}Chr zCdZ6?6$t)~!fpo5KxY6@Q-sjeoZQY>3Yg%@8x}kt2&MA}4Eqq$MPFE8U~a`o=*(e| zH!lrp$iD$>kJ=nG#nnoLO8pVw5o_a%RcUF_7ut%rfeA4`-HBCdHYf-0NUw zc5-IbkUL?ZXL4qBasDu4&gRUT{IMWy4`LZCkbLSGh z+}%R-3ini^SGpGy{g!(j(W~5_6200zMD!Xr4;);e;M;B^(QDn+M6Y+FL~n4ZZpw`-6+vV+;fRO>K-KenEMRTAG;qBeZnmR zCmkqw(w#>1r)~?;pSkA~{ki)+qEESx5`EfzmFO>AbnJnGXWS~H&$>qv{iVBw=&#)E zLN6owoO_SZ-xB?``=QXmurUM*e&f~)T|@MFHzxEFpoImlQ#N}jCJLOg6DU#WlwClH zkxmhgrLbVMQ-sPcEU0pdP|Jk{W1S*YZ(%`=Q^eILI7M82qEm#`M}rla!pVb1pd*2$ z01o2dph8Xza0|;2DV|$c1_n7D)A_|=_ix~A$asq*g=phu2EG)d!ofGf-gO%M4VVN% z94a1{=+?>M@XL zV)(jcI2j6edkiFj#9x98-++Q|*}?&b5Te4%F?Bl>+-D0NY|P9;y!Zyv>nAW-&T~-y z0`ib1W>fL~I0Um8_?^FaMW$#mC?Qb1sbn-1&mqRQP%VZevv?>!as=|trSf&OJEBG$ z1jRHO1|9YRG(8VliWWj)p!lN^UqC}-8YOoZUJMxZu;kw2`N&oBw=&8PZY{<^n8AyJ zY*2%r2o9r?A&U#SN@*QiSkZyPpMaP#$o?;At#5*Dvvg*lum+h*ugV!37&g^i3oQhO zO>-}Y-UNnCcYgqsnkZ{5Bs#p_4V3S3O*xd8pW{v;dV%{C(F@%-iC*NI3M@b1mJz+! zJ%Z>Z?vX?Fy(Xm3uwWZ@Ui@z1Dq+=ymRAM8D&X7=iL`a%U6$p1Ydpt?pK$ zx4GR!Z+9;wdWZW1qThF4AbOYk9?^qt;YgJ8aakMn^Ru!spqxPY=VcQJ|5sTv(SMiS zNc4-ctwg^pI|FE8xpB%KMWCX^#mzlX5pj=)%_dM0b(2Kf+;fSxyH^wKaDPa&(|wxg zN$#sex4C~O+T{+1a3N69?am;2vb&LJ!aap(%DtLsulq33?e5D&ce)=F-Q~LAZ~_&l zyX8dpxD$z<<1Qe2uDg}!`EEDSz3w?g_q(?dz0kdn=r`SGfs!Q@t{${7Fk+VbI%sA= zPj|x9O?4NBj&3yd>z%;J_3p=5VdMt)9ikg~+Z=hEn+rA;7#VddiFUZNiFUf{kdB(- zCQ##}n%vWgPIWIJ3YJE6hWiiVo9PBCk#Ck;Omwz8lIUFb3M!xH-bi%5dl%6K?vIEb z>Bfm~k-M2_v)fMi5;sY7se1;|W$u2WN4eF+x5Ax5bfr6==qh&w(KYVRiEpj@TcYdS zSBb874-tiN6W=B`g7mOe?(fDi{gmiNchq>yZ+52>J>FeS^aS@Lq9OMJp|=t}(S1tj zJ4C~7el^w)yVXQn+$BQWfZ}-u{K-_O_*9@6s5s>O82(<6;O`@hFA(!WSjuHj1_%EZ zApCRaL44qZe-ORj=|30b;-qiR$^g z`6n*Ju!+l1!e9e+VQ3?RkTC|OV?5<&;HGckZeftcJ*q_h(RVV;JS&}Ij1nJ5o_k@v zI+$}XYx2H;7v@^XTo{(IN)#(|&2?xb0oX(xd@*^0Jf)t*5+-9ADV0*b#!w=QxsUsY zv0fi-KFnnp|52G#d5iUg;UG&V!G2{Oo>mqHi#!#~z^(q4C1V8XpvADpxa_Yi{!J_+ zlc9;ktjU`TFFYUH(oJC8sX1BHKUoxpN~)(0$zxH8v?vT&)4gRT7WH=)g~1jx_yok$ z0x-t)m2=%CJRNw-a_EK3mZ$wy7!hsDqj%9lz@V7>io=$ovuUa^PEL1Dims+244wNF zwU9uJruzu|9oZoU*uGla+0q;;>-4I5v+E!RW(M2tk*RJoV@zH?rYTSyGmwrvk{Lvq z94>Jwlh2s~$`o*>kTNBlDWc3!&hVMIoHHdUDO1Urp#@tZRh_oupw3dK&4a8BtmsWM4Q+DL;oCR@uc)@!NpoAD8_VQgC6x$A0WMw|0e7R18YMKR;g%UkTu- zMt?{h#^aA~z$A_rz{d_0LD&ng_?H&L-f>_)wZy#ta3FAjLo58@`APHgu&$$F;knA! zAZeKUJd=GF9=K@v%TPu#jOQYM23!a?C(W(bu&% zc%9=JkNRN!|Csa|$8(>Q4MJUveh5Mz-gNLN$X!RdhKnD7n+4wC@PwFdR*GNoYU9B% zJ#Z=hlUEzhlj%`O@snO{JZAQ3`zKy)Jbm_Q`(3X#9!mSP{kB&d&#Jz**%pR4UUfXf zrW*I4+-Ja~&5?v1t3IavX&E&$=8c z|Hayevv&&3FNack#xQ~n3?6j@OgZzZ&jcqspJ;P3(WN5DeW$vly*pLOB{AS^THF5tz#v`EXFhsDj6CAqgcG&l@z zCm?p4Q;5>@Id{8Lj9n@zF-x#8_Z}yBALf^0ZlD7m4^C}(bR5WcpK?(+FhDD2Aj=*Y zpe6?95Xr;CUml+EtMFwaW~&HW0-YLILN#e-Ppq1fj|VSOTNPgoN`|in*{fI0qx(B{ z7vYW zoav^_@$BWRPAS4|08g$o`4sw@NjP&=r|A051|Eo2vQiBSe5{Q(??XGKj-x1k<&c9X~<7J{;8$E^3u~v|I15HANrP; zo>7{XKXYgh7BtJ8Ra)$&XAd3erI!s!x4Yce?v=j&d}}1~D(iCR0~e`aTzOiR<0{hX8#f}Y zvT-9xO>jIlX6!w|;=7=7-aYVg1P%i)DxCYF*Yv_W;n-Jr7kU-T@Wtf)8D5WaNyHlg z*a-M2g0~vXKpXGaHi{YWj)RSi(M}3z@W#WBb`3_A;Qa@qwCu+|9xU1g!tpvJ-7E6v z{Bi^KW(9iFv9AS-a8B^XgzcJUg~j9s$>#AE#V`H!U@^`KUaC0QI=#r4$LCNt@uG#Q z@Fv3I8aOD$%NO2-yd#lRp1_syRz@?xrUQEaMG$Xl=(a_2V{XJS7MO1kCljh+jnCFjJhoULG7}7jE z_^bI)i#JBZAVZ$YI>8Gh4l`A>Gibu|q1q6&#J0j$5a1D`ayyc`O<}?xx%v z_w=u{NU;R>SKU+Q`N-SzaPQSTEPXeHtGFkp%SEAQ&<^~E%p%%|O2!W=ao~cAR_6Eu zdbdY1g~cC&24!iEFA8GyRjAZKlZw8EG;bJG%)>Xr=uI_z(}&(v1F#U%%rnzVErJv= z;zb%Umhw`s-Z%uiP=t6M-nNllRId!;4Vx2#7am6S{ba{@-^M7-V)bgCMZA9V!)qDF z+c>|BLnH(5=KRdF*&y+%&JQ=Tj3J;Zf*nkmJnSg9eL;X$BVOsTCE!Z+OUQGIZ~%DM z$FqV4EtOvmP&AMCe|q`Qpt*@6mVmc|X$k%&g4{{GHsnsy`cJ!z>gmkzlE;84lh^5u zB0oqT3ojb|g6FVO@ZOQ(N~mV4kMu3x>Jx%^4M`o7N%}S^7%wIL=yinR6=ix5GS7uU zys_jKc;;6*cz4Nz!BsE%TF0jtyw6ORv4fn5J)49t)juYM(~_uuo@NIxJZW}B&Wk(% zyw>E}q;1-DYR0EG)d}?@@HRc~3s|2du7(GJ*PeX0f)coB!gRWb!<$ep!n;!`Y8rwW zyd3o@q~_|uSR1b{8KveYmZxKei52NMVd98%Y%pH1MdUC~P zFI`&^_tFg&Q@nKJh!tLX%7}=UZW?i_m!4JT1x=IYl%ipATXTKsdA{`0axbu&~R)U+m3TCoC?ol_dk=<;GrwgFmG zf~R`&r;`t(d)n174JI!KHM-S}XEl~02wlXiSYXEjKUku(b8D|L94wN`p^L428j;)Ee zzQ8clCq95od56O(68>ns!c<1f6gw3t2_n-Gz%a)$IThfz9PFVqI-J-8B{|5t8Q9uA zR+K^fBDvfrITzW_1J=v4vRC-n2O#^s!1{|!c8UP8OVY#$Umcp>cY*(l%sQkys>5m< zDQe5dHY&gzCcqzQgcW{1z%tlT!a5LH7X#bIepp%8hfx^wJ>UzJkZC4?b(du~>p-S) zMw2`zP~xIM=VDvz9DppIP=Tz+6!kPP6Wt}qb8iI3C*bc_Sm6nlpZBQ52QYpjqBjYMc!s583Ae>w1r!W;v}>uG8eJGXU$H z4E*P1)=_g8nBuFGi*>#W{P$+oNl#m#QAUu1tiJ}f*ZN`Q-Zc0m2a)|tU@abJ2dqpw zFj*u!$T|_&>Mbic$o%}X$>%J@|dW#z%-GPj|@Ffc&26WnHBeMoKK!X_UnN4 z(MD|U%|qK_ z?Txgz-gqgpVp5`w~pJ3uXXZNMF>vB6<>vW(h)dp+$aW{yxV|mBn4gt zsj)Zb!OLCv@<hk}N_eunCnA9GpuE!!$gnF@YUpR1NHsm@C5a;DI~Npxj72e+3U* zf5y>R793K6_7^;G@C;Ln78n@i9sw1n!CxIRJO%BT%_s|>V})WG3-EESX#unzYXuH; zm|ENyVXsXNwj4D#V~wNOlhz0%`cQ;#)Jf^l-qa`5Ycd^5|P?ap*@9|;zk zU=e4Rm(GCc%_;K%5LDJW^DBrWcc#0%bWVi>l?I@orV7wmv2m;NQE0x$2ZAl%z_G@4 z=eclDH-r4;u_DXidN7Dj!v!7;(hy!*<*X_{thBMpnN!hPihU@gQ9vymMbUT~S#f5y zzLiR5dV>Rlz`KMYQl+XGG*XopEAll_>WRypSyjkGA6f$vMuDD&i74m+1XD8|t3~YF za8hbj&g?4a7Am#8)Nx(ba;ykBDnQHmv#O53X+ZUj;HF|lO%=WljC7pkG}uuns15`j zRtgPSQ7CA%Oc%`#e6Xbn2Us<9c2)h%s-dXmQB_VC%v5Eq$(%=69wm124u}3iZ^m+O zu)|*~1vzt|-qbs70$YE7#10)~4XG_vAlG!GbC?8 z`EK%7d#P%3yThz=fx<`d|5;Rs1Ty%Y1W1ely?ym3;EV|rH+cLghQ8b2Au`S& z0$E>ju$1B>N)5nlI;FByKm(%G|NKJgrFKaQWe1{ol_i#RsY+3NMK4sq9m>r!19=WX z-0-sl#h|^MK(6aUgCm`XOd!V@@X$knAQlI6tNg_!PHx4UKg!KToolT0O2@!qa3s7pe-q9Aoz6G+_=N$zY*bemLn zPb}PRA|2txlt#c$&yZrE-Dn~f?%I$Fr=sTQQ1klrYu1|te76H-Cn6mQv!f>gTx}+l z?1(2)Exm0f8BJ|R+TIh2x3xhIn%|yk>B4S?QoDMhUu_6Y$sOUI=JgxuLngT^nS%Ff zQr)3lt>IlJw0unn8VE(98zF21Ivxr|dXuRT)-i2uUA@T;fI5@$NaK{y_T-LaBpic2 z5>vVWw2+FUdbaTQK^ms4?2Ps9wBHJuo=k-ksotLEwJRcB@R;pwR*+QizCbcH*%giU zG`E zbQepJMR;1YO6-yE%zzDn)qofnTQre~C%)RWHq?h!g%VLT#VB-UyVWR7T~D~BD++d= z3U_vain_yzZP7#$C%zje9$M;YNo>nDUk#0scq|$3if%@|;;exYY*{@s6cT+-f%l!7 zQLQ+-5UmCpV{0_hg@#!ZgT(??Iw5Nd(=%GYQA;zv1vUe8B7(>;<2^}py0s}^=yq7#ex@K1^m4?A#Ko_?g7*c0< z7}i`IhH7G=WV9#LvMZGA2}h!aR>{$!<*S#h0Tb&Awwf4wFOHfqZ8dN;GA|ua8lu)>29GMPIWwH+Ir$i*2e#C z)!^$ELyfLD3?3GE0<_cB+YJcl48)M8BXLm3b|?p%vdSjEh^k<#+tHco@Jx@qF1=)~ zOg%d@k{!LN*7%MXOj1KbT6PLo8L0%-n5iJ-N*U-J3?5z=wt&g@rlK1=yTLP(9Wlqz zp^fVoE@}po03A$EL{lA!_>Qy-_zJrK)>Yqh>vxUda^NI1-ntV!My+{1XThSi3ShZ7|2P*yIcD9wF$i+)eMD}EMEzuLB}7CZ0iME z2KV9BP=0$RwBt3~)s5=~_lC~y_;#oxdy<_vXdUbjnpZm{c&W6vjklZ>jlk0C!Z)tN zv}bsm3Tz6p1-2xkVb~LK1LWq>pXBmvFp4Ive*HE(DLW$SZ8eI(wq%d_US zD_|XghXk!n1zQArvfFYS@4@IlJ7ebLBm`p=FoD8xfnnGMCM%Ze_sh+^chi8wUF{rj z`l3!5t}OO08X>7G6oLqVjF8N)-!ZF^(q?vYZ#=!vsVVZ}DB7YM8fR2m{|g&Lk~WN_ znNI5vw+HkeI691|AP+3KiTL6!yI-ZF7z~MF+HpUH@WrIpI4loeP-gwhSBR<_>%m%f zhJEe=wGE~QegNa(9*K_ZinF5WE68g64O7*Q;9FISbw;=gcWVfAzZdeJ ztE^cMG3v5#N(v@VpHMluds-8`qEIPuuJ7-LrjD_u$li^FMb0a9y zGjuO@?$5-@7r|i#Eep1dD8zi?#3^2F?pA&Np_-`1DfzNo6*SCQ* zP6!!yYrGd?O>hGg;mXm3>gWX7dTf1;IV1-d(K&}&!>KSd;zf4-`!==C+0*KV0HwHr#_ik9Y>$+I`?vp0 zCj_Skab)1`I+Lw1c55&+eSKmjTG+HX;+YX$Kb%}Ulj0Xa*PSsqMD6H~c4GmZWGg|U z5de?gcqCyCh`>Ri6f|%w12JbJl-$+b0*ebu?2)^#PcXPVGb3~Vh6@pK7wld*6x!;^ z__5b!<(j3TmCZ*tuQcddzzo{r7}I;P#aEh?@CH_YLxbPEz{v0bNv4Ai5r>9Kz=m3* zZI!rR((yBt3b$wGIEKYabeQ#73v3J=P?6o@fYb@3Ez%W-0B#yCWVCTS31QPQFlM-C zSh8^A!j*W>0C7cMgYC~rT0vrS%9Q+JdYkWB0<9Xg3@x{%F#d-9q%$2)V8_*|t!_)3{gj+1Ic|+OVUNq6DuieQto1p*1x6wdwhJaG67TMTJD@haxgbT;HAE`j z0&95l!u6{Sy2fZM0v8WH_lTRQJ&?nM?4Ucn{uk~dGEdY4yP*eQ^DqKfpI8na z`YSa!(_7nMT)bT60+KgB7#-gLH5&Xy9NK*Rr&in(DT0DV(J1J?m7|f~SZ^}g+DN8~ z*Rd4WW?Z21ehEWCw^AGF=`nR3@$P8dj`)u4fYc?T;BV`&-3@fZ%W3`vp*s5uLjOUP z+FBA?=LNuZy~#vfS7%FIdn8f^QE6ye)8s_7wIiIG+=Vy3bq!PMI%AQpUN~0~uVm_4 z;2>OwTVXO2hfo&k^oR8;9>w&_oV9@W41ZrT>r+KL&PDM=G_7Mh>e>!tlOdWG0KAEq z)6(17m73fcn+L1E6*hV(WJeAOUwnXdY$!@4XhV>ICD$8C(FOoH0V8xJY(P11z-;Sm zhZ2fc;CzM($T(|388G2H7_djcy9^k$gI8b#3VHL#;FdVi&qV3$2|U{ovhEt+6oI_m zHNZ8r!b}^aopB;CIs;w9t}qOd9Tda+7I3OZrvTMuJgII-!}UE>fnTwLy{;z-05=5* zvIOM7cQR;Dkl_Y70d5*}nus@G z`%@Wq8xpWC;a&}VND@3+Z%LOQhd4a+2B|F%>|_Qm>hp^I$}xZYvQGg3L4E_UPf?IR?9>lVA4cm3 zr;j~l;P^(NV~V^Fz*_yx6&$`yK##?H1V=sLV{uFeJ*{Fc{RH`=zG*;GLHzbkKTpuu zRx=BO{7YV$AmoDlLoONkjg<5Ej*A~8;=L8>)p-F@@R{U3&xe2 zsSfG|pThv}kADi`>3JdB0sb|B_t)-8S@_Qbe2C8;?3?iWv&gwS3;s$Ld;qAXzy3@B zyb3)^>Iq*>hc|3`pW2dNKhCQ)Pfx9X2C0Rqqhd>_XF2cyzY80J=T;`3oTr5UUWM1-f`aEKOg#RmOu*|3e^T&|6h25M(*}HYyenjDERpe9 ze1y!)D23lC_T7|zN?cyf`{q0tXejZSGm-PRq3g_QyFy?uMS4n?fRd~7R z?LCF>5dO~;euK;l##8=&E|N{7RN?=Y{#Ppe5w30~EBte@&shqOikzhiKP2p(hZJu4+Z1m7@97HPC3dn$;dP>i%N4#<=J9HU zKQ80FQ{k&*UhY-+@5IkMt8m-@-zfaMVkduAxaEIW;Wvq&=bvp(`v=QEfIgR+#)nA# z(F(WxUsL!V$Xr7ZogEx?au(QU%QT;mVIiB!k3Hu@d_U!Y%*z6h1=M>A@`cgIVw=6plaLhtIPL-!1m`zQS#c{)xi#WWB#A5`LyFbQToH* zsZIO;?~D9-iXZRC@Y$;HiK5RP3jbK_?F@x~SM2@@g>RR3A5r*xna7tDo-h0IM+!ey z@)J%FBW}Xrtsy$e}lp+#6RDq@Eo!KhZVj~ z!tIr1o5DX6 z{hX)p+oT_M-P?9|%RD}-_{T^;|DtgIr95LkR`__~A0qQ?<0t z@Jboi2?`h3L==8d_VH~BuMj=#Rroeuj^-AH|4i)RF@--b^YWU)tz9}2|5`mugQWx zsPKH*7hY5N3*rx}#eS`RHVQsR;g3pwi^4l({|hPn4av7FyhHrtc?v%dI{?pqg+D3! zxkTZY3jYrkzF+*wBMN^^aJydZcq4-UPVv`^-?QVe{GW<`{-*eM3I3_VTg3iz#1UCJ zUzhoC6@IMbhbY|ce-#RUQ`)uu&&t0U6Yx|k{!D;2&?`m;{qOGFPRD14>h+Y~-i z#=leHmx*6GSK;@_{9df^--?{;6#lyK-=XlR%7mi~OM@F&I2^TfZ}d3jazHdNuaOMQC}XZg1Xf34zwUgEde3a=G^$Um)__HSrz9Leuf_&c)CUZL>aVsAfG_#PSW6AJ%8{LFI-?~(rh zQQ>i!_qP?^EA#u2!uN}xjeufliAJYK5spy1alyh-f;4u#(& zdVf^m&&xc%pzs1YC%&TaTJdlEOV#Old0TKt-l((lb)MK8{q%@$9zPU&9-;WHoF;|O zk$x^#c#ZUPmBOu@c7-31^`2DtGh+W|DEybQPwiLu3t|sfD7--C{YHf!6uDCRzePHFoWlPhwTiaza!&XqHudZc$~s-7d=N5 zzE$SsOogu#eV(sy`tP!!>?VctkB1ran8L4?cK=J^MKa#E72Y8I`B>q<7kdlH2g0m= zj+K3A{Dg1Tu1LrCHkjS}4;oV|ycPo6Z z*#9pSzD(@rHHE(_`uT^#*GNCh590~7ddrdhXr{vHe_H|8O$r|>{XbRV3q_yTC>(wm zik?Rl{+ie`|7Q$oKX$$Ff1>zb5&vHx7tXf-U1BE{3je*}lN7#D&yukd5V4m%Wnuiz<#uNAvGQ{g|6aeZCk&xu`Ksqj3(Z&LURV$TN^ z&j0-%{NlO7N6C78O5yc_|4!j|OFv&z_#0w}?tng<=KW`{JX4jX(?K%9v6<#d<>hB6) zEBj7fm7&M3yFbdl<0_p0n;`hPIfYv})e3)3^gmzWmVc4L%Vl1+D%|pi6n=r&Lqg%l z%epvC;TQ8T%>@ciiJSupZgV@Qt3ZEwOKT!B}($Av9Gxh%+nfGA| zpDgE*xeEWL$XTp#`+jzZ!q1fbF0SxF?Rrp(CKhG%qDbdgK3jeY6^Gk(4 zFZMj(Yngi3VB}LE$fp{cKYBM=~$RDcrt)aEiij6aAm1afkbNlfs`AKX9wU zt(=1je^2`VoWgBCUsU*evOj*TaI1%ZDtv#C`#EN8ratYwj8}Mr%-05m+j-xj@PCW_ zoUd?eSKmu^>uG1L` zzeCpD(F(VAd%VIYi2lz~xb-u86~0UC>M?~|yLv+5%SHb$DEwmCfB%#P|11m6|MhY@ z?y_!?aom6{Q>4%qws{RqiqTwDt=(U!aJn@7iYn5%Yy$P3;wjit7Kk&lLdb_ z3;wq(_`vE+{d}LZrX&kqlLfEKf-hD0-*ZIIS@8BOcsvV!hr<6L{r{E1_lRHpgWzbc zGUZg`1I2GY_wa?n>t$UR)Nn&K-ndzWO;&hV_-8BpUt(8_1jqh}YDjQW@mo1(Dcru_ zxz8s@OoZeN;BHd9C#Fw`gm?5gcE27fg&+Ilms9V<{r!|}wT~RRwj|syrz(q_!v#lu zqRQq-Ud)#Ik9b`0i9#*^nUb$n_#KjORQQvUpQiAaBtJ{xxu_6$<}va5Gg|N?6+T1o zB?@mA{3wNQ7JQ?^TLnK>;oX9tpzxi7M-;wK@D7DvEO@uVzb$w|;WrDuL*aJ`zFXms z2!58rpBDT)h1>hO{R)3g_%BlU+k#)F@V^RvmBK$4{5pl(&u!nN@G@B(w<>&$;CCu~ zir{xEe1YH(D14dVk0^YD;6G9LR>6O+@QC2gDtw#ZzfpKn@D~++ir{}#_}PNLrtk{{ ze^cQX3;q{{UnTf|D;)oSDSSR=;;pYc1^-Opj|u*T!k-d6DD!On!>sPL~A9Em`rdF!7L_wNgPeEgys;;*Dv-h2IW7Wi<#oD+SxUyiATALxJ| zAOs3OkVdq_rr^g!!nN=#K`HnjE%3*nYFprU?rJ@>)_##O{qr>V70P}X)HfpO3!Alx zI143toB@gbe2bF>raAh4jZtJ_^}gRqPKR4s5>eY-f#ipW{8bXM zcKi)qJ8))%-;Rh{IiM|@L>PYa3-a*$DBV%`wSn4LJQb~lFV@5Fpuz7~N*;cdwzemM zzX6omCHjhX;7>5ZPx{o-ueix<{pSR~7bHiU3?U07C&wf+7V;QsTU)U-Tm6;&)W;ae z*0VHQ{bTy6k4Gw7&(du5Tl=YxSM0W)rP=EDNd0`FV}Vw}pRH#pVz~5d+y_Z|b_zXB zs3o#YZI-@?kFpkc2qzY7V0w$-*gm#l`%^CXc%UfLzqYaH6MX6C(d{1rJSg)&t&i~> zjX%R#81r{&+s37m%{T)f)&PGrepUY+8NVGTjvx0HJ^syr_1Aup3{;L2z{QVh#;gap zzxIs;hBgkz_Hixf_ICk>O=-Dye?Xh_KhiA^!g!48D*?v{qqRd@!M1PnXF;OB{?|+Y zZCs4~$MtLLTfN=_Sbyz5CGF#y^*^@0#cqT|f9-c{Vh+Fl(9hWVw*8+1)?fRtN&DJ2 z>HfSe^|`h5>))jQcWcrZrUdrD*C9py_Yh88Dg8fF4mha4q41~s{}EtXCQ7(`BEG`^ z%9YF1zG~h90B8((SBT=)+KNIouLD4T{VzXZIgb^k|XY5!_zf0ER-F{t`_J1br+jCB~_9td(|8Z&m9nn9wk8iE(_Ge4`(wuF^^vVJD zzsfv_62P88mt?8GW;ydElw;NPkIqv6$FhOeNqd&)`XQ-r%PsxDZon20YU^7#4nQ7c zl>0HZzSfJ?pRIqsw6E(|u40azmQkp#e>T+5fwBdP@0JS~SSC2m-{J6Q>s$YU+zsQssh#jFXsTA-fyxIw(Ox zTo59+z5_47kz*vpqi`>GB$#nLbTQ#j7|EWQZ{{1%+Frk@J$jJyJVxTNd+gLB6!gNW zT`^{bt+Ex?tWUm9UVpDoh9{p8e)8FaYWvmd9e-p0u(|0M%e=&keyLE}E|iNq{zgM} z{JPXOu(i8ssx89o!#D>6cr3@fDPkm^^{Kb3HsHN#FmIIi)>oF#A4Bju;5bm$aJqjv z|1MWuT{?gS^#3AQcaeSjF)zF@XGbnVq6Z8T>g%q>$tOLqc+L_C{{Vj8Vp%l>XDzd? z`4&tFWf1Z9V8F!V!y~;XL`P{E^veYyf=H{bN`#I@yC;)W1gRKCY0!;S=i&2O?W~mW z?3A&g9O+Uqh*Qy$sS^F5mB?fa-39ukX&*ns#|Z@YgZ9J#JROHxwir)!GSfY>v>Iu~ zJ5o!=TWQL863?7=9EK`_SQKl;;reW)TDD(UzZ(ttAc+Sm(PQAKzT~PWo+UC=X2t)S z)`5*@x#U!-SpV0#S)b0G(r*8J@Zz^C=yy6*bh zmR|s!m8NxWXF;%uPkQ#hI7#5X{Sz_>@hE%%#xe}I|Mxb*?aO@w@Csl}mv0_3!1rt& zQZD}~1n?E8z{twT7QALbd@qnoe8T6gjg%9dK&ED9>=J0aV=n&!VD1?q<)huGFX&{% T-M=dko5w%4{l^(DnlAq*)}NY6 diff --git a/build-objs/dbg-linux-x64/Vane/Logger.o b/build-objs/dbg-linux-x64/Vane/Logger.o index c39b15c818a7d39b52a3c683a793be6857d2d943..3f856cbf3107ba64b35ee2922d870342a8dfec57 100644 GIT binary patch literal 147424 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 JvIN{G`+vKL^7a4# diff --git a/build-objs/dbg-linux-x64/Vane/Platform_Linux.d b/build-objs/dbg-linux-x64/Vane/Platform_Linux.d index 48b1b62..5e72474 100644 --- a/build-objs/dbg-linux-x64/Vane/Platform_Linux.d +++ b/build-objs/dbg-linux-x64/Vane/Platform_Linux.d @@ -1,6 +1,7 @@ ../build-objs/dbg-linux-x64/Vane/Platform_Linux.o: \ Platform/Platform_Linux.cpp /usr/include/stdc-predef.h \ - Platform/../Core/Defines.h /usr/include/c++/13/cstdint \ + Platform/Platform_Linux.h Platform/Platform.h Platform/../Core/Defines.h \ + /usr/include/c++/13/cstdint \ /usr/include/c++/13/x86_64-redhat-linux/bits/c++config.h \ /usr/include/bits/wordsize.h \ /usr/include/c++/13/x86_64-redhat-linux/bits/os_defines.h \ @@ -15,15 +16,45 @@ /usr/include/bits/types.h /usr/include/bits/typesizes.h \ /usr/include/bits/time64.h /usr/include/bits/wchar.h \ /usr/include/bits/stdint-intn.h /usr/include/bits/stdint-uintn.h \ - Platform/Platform.h /usr/include/xcb/xcb.h /usr/include/sys/types.h \ - /usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \ - /usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \ + Platform/../Core/Logger.h /usr/include/c++/13/tuple \ + /usr/include/c++/13/bits/stl_pair.h /usr/include/c++/13/type_traits \ + /usr/include/c++/13/bits/move.h /usr/include/c++/13/bits/utility.h \ + /usr/include/c++/13/compare /usr/include/c++/13/concepts \ + /usr/include/c++/13/bits/uses_allocator.h \ + /usr/include/c++/13/bits/invoke.h /usr/include/c++/13/bits/ranges_util.h \ + /usr/include/c++/13/bits/ranges_base.h \ + /usr/include/c++/13/initializer_list \ + /usr/include/c++/13/bits/stl_iterator.h \ + /usr/include/c++/13/bits/cpp_type_traits.h \ + /usr/include/c++/13/bits/stl_iterator_base_types.h \ + /usr/include/c++/13/bits/iterator_concepts.h \ + /usr/include/c++/13/bits/ptr_traits.h \ + /usr/include/c++/13/bits/ranges_cmp.h \ + /usr/include/c++/13/ext/type_traits.h /usr/include/c++/13/new \ + /usr/include/c++/13/bits/exception.h \ + /usr/include/c++/13/bits/exception_defines.h \ + /usr/include/c++/13/bits/stl_construct.h \ + /usr/include/c++/13/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/13/bits/concept_check.h \ + /usr/include/c++/13/debug/assertions.h \ + /usr/include/c++/13/ext/numeric_traits.h \ + /usr/include/c++/13/bits/max_size_type.h /usr/include/c++/13/numbers \ + /usr/include/c++/13/cstdio /usr/include/stdio.h \ /usr/lib/gcc/x86_64-redhat-linux/13/include/stddef.h \ - /usr/include/endian.h /usr/include/bits/endian.h \ - /usr/include/bits/endianness.h /usr/include/bits/byteswap.h \ - /usr/include/bits/uintn-identity.h /usr/include/sys/select.h \ - /usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \ - /usr/include/bits/types/__sigset_t.h \ + /usr/lib/gcc/x86_64-redhat-linux/13/include/stdarg.h \ + /usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \ + /usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \ + /usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \ + /usr/include/bits/types/cookie_io_functions_t.h \ + /usr/include/bits/stdio_lim.h /usr/include/bits/floatn.h \ + /usr/include/bits/floatn-common.h /usr/include/xcb/xcb.h \ + /usr/include/sys/types.h /usr/include/bits/types/clock_t.h \ + /usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \ + /usr/include/bits/types/timer_t.h /usr/include/endian.h \ + /usr/include/bits/endian.h /usr/include/bits/endianness.h \ + /usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \ + /usr/include/sys/select.h /usr/include/bits/select.h \ + /usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \ /usr/include/bits/types/struct_timeval.h \ /usr/include/bits/types/struct_timespec.h \ /usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \ @@ -44,8 +75,77 @@ /usr/include/X11/X.h /usr/include/X11/Xfuncproto.h \ /usr/include/X11/Xosdefs.h /usr/include/X11/extensions/XKBstr.h \ /usr/include/X11/extensions/XKB.h /usr/include/X11/Xlib-xcb.h \ - /usr/include/sys/time.h + /usr/include/sys/time.h /usr/include/c++/13/cstdlib \ + /usr/include/stdlib.h /usr/include/bits/waitflags.h \ + /usr/include/bits/waitstatus.h /usr/include/alloca.h \ + /usr/include/bits/stdlib-float.h /usr/include/c++/13/bits/std_abs.h \ + /usr/include/c++/13/cstring /usr/include/string.h /usr/include/strings.h \ + /usr/include/c++/13/iostream /usr/include/c++/13/bits/requires_hosted.h \ + /usr/include/c++/13/ostream /usr/include/c++/13/ios \ + /usr/include/c++/13/iosfwd /usr/include/c++/13/bits/stringfwd.h \ + /usr/include/c++/13/bits/memoryfwd.h /usr/include/c++/13/bits/postypes.h \ + /usr/include/c++/13/cwchar /usr/include/wchar.h \ + /usr/include/bits/types/wint_t.h /usr/include/bits/types/mbstate_t.h \ + /usr/include/c++/13/exception /usr/include/c++/13/bits/exception_ptr.h \ + /usr/include/c++/13/bits/cxxabi_init_exception.h \ + /usr/include/c++/13/typeinfo /usr/include/c++/13/bits/hash_bytes.h \ + /usr/include/c++/13/bits/nested_exception.h \ + /usr/include/c++/13/bits/char_traits.h \ + /usr/include/c++/13/bits/localefwd.h \ + /usr/include/c++/13/x86_64-redhat-linux/bits/c++locale.h \ + /usr/include/c++/13/clocale /usr/include/locale.h \ + /usr/include/bits/locale.h /usr/include/c++/13/cctype \ + /usr/include/ctype.h /usr/include/c++/13/bits/ios_base.h \ + /usr/include/c++/13/ext/atomicity.h \ + /usr/include/c++/13/x86_64-redhat-linux/bits/gthr.h \ + /usr/include/c++/13/x86_64-redhat-linux/bits/gthr-default.h \ + /usr/include/c++/13/x86_64-redhat-linux/bits/atomic_word.h \ + /usr/include/sys/single_threaded.h \ + /usr/include/c++/13/bits/locale_classes.h /usr/include/c++/13/string \ + /usr/include/c++/13/bits/allocator.h \ + /usr/include/c++/13/x86_64-redhat-linux/bits/c++allocator.h \ + /usr/include/c++/13/bits/new_allocator.h \ + /usr/include/c++/13/bits/functexcept.h \ + /usr/include/c++/13/bits/ostream_insert.h \ + /usr/include/c++/13/bits/cxxabi_forced.h \ + /usr/include/c++/13/bits/stl_function.h \ + /usr/include/c++/13/backward/binders.h \ + /usr/include/c++/13/bits/stl_algobase.h \ + /usr/include/c++/13/debug/debug.h \ + /usr/include/c++/13/bits/predefined_ops.h /usr/include/c++/13/bit \ + /usr/include/c++/13/bits/refwrap.h \ + /usr/include/c++/13/bits/range_access.h \ + /usr/include/c++/13/bits/basic_string.h \ + /usr/include/c++/13/ext/alloc_traits.h \ + /usr/include/c++/13/bits/alloc_traits.h /usr/include/c++/13/string_view \ + /usr/include/c++/13/bits/functional_hash.h \ + /usr/include/c++/13/bits/string_view.tcc \ + /usr/include/c++/13/ext/string_conversions.h /usr/include/c++/13/cerrno \ + /usr/include/errno.h /usr/include/bits/errno.h \ + /usr/include/linux/errno.h /usr/include/asm/errno.h \ + /usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \ + /usr/include/bits/types/error_t.h /usr/include/c++/13/bits/charconv.h \ + /usr/include/c++/13/bits/basic_string.tcc \ + /usr/include/c++/13/bits/memory_resource.h /usr/include/c++/13/cstddef \ + /usr/include/c++/13/bits/uses_allocator_args.h \ + /usr/include/c++/13/bits/locale_classes.tcc \ + /usr/include/c++/13/system_error \ + /usr/include/c++/13/x86_64-redhat-linux/bits/error_constants.h \ + /usr/include/c++/13/stdexcept /usr/include/c++/13/streambuf \ + /usr/include/c++/13/bits/streambuf.tcc \ + /usr/include/c++/13/bits/basic_ios.h \ + /usr/include/c++/13/bits/locale_facets.h /usr/include/c++/13/cwctype \ + /usr/include/wctype.h /usr/include/bits/wctype-wchar.h \ + /usr/include/c++/13/x86_64-redhat-linux/bits/ctype_base.h \ + /usr/include/c++/13/bits/streambuf_iterator.h \ + /usr/include/c++/13/x86_64-redhat-linux/bits/ctype_inline.h \ + /usr/include/c++/13/bits/locale_facets.tcc \ + /usr/include/c++/13/bits/basic_ios.tcc \ + /usr/include/c++/13/bits/ostream.tcc /usr/include/c++/13/istream \ + /usr/include/c++/13/bits/istream.tcc /usr/include/stdc-predef.h: +Platform/Platform_Linux.h: +Platform/Platform.h: Platform/../Core/Defines.h: /usr/include/c++/13/cstdint: /usr/include/c++/13/x86_64-redhat-linux/bits/c++config.h: @@ -69,14 +169,56 @@ Platform/../Core/Defines.h: /usr/include/bits/wchar.h: /usr/include/bits/stdint-intn.h: /usr/include/bits/stdint-uintn.h: -Platform/Platform.h: +Platform/../Core/Logger.h: +/usr/include/c++/13/tuple: +/usr/include/c++/13/bits/stl_pair.h: +/usr/include/c++/13/type_traits: +/usr/include/c++/13/bits/move.h: +/usr/include/c++/13/bits/utility.h: +/usr/include/c++/13/compare: +/usr/include/c++/13/concepts: +/usr/include/c++/13/bits/uses_allocator.h: +/usr/include/c++/13/bits/invoke.h: +/usr/include/c++/13/bits/ranges_util.h: +/usr/include/c++/13/bits/ranges_base.h: +/usr/include/c++/13/initializer_list: +/usr/include/c++/13/bits/stl_iterator.h: +/usr/include/c++/13/bits/cpp_type_traits.h: +/usr/include/c++/13/bits/stl_iterator_base_types.h: +/usr/include/c++/13/bits/iterator_concepts.h: +/usr/include/c++/13/bits/ptr_traits.h: +/usr/include/c++/13/bits/ranges_cmp.h: +/usr/include/c++/13/ext/type_traits.h: +/usr/include/c++/13/new: +/usr/include/c++/13/bits/exception.h: +/usr/include/c++/13/bits/exception_defines.h: +/usr/include/c++/13/bits/stl_construct.h: +/usr/include/c++/13/bits/stl_iterator_base_funcs.h: +/usr/include/c++/13/bits/concept_check.h: +/usr/include/c++/13/debug/assertions.h: +/usr/include/c++/13/ext/numeric_traits.h: +/usr/include/c++/13/bits/max_size_type.h: +/usr/include/c++/13/numbers: +/usr/include/c++/13/cstdio: +/usr/include/stdio.h: +/usr/lib/gcc/x86_64-redhat-linux/13/include/stddef.h: +/usr/lib/gcc/x86_64-redhat-linux/13/include/stdarg.h: +/usr/include/bits/types/__fpos_t.h: +/usr/include/bits/types/__mbstate_t.h: +/usr/include/bits/types/__fpos64_t.h: +/usr/include/bits/types/__FILE.h: +/usr/include/bits/types/FILE.h: +/usr/include/bits/types/struct_FILE.h: +/usr/include/bits/types/cookie_io_functions_t.h: +/usr/include/bits/stdio_lim.h: +/usr/include/bits/floatn.h: +/usr/include/bits/floatn-common.h: /usr/include/xcb/xcb.h: /usr/include/sys/types.h: /usr/include/bits/types/clock_t.h: /usr/include/bits/types/clockid_t.h: /usr/include/bits/types/time_t.h: /usr/include/bits/types/timer_t.h: -/usr/lib/gcc/x86_64-redhat-linux/13/include/stddef.h: /usr/include/endian.h: /usr/include/bits/endian.h: /usr/include/bits/endianness.h: @@ -124,3 +266,100 @@ Platform/Platform.h: /usr/include/X11/extensions/XKB.h: /usr/include/X11/Xlib-xcb.h: /usr/include/sys/time.h: +/usr/include/c++/13/cstdlib: +/usr/include/stdlib.h: +/usr/include/bits/waitflags.h: +/usr/include/bits/waitstatus.h: +/usr/include/alloca.h: +/usr/include/bits/stdlib-float.h: +/usr/include/c++/13/bits/std_abs.h: +/usr/include/c++/13/cstring: +/usr/include/string.h: +/usr/include/strings.h: +/usr/include/c++/13/iostream: +/usr/include/c++/13/bits/requires_hosted.h: +/usr/include/c++/13/ostream: +/usr/include/c++/13/ios: +/usr/include/c++/13/iosfwd: +/usr/include/c++/13/bits/stringfwd.h: +/usr/include/c++/13/bits/memoryfwd.h: +/usr/include/c++/13/bits/postypes.h: +/usr/include/c++/13/cwchar: +/usr/include/wchar.h: +/usr/include/bits/types/wint_t.h: +/usr/include/bits/types/mbstate_t.h: +/usr/include/c++/13/exception: +/usr/include/c++/13/bits/exception_ptr.h: +/usr/include/c++/13/bits/cxxabi_init_exception.h: +/usr/include/c++/13/typeinfo: +/usr/include/c++/13/bits/hash_bytes.h: +/usr/include/c++/13/bits/nested_exception.h: +/usr/include/c++/13/bits/char_traits.h: +/usr/include/c++/13/bits/localefwd.h: +/usr/include/c++/13/x86_64-redhat-linux/bits/c++locale.h: +/usr/include/c++/13/clocale: +/usr/include/locale.h: +/usr/include/bits/locale.h: +/usr/include/c++/13/cctype: +/usr/include/ctype.h: +/usr/include/c++/13/bits/ios_base.h: +/usr/include/c++/13/ext/atomicity.h: +/usr/include/c++/13/x86_64-redhat-linux/bits/gthr.h: +/usr/include/c++/13/x86_64-redhat-linux/bits/gthr-default.h: +/usr/include/c++/13/x86_64-redhat-linux/bits/atomic_word.h: +/usr/include/sys/single_threaded.h: +/usr/include/c++/13/bits/locale_classes.h: +/usr/include/c++/13/string: +/usr/include/c++/13/bits/allocator.h: +/usr/include/c++/13/x86_64-redhat-linux/bits/c++allocator.h: +/usr/include/c++/13/bits/new_allocator.h: +/usr/include/c++/13/bits/functexcept.h: +/usr/include/c++/13/bits/ostream_insert.h: +/usr/include/c++/13/bits/cxxabi_forced.h: +/usr/include/c++/13/bits/stl_function.h: +/usr/include/c++/13/backward/binders.h: +/usr/include/c++/13/bits/stl_algobase.h: +/usr/include/c++/13/debug/debug.h: +/usr/include/c++/13/bits/predefined_ops.h: +/usr/include/c++/13/bit: +/usr/include/c++/13/bits/refwrap.h: +/usr/include/c++/13/bits/range_access.h: +/usr/include/c++/13/bits/basic_string.h: +/usr/include/c++/13/ext/alloc_traits.h: +/usr/include/c++/13/bits/alloc_traits.h: +/usr/include/c++/13/string_view: +/usr/include/c++/13/bits/functional_hash.h: +/usr/include/c++/13/bits/string_view.tcc: +/usr/include/c++/13/ext/string_conversions.h: +/usr/include/c++/13/cerrno: +/usr/include/errno.h: +/usr/include/bits/errno.h: +/usr/include/linux/errno.h: +/usr/include/asm/errno.h: +/usr/include/asm-generic/errno.h: +/usr/include/asm-generic/errno-base.h: +/usr/include/bits/types/error_t.h: +/usr/include/c++/13/bits/charconv.h: +/usr/include/c++/13/bits/basic_string.tcc: +/usr/include/c++/13/bits/memory_resource.h: +/usr/include/c++/13/cstddef: +/usr/include/c++/13/bits/uses_allocator_args.h: +/usr/include/c++/13/bits/locale_classes.tcc: +/usr/include/c++/13/system_error: +/usr/include/c++/13/x86_64-redhat-linux/bits/error_constants.h: +/usr/include/c++/13/stdexcept: +/usr/include/c++/13/streambuf: +/usr/include/c++/13/bits/streambuf.tcc: +/usr/include/c++/13/bits/basic_ios.h: +/usr/include/c++/13/bits/locale_facets.h: +/usr/include/c++/13/cwctype: +/usr/include/wctype.h: +/usr/include/bits/wctype-wchar.h: +/usr/include/c++/13/x86_64-redhat-linux/bits/ctype_base.h: +/usr/include/c++/13/bits/streambuf_iterator.h: +/usr/include/c++/13/x86_64-redhat-linux/bits/ctype_inline.h: +/usr/include/c++/13/bits/locale_facets.tcc: +/usr/include/c++/13/bits/basic_ios.tcc: +/usr/include/c++/13/bits/ostream.tcc: +/usr/include/c++/13/istream: +/usr/include/c++/13/bits/istream.tcc: diff --git a/build-objs/dbg-linux-x64/Vane/Platform_Linux.o b/build-objs/dbg-linux-x64/Vane/Platform_Linux.o index d96a438ae28bd62bfb0ef825df91a47d2380a2c4..473b734283592ab646afc480fbba87c0b146d46c 100644 GIT binary patch literal 97136 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 yGN1V?WI2#ylZ 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 literal 5880 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

ykwJzB6GyIRbFYE^Udql-i77)}iP^l#@vmE=9 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 I{m0S&3vWC&4gdfE delta 327 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 delta 18129 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 G<^KWNe(4zi diff --git a/build-objs/dbg-linux-x64/VaneEditor/window.o b/build-objs/dbg-linux-x64/VaneEditor/window.o index 027948291f653dc45f0d200f0ba4efdc1710ff43..0d88de6987214f2f35568619e617209360d0cee2 100644 GIT binary patch delta 411 zcmdnNet>I&h9UzK0~|PjSq==m3_J|(exVA^+S*126TOw|6?AjWOn^j5X0v0(%uC5H*GsObV9?LV&rQ`Y&o3`a%*@j- zN-fAQ)(=a}OAW3pE=kRWuwC=gGxJix!mcTqCHX}R4DQa(Rtg$GS7<62PV`ltm^WKB zB{iuuJw6Ahl0gr`E-op8F+sxdK>lQQ#=^=1R t$YWp-V4Qr3$xhG#