xenia-canary/src/xenia/base
Ben Vanik cd02cdfc70 Making memory API less error prone; fixes buffer/constant uploads. 2016-02-20 19:19:29 -08:00
..
README.md Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
arena.cc Some xb style cleanup. 2015-08-05 22:06:20 -07:00
arena.h Some xb style cleanup. 2015-08-05 22:06:20 -07:00
assert.h Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
atomic.h Linux tweaks. 2015-08-18 14:18:00 -07: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_stream.cc Add missing header includes. 2015-09-22 07:38:59 -07:00
bit_stream.h Add missing header includes. 2015-09-22 07:38:59 -07:00
byte_order.h More style cleanup. 2015-08-06 20:17:01 -07:00
byte_stream.cc byte_stream: Remove template specialization in class scope 2015-12-30 17:42:18 -05:00
byte_stream.h byte_stream: Remove template specialization in class scope 2015-12-30 17:42:18 -05:00
clock.cc Save/Restore the guest clock in XThreads 2015-12-29 13:09:47 -08:00
clock.h Save/Restore the guest clock in XThreads 2015-12-29 13:09:47 -08:00
clock_win.cc Replacing the tick count timer with xplat abstraction (also better rate). 2015-07-19 10:11:54 -07:00
debug_visualizers.natvis xe::be<uint64_t> visualizers 2016-01-13 01:30:46 -06:00
debugging.h Adding some comments. 2015-12-02 17:37:48 -08:00
debugging_mac.cc Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
debugging_win.cc Starting to remove windows.h includes from things. 2015-07-13 20:49:29 -07:00
delegate.h More style. 2015-08-07 21:29:03 -07:00
exception_handler.h A new debugger. 2015-09-20 21:31:05 -07:00
exception_handler_win.cc A new debugger. 2015-09-20 21:31:05 -07:00
filesystem.cc Logging to with a ringbuffer. Much faster. 2015-08-29 18:06:30 -07:00
filesystem.h filesystem::CreateFile 2015-12-29 12:35:55 -08:00
filesystem_win.cc Adding back FILE_FLAG_BACKUP_SEMANTICS. 2015-12-30 09:19:54 -08:00
logging.cc Shuffling kernel/. 2015-09-06 18:07:52 -07:00
logging.h Adding thread handle to logging. 2015-08-29 20:49:26 -07:00
main.h More style cleanup. 2015-08-06 20:17:01 -07:00
main_posix.cc Logging to with a ringbuffer. Much faster. 2015-08-29 18:06:30 -07:00
main_win.cc Standardizing wchar->char in main(). 2016-01-01 12:46:26 -08:00
mapped_memory.h MappedMemory: Support opening empty files (and extending them) / remapping files / Truncate on close 2015-12-29 13:09:21 -08:00
mapped_memory_posix.cc Linux tweaks. 2015-08-18 14:18:00 -07:00
mapped_memory_win.cc MappedMemory: Support opening empty files (and extending them) / remapping files / Truncate on close 2015-12-29 13:09:21 -08:00
math.cc More style cleanup. 2015-08-06 20:17:01 -07:00
math.h Count packed bytes used by a constant map. 2016-02-18 16:43:41 -08:00
memory.cc Making memory API less error prone; fixes buffer/constant uploads. 2016-02-20 19:19:29 -08:00
memory.h Making memory API less error prone; fixes buffer/constant uploads. 2016-02-20 19:19:29 -08:00
memory_test.cc Include order fixes. 2015-12-27 10:27:46 -08:00
memory_win.cc Removing bogus assert. 2015-12-05 23:24:17 -08:00
mutex.cc Switch back to std:: muteces. mutices. mutexen. 2015-09-06 13:34:08 -07:00
mutex.h Switch back to std:: muteces. mutices. mutexen. 2015-09-06 13:34:08 -07:00
platform.h Some xb style cleanup. 2015-08-05 22:06:20 -07:00
platform_win.cc VirtualProtect platform abstraction. 2015-07-15 18:20:05 -07:00
platform_win.h Fixing include orders and whitelisting others. 2015-11-21 11:34:46 -08:00
premake5.lua Folding build_tools back into the main repo for simplicity. 2015-12-30 16:53:14 -08:00
profiling.cc Decouple MicroProfileFlip from Profiler::Present (and start a new frame in XE_SWAP) 2016-02-07 19:25:30 -06:00
profiling.h Decouple MicroProfileFlip from Profiler::Present (and start a new frame in XE_SWAP) 2016-02-07 19:25:30 -06: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 Update RingBuffer - Add immediate read/write and some error checking asserts. 2016-01-24 22:39:05 -06:00
socket.h Some xb style cleanup. 2015-08-05 22:06:20 -07:00
socket_win.cc Cleanup for the latest clang-format version. 2015-12-03 19:52:02 -08:00
string.cc Reconcile debugger and save state stuff into a single implementation. 2016-01-18 11:48:21 -08:00
string.h Trace dump tool, for dumping pngs (and in the future more stuff). 2015-12-13 11:59:14 -08:00
string_buffer.cc First pass ShaderTranslator base type, able to disasm in msft style. 2015-11-28 16:19:04 -08:00
string_buffer.h First pass ShaderTranslator base type, able to disasm in msft style. 2015-11-28 16:19:04 -08:00
string_util.h More workarounds for __m128. 2015-09-22 07:44:04 -07:00
threading.cc Use stdlib 'hardware_concurrency' to get logical processor count 2016-01-20 11:04:28 -05:00
threading.h Use TLS to store the current thread. 2015-12-29 13:09:24 -08:00
threading_linux.cc Linux tweaks. 2015-08-18 14:18:00 -07:00
threading_mac.cc Code cleanup: moving poly/ into xenia/base/ 2015-05-02 03:42:51 -07:00
threading_posix.cc Linux tweaks. 2015-08-18 14:18:00 -07:00
threading_win.cc Use stdlib 'hardware_concurrency' to get logical processor count 2016-01-20 11:04:28 -05:00
type_pool.h Switch back to std:: muteces. mutices. mutexen. 2015-09-06 13:34:08 -07:00
vec128.h vec128 bitwise operators 2016-01-13 01:29:47 -06:00
x64_context.cc Merge branch 'linuxfix' of https://github.com/sephiroth99/xenia into sephiroth99-linuxfix 2015-12-31 14:39:23 -08:00
x64_context.h Merge branch 'linuxfix' of https://github.com/sephiroth99/xenia into sephiroth99-linuxfix 2015-12-31 14:39:23 -08: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.