Skip to content
Platform abstraction library in C++
C++ C
Failed to load latest commit information.
vs2008 vs2008 stdint.h May 7, 2013
vs20xx use ms-official inttypes.h, use macro for pointer format string Sep 28, 2014
.gitignore ignore output files Mar 25, 2013
API.h Initial checkin, forked from Helium Dec 4, 2012
Assert.cpp Break in the debugger on error trace Jan 27, 2014
Assert.h kill #pragma TODO (in favor of // TODO: Feb 6, 2014
AssertPosix.cpp update posix assert impl Jul 30, 2013
AssertWin.cpp just break when assert is triggered with debugger attached (skip the … Aug 13, 2013
Atomic.h fix some mac compile issues, fixup some gcc-on-darwin code (even thou… Aug 27, 2013
AtomicPosix.inl tidy up compiler config headers, move type traits handling out to sep… Aug 27, 2013
AtomicWin.inl fix atomic pointer ops on windows Jun 28, 2013
CompilerCl.h properly flag unused parameters on platforms what warn about it, closes Jan 19, 2015
CompilerClang.h properly flag unused parameters on platforms what warn about it, closes Jan 19, 2015
CompilerGcc.h properly flag unused parameters on platforms what warn about it, closes Jan 19, 2015
Condition.h sigh Mar 25, 2013
Condition.inl Initial checkin, forked from Helium Dec 4, 2012
ConditionPosix.cpp fix some socket build issues, implement timed out wait on condition Mar 27, 2013
ConditionWin.cpp Initial checkin, forked from Helium Dec 4, 2012
Console.h add some scanf support Mar 20, 2013
Console.inl Initial checkin, forked from Helium Dec 4, 2012
ConsolePosix.cpp check return value of fgets Jul 17, 2013
ConsoleWin.cpp fix color printing on windows Jul 18, 2013
ConsoleWin.vsscanf.impl add some scanf support Mar 20, 2013
CpuX86.h separate windows' intrin.h from intel sse's xmmintrin.h Mar 21, 2013
Encoding.cpp Initial checkin, forked from Helium Dec 4, 2012
Encoding.h cull WCHAR_T pp blocks, tidy up printing and scanning Jun 8, 2013
Encoding.inl A cleanup pass for initial linux code Mar 19, 2013
EncodingWin.cpp Fixing unicode conversion issue Feb 19, 2013
Error.h kill tchar_t, tstring, tstream(s) Jun 10, 2013
ErrorPosix.cpp fixup POSIX code for tchar_t, tstring, tstream(s) change Jun 10, 2013
ErrorWin.cpp kill tchar_t, tstring, tstream(s) Jun 10, 2013
Exception.cpp kill tchar_t, tstring, tstream(s) Jun 10, 2013
Exception.h simplify some file system locations, remove crash dumps Jan 2, 2014
Exception.inl kill tchar_t, tstring, tstream(s) Jun 10, 2013
ExceptionPosix.cpp Linux: Check for debugger present via /proc/self/status Nov 9, 2014
ExceptionWin.cpp C++11 requires a space between literals Sep 28, 2014
ExceptionWin.h simplify some file system locations, remove crash dumps Jan 3, 2014
File.cpp Fix file path creation and canonicalization on posix. Aug 23, 2014
File.h Fix file path creation and canonicalization on posix. Aug 24, 2014
File.inl kill tchar_t, tstring, tstream(s) Jun 10, 2013
FilePosix.cpp fix compile issue w/ non-debug configs Mar 30, 2015
FileWin.cpp Fix MakePath on Windows as well. Aug 24, 2014
LICENSE.md update license Sep 23, 2013
Locks.cpp Add support for write-locking a lock that has already been write-lock… Feb 9, 2014
Locks.h Add support for write-locking a lock that has already been write-lock… Feb 9, 2014
Locks.inl Fixed crash when loading many objects at once. Fixed crashes related … Jan 21, 2014
LocksPosix.cpp cleanup mutex attribute Apr 1, 2013
LocksWin.cpp switch Mutex back to using CRITICAL_SECTION, add IntervalTimer class Mar 22, 2013
Memory.cpp Initial checkin, forked from Helium Dec 4, 2012
Memory.h Initial checkin, forked from Helium Dec 4, 2012
MemoryHeap.cpp C++11 requires a space between literals Sep 29, 2014
MemoryHeap.dlmalloc.c alternative compile fix for dlmalloc on linux Mar 8, 2014
MemoryHeap.h fix windows after fix to linux Mar 8, 2014
MemoryHeap.inl properly flag unused parameters on platforms what warn about it, closes Jan 19, 2015
MemoryHeapImpl.inl fix for mac after the fix for windows after the fix for linux Mar 8, 2014
MemoryHeapPosix.cpp handle OSX's MAP_ANON usage in code rather than build script Dec 16, 2015
MemoryHeapWin.cpp allow disabling of memory heaps Apr 2, 2013
NewDelete.h split custom from new and delete overrides Feb 16, 2014
PlatformPch.cpp split custom from new and delete overrides Feb 17, 2014
PlatformPch.h Initial checkin, forked from Helium Dec 4, 2012
Process.h Tidy up module apis May 18, 2014
ProcessPosix.cpp fix fetching of HOME on posix Aug 25, 2014
ProcessWin.cpp vs2013 deprecation fix Aug 23, 2014
README.md update image url Aug 24, 2014
Runtime.cpp add endianness platform enum Sep 5, 2013
Runtime.h add endianness platform enum Sep 5, 2013
Runtime.inl fix typo Sep 6, 2013
RuntimePosix.cpp implement Runtime for posix May 15, 2013
RuntimeWin.cpp kill tchar_t, tstring, tstream(s) Jun 10, 2013
Semaphore.h mac requires named semaphores Dec 30, 2013
Semaphore.inl Initial checkin, forked from Helium Dec 4, 2012
SemaphorePosix.cpp mac requires named semaphores Dec 31, 2013
SemaphoreWin.cpp Initial checkin, forked from Helium Dec 4, 2012
Socket.h assert proper apis per protocol, don't assert the result of shutdown,… Nov 8, 2013
SocketPosix.cpp Fix failure to report length of message written/read in SocketPosix.cpp. Mar 27, 2014
SocketWin.cpp assert proper apis per protocol, don't assert the result of shutdown,… Nov 8, 2013
System.h define compiler macro in compiler header Sep 10, 2013
SystemLinux.h A cleanup pass for initial linux code Mar 19, 2013
SystemMac.h Initial checkin, forked from Helium Dec 4, 2012
SystemWin.h Initial checkin, forked from Helium Dec 4, 2012
Thread.cpp update thread id api, add InvalidThreadId constant Oct 9, 2013
Thread.h update thread id api, add InvalidThreadId constant Oct 9, 2013
Thread.inl update thread id api, add InvalidThreadId constant Oct 9, 2013
ThreadPosix.cpp Use proper string copy for thread name, ensure proper thread name set… Oct 16, 2013
ThreadWin.cpp Use proper string copy for thread name, ensure proper thread name set… Oct 16, 2013
Timer.cpp don't require static initialization of timer routines, init on demand Nov 13, 2013
Timer.h don't require static initialization of timer routines, init on demand Nov 13, 2013
TimerPosix.cpp don't require static initialization of timer routines, init on demand Nov 13, 2013
TimerWin.cpp don't require static initialization of timer routines, init on demand Nov 13, 2013
Trace.cpp fix missing static on trace mutex Nov 8, 2013
Trace.h Break in the debugger on error trace Jan 28, 2014
Trace.inl make trace api static to fix tracing/asserts during static deinit (gl… Nov 8, 2013
TypeTraits.h fix compile time check for libstdc++ 4.8, indent macros Jan 8, 2014
Types.h Fix elifs with nothing to test. Nov 9, 2014
Utility.h Move c-string utility functions from Foundation to Platform Oct 16, 2013
Utility.inl Move c-string utility functions from Foundation to Platform Oct 16, 2013

README.md

Helium Game Engine

Platform is a very basic C++ wrapper of basic operating system components including:

  • Asserts
  • File system (i/o and directories)
  • Color console printing
  • Network sockets
  • Atomic operations
  • Synchronization primitives (mutex, condition)
  • Memory allocators (optional)

Design

Platform is designed to provide minimal functional wrappers, and not designed to go to a lot of effort to create convenience to the user. This is designed to make Platform easier to port since it is the most fundamental component of the Helium stack.

Platform currently supports:

  • Windows
  • MacOSX
  • Linux

However, Platform trys to consume POSIX APIs wherever possible (and reasonable), so porting to other POSIX platforms isn't a ground-up implementation.

Implementation

Note that Platform is designed to utilize UTF-8 strings in memory, even on Windows machines. Platform will convert to and from UTF-16 when calling Unicode Win32 APIs.

Location

https://github.com/HeliumProject/Platform

Something went wrong with that request. Please try again.