Closed arkhaix closed 4 years ago
One compromise might be to leave a Platform
project in place, but remove the platform-specific overrides. This would provide a central place to define those low level types and support the EMUNISCE_COMPILER_X
and EMUNISCE_PLATFORM_X
defines (OpenGLRenderer still needs them at the moment).
For now I've gone with the option of removing LinuxPlatform
and WindowsPlatform
while leaving the base Platform
project behind for build #define
s and primitive typedefs.
41 and #43 eliminated all the low-level platform specific code. Everything that's left is on the application layer, so there's no need to expose it to the machine layer at all.
I have some reservations about the primitive types (
u8
,u16
, etc) since those need to be communicated across the machine layer, but I think I can either have the machine layer define them itself, or just use thecstdint
types directly. I'm irrationally in favor of defining them in the machine layer just because thecstdint
versions are so verbose (uint8_t
vsu8
), but I might convince myself otherwise in the future.