xenia-canary/src/xenia/base
Gliniak 7977d7ab98 [Base] Changed entry point to wmain for Windows
This prevents subapps from crashing when executing wmain specific functions
2022-02-01 15:50:48 -06:00
..
testing [Base] Align test memory 2022-01-25 12:55:10 -06: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 [Base] Add user-literals for several memory sizes 2022-01-02 11:51:31 -06:00
arena.h [Base] Add user-literals for several memory sizes 2022-01-02 11:51:31 -06: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] Android JNIEnv attachment and LaunchWebBrowser 2022-01-30 23:35:40 +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 [Base] Changed entry point to wmain for Windows 2022-02-01 15:50:48 -06:00
console_posix.cc [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
console_win.cc [Base] Changed entry point to wmain for Windows 2022-02-01 15:50:48 -06:00
cvar.cc [UI] Loop thread to main thread WindowedAppContext 2021-08-28 19:38:24 +03:00
cvar.h [UI] Image post-processing and full presentation/window rework 2022-01-29 13:22:03 +03: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 [UI] Image post-processing and full presentation/window rework 2022-01-29 13:22:03 +03:00
filesystem_posix.cc [UI] Image post-processing and full presentation/window rework 2022-01-29 13:22:03 +03: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 [UI] Image post-processing and full presentation/window rework 2022-01-29 13:22:03 +03: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
literals.h [Base] Add user-literals for several memory sizes 2022-01-02 11:51:31 -06:00
logging.cc [Base] Android error reporting via SIGABRT/RuntimeException 2022-01-30 18:36:11 +03:00
logging.h [Base] Android log sink + sink cleanup 2021-09-13 22:53:19 +03:00
main_android.cc [Base] GetAndroidThreadJniEnv capitals, move JNI usage tips there 2022-02-01 21:33:20 +03:00
main_android.h [Base] GetAndroidThreadJniEnv capitals, move JNI usage tips there 2022-02-01 21:33:20 +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] Image post-processing and full presentation/window rework 2022-01-29 13:22:03 +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 [UI] Image post-processing and full presentation/window rework 2022-01-29 13:22:03 +03:00
memory.cc [Base] Fix `copy_and_swap_16_in_32_aligned` 2022-01-22 16:18:54 +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] Image post-processing and full presentation/window rework 2022-01-29 13:22:03 +03:00
profiling.h [UI] Image post-processing and full presentation/window rework 2022-01-29 13:22:03 +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 user-literals for several memory sizes 2022-01-02 11:51:31 -06: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 `to_hex_string` out-of-indexing for `vec128_t` type 2022-01-02 15:14:58 -06:00
system.h [Base] Android JNIEnv attachment and LaunchWebBrowser 2022-01-30 23:35:40 +03:00
system_android.cc [Base] GetAndroidThreadJniEnv capitals, move JNI usage tips there 2022-02-01 21:33:20 +03:00
system_gnulinux.cc [Base] Android error reporting via SIGABRT/RuntimeException 2022-01-30 18:36:11 +03: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] Add user-literals for several memory sizes 2022-01-02 11:51:31 -06:00
threading_mac.cc [Threading] Android thread naming and other cleanup 2020-11-22 20:03:45 +03:00
threading_posix.cc [Linux] Use sched_yield instead of the deprecated pthread_yield 2021-12-18 19:43:17 +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 [Base] Add `operator<<` string conversion for `vec128_t` 2022-01-02 15:14:58 -06:00
vec128.h [Base] Add `operator<<` string conversion for `vec128_t` 2022-01-02 15:14:58 -06: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.