xenia-canary/src/xenia/base
Conrad Kramer 2962a266b5 Fix xenia-core build on macOS 2021-10-25 00:48:53 +03:00
..
testing Added more UTF-8 path tests (fnfp & fbnfp). 2021-06-25 23:35:56 -05:00
README.md Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
app_win32.manifest [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
arena.cc Fix xenia-core build on macOS 2021-10-25 00:48:53 +03:00
arena.h [Base] Make Arena alignment aware 2021-06-02 22:28:43 -05:00
assert.h Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
atomic.h Fix xenia-core build on macOS 2021-10-25 00:48:53 +03:00
bit_map.cc Use a 64-bit bitmap rather than a 32-bit bitmap. 2015-12-29 13:10:02 -08:00
bit_map.h bit_map: Add missing include for size_t definition 2015-12-30 17:42:18 -05:00
bit_range.h [GPU] SharedMemory: common sparse memory allocation 2020-10-06 21:32:44 +03:00
bit_stream.cc [Base] BitStream: Fix writing to non zeroed mem 2021-05-01 12:41:02 -05:00
bit_stream.h Add missing header includes. 2015-09-22 07:38:59 -07:00
byte_order.h [UI/HID] ui::VirtualKey enum 2021-07-01 23:32:26 +03:00
byte_stream.cc [Base] ByteStream assert cleanup. 2021-06-28 20:32:52 -05:00
byte_stream.h C++17ification. 2020-04-07 16:09:41 -05:00
clock.cc [Base] Don't use raw clock where unsupported 2021-09-13 23:13:02 +03:00
clock.h [Base] Don't use raw clock where unsupported 2021-09-13 23:13:02 +03:00
clock_posix.cc [Base] Fix Clock platform functions on POSIX. 2021-06-18 16:10:19 +03:00
clock_win.cc [Base] Optional raw Clock source. 2019-12-01 17:11:58 -06:00
clock_x64.cc Fix xenia-core build on macOS 2021-10-25 00:48:53 +03:00
console.h [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
console_app_main.h [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
console_app_main_android.cc [Base/UI] Android globals initialization + WindowedAppContext parts 2021-09-13 23:09:28 +03:00
console_app_main_posix.cc [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
console_app_main_win.cc [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
console_posix.cc [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
console_win.cc [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
cvar.cc [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
cvar.h [Config] Use locale-neutral fmt instead of to_string 2021-08-28 18:26:18 -05:00
debug_visualizers.natvis [Base] Fix natvis for new endian_store. 2021-06-28 20:32:52 -05:00
debugging.h Overhaul logging. 2020-04-07 16:09:41 -05:00
debugging_mac.cc Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
debugging_posix.cc [debugging linux] Implement functions 2020-11-14 13:17:15 -06:00
debugging_win.cc Overhaul logging. 2020-04-07 16:09:41 -05:00
delegate.h More style. 2015-08-07 21:29:03 -07:00
exception_handler.h [Memory] Move new watches to heap-aware Memory from MMIOHandler 2019-07-30 08:00:20 +03:00
exception_handler_linux.cc Fix travis LINT 2017-09-20 23:29:39 +02:00
exception_handler_posix.cc xenia-cpu-ppc-tests is now building on linux 2017-02-10 23:54:10 -06:00
exception_handler_win.cc [Memory] Move new watches to heap-aware Memory from MMIOHandler 2019-07-30 08:00:20 +03:00
filesystem.cc filesystem: use std for CreateFolder 2020-04-09 09:44:48 -05:00
filesystem.h filesystem: use std for DeleteFile 2020-04-09 09:44:48 -05:00
filesystem_posix.cc filesystem: use std for DeleteFile 2020-04-09 09:44:48 -05:00
filesystem_wildcard.cc C++17ification. 2020-04-07 16:09:41 -05:00
filesystem_wildcard.h C++17ification. 2020-04-07 16:09:41 -05:00
filesystem_win.cc Avoid using '#' format spec for X hex numbers. 2020-04-09 11:25:08 -05:00
fuzzy.cc [Base] Add missing header for VS2017 2021-01-31 23:22:59 -06:00
fuzzy.h C++17ification. 2020-04-07 16:09:41 -05:00
hash.h [D3D12] unordered_map instead of multimap in TextureCache 2021-05-05 21:40:00 +03:00
logging.cc Fix xenia-core build on macOS 2021-10-25 00:48:53 +03:00
logging.h [Base] Android log sink + sink cleanup 2021-09-13 22:53:19 +03:00
main_android.cc [Base/UI] Android globals initialization + WindowedAppContext parts 2021-09-13 23:09:28 +03:00
main_android.h [Base/UI] Android globals initialization + WindowedAppContext parts 2021-09-13 23:09:28 +03:00
main_init_android.cc [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
main_init_posix.cc [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
main_init_win.cc [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
main_win.cc [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
main_win.h [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
mapped_memory.h C++17ification. 2020-04-07 16:09:41 -05:00
mapped_memory_posix.cc C++17ification. 2020-04-07 16:09:41 -05:00
mapped_memory_win.cc [Memory] List all partitions supporting non-FromApp memory mapping functions 2021-05-04 23:27:57 +03:00
math.cc More style cleanup. 2015-08-06 20:17:01 -07:00
math.h [Base] saturate_signed NaN comment 2021-06-05 15:04:06 +03:00
memory.cc [Base] Replace GCC workaround (loop opt bug) 2021-09-27 13:43:57 +03:00
memory.h [Base/UI] Android globals initialization + WindowedAppContext parts 2021-09-13 23:09:28 +03:00
memory_posix.cc [Base/UI] Android globals initialization + WindowedAppContext parts 2021-09-13 23:09:28 +03:00
memory_win.cc [Memory] List all partitions supporting non-FromApp memory mapping functions 2021-05-04 23:27:57 +03:00
mutex.cc Switch back to std:: muteces. mutices. mutexen. 2015-09-06 13:34:08 -07:00
mutex.h Defer XAM UI functions & other improvements. 2020-11-27 05:15:17 -06:00
platform.h [Base] Use pragma pack for non msvc as well. 2021-06-02 22:28:43 -05:00
platform_linux.h C++17ification. 2020-04-07 16:09:41 -05:00
platform_win.h [Kernel] Implement XeCryptBnQwNeRsaPubCrypt via BCrypt (win32 only) 2021-01-03 14:38:01 -06:00
premake5.lua [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
profiling.cc [UI/HID] ui::VirtualKey enum 2021-07-01 23:32:26 +03:00
profiling.h [UI/HID] ui::VirtualKey enum 2021-07-01 23:32:26 +03:00
reset_scope.h DANGER DANGER. Switching to global critical region. 2015-09-06 09:30:54 -07:00
ring_buffer.cc Update RingBuffer - Add immediate read/write and some error checking asserts. 2016-01-24 22:39:05 -06:00
ring_buffer.h [Base] RingBuffer: Add ReadAndSwap instead of piggybacking off of Read 2018-02-18 12:18:20 -06:00
socket.h C++17ification. 2020-04-07 16:09:41 -05:00
socket_win.cc Overhaul logging. 2020-04-07 16:09:41 -05:00
string.cc C++17ification. 2020-04-07 16:09:41 -05:00
string.h C++17ification. 2020-04-07 16:09:41 -05:00
string_buffer.cc [Base] Add repeating character append to StringBuffer. 2020-04-13 12:57:14 -05:00
string_buffer.h [Base] Add repeating character append to StringBuffer. 2020-04-13 12:57:14 -05:00
string_key.h [Base] Fix namespacing 2021-06-02 22:28:43 -05:00
string_util.h [Base] Fix fpfs with GCC/Clang 2021-08-08 10:23:52 -05:00
system.h [Base] Implement message boxes on Linux 2021-06-29 20:41:20 -05:00
system_linux.cc [Base] Implement message boxes on Linux 2021-06-29 20:41:20 -05:00
system_win.cc [Base] LaunchWebBrowser now takes a string view. 2021-06-28 20:32:52 -05:00
threading.cc Use stdlib 'hardware_concurrency' to get logical processor count 2016-01-20 11:04:28 -05:00
threading.h [Base/UI] Android globals initialization + WindowedAppContext parts 2021-09-13 23:09:28 +03:00
threading_mac.cc [Threading] Android thread naming and other cleanup 2020-11-22 20:03:45 +03:00
threading_posix.cc [Base/UI] Android globals initialization + WindowedAppContext parts 2021-09-13 23:09:28 +03:00
threading_win.cc [Base] Fix HighResolutionTimer 2021-06-02 22:28:43 -05:00
type_pool.h Switch back to std:: muteces. mutices. mutexen. 2015-09-06 13:34:08 -07:00
utf8.cc Fix xenia-core build on macOS 2021-10-25 00:48:53 +03:00
utf8.h [Base] Plain string variant of UTF-8 join_paths. 2021-05-02 08:18:22 -05:00
vec128.cc C++17ification. 2020-04-07 16:09:41 -05:00
vec128.h [Base] Remove redundant copy and move operators 2021-06-02 22:28:43 -05:00
x64_context.cc Math: Fix [l/t]zcnt intrinsics on GCC 2017-05-11 10:32:13 -05:00
x64_context.h (for now) Stub X64Context out on non-AMD64 platforms 2017-05-09 20:53:25 -05:00
xxhash.h [GPU] XXH3 hash instead of XXH64 2020-12-08 22:31:09 +03:00

README.md

A lightweight cross-platform/compiler compatibility library.

This library presupposes C++11/14 support. As more compilers get C++14 it will assume that.

Other parts of the project use this to avoid creating spaghetti linkage. Code specific to the emulator should be kept out, as not all of the projects that depend on this need it.

Where possible, C++11/14 STL should be used instead of adding any code in here, and the code should be kept as small as possible (by reusing STL/etc). Third party dependencies should be kept to a minimum.

Target compilers:

  • MSVC++ 2013+
  • Clang 3.4+
  • GCC 4.8+.

Target platforms:

  • Windows 8+ (_win.cc suffix)
  • Mac OSX 10.9+ (_mac.cc suffix, falling back to _posix.cc)
  • Linux ? (_posix.cc suffix)

Avoid the use of platform-specific #ifdefs and instead try to put all platform-specific code in the appropriately suffixed cc files.