all repos — mgba @ 48a3522fbc893fe0f30a008c5cdd51ed546afae0

mGBA Game Boy Advance Emulator

Move inline struct definitions out of place for C++ compatibility
Jeffrey Pfau jeffrey@endrift.com
Tue, 28 Jan 2014 06:52:01 -0800
commit

48a3522fbc893fe0f30a008c5cdd51ed546afae0

parent

a72c77a3df79975cdb40a5fbd7e88df7b3934c46

2 files changed, 53 insertions(+), 48 deletions(-)

jump to
M src/gba/gba-thread.hsrc/gba/gba-thread.h

@@ -14,6 +14,20 @@ THREAD_EXITING = 2,

THREAD_SHUTDOWN = 3 }; +struct GBASync { + int videoFramePending; + int videoFrameWait; + int videoFrameSkip; + int videoFrameOn; + Mutex videoFrameMutex; + Condition videoFrameAvailableCond; + Condition videoFrameRequiredCond; + + int audioWait; + Condition audioRequiredCond; + Mutex audioBufferMutex; +}; + struct GBAThread { // Output enum ThreadState state;

@@ -39,19 +53,7 @@ ThreadCallback cleanCallback;

ThreadCallback frameCallback; void* userData; - struct GBASync { - int videoFramePending; - int videoFrameWait; - int videoFrameSkip; - int videoFrameOn; - Mutex videoFrameMutex; - Condition videoFrameAvailableCond; - Condition videoFrameRequiredCond; - - int audioWait; - Condition audioRequiredCond; - Mutex audioBufferMutex; - } sync; + struct GBASync sync; int rewindBufferSize; int rewindBufferCapacity;
M src/gba/gba-video.hsrc/gba/gba-video.h

@@ -46,48 +46,51 @@ };

uint16_t packed; }; -union GBAOAM { - struct GBAObj { - unsigned y : 8; - unsigned transformed : 1; - unsigned disable : 1; - enum ObjMode mode : 2; - unsigned mosaic : 1; - unsigned multipalette : 1; - enum ObjShape shape : 2; +struct GBAObj { + unsigned y : 8; + unsigned transformed : 1; + unsigned disable : 1; + enum ObjMode mode : 2; + unsigned mosaic : 1; + unsigned multipalette : 1; + enum ObjShape shape : 2; + + int x : 9; + int : 3; + unsigned hflip : 1; + unsigned vflip : 1; + unsigned size : 2; - int x : 9; - int : 3; - unsigned hflip : 1; - unsigned vflip : 1; - unsigned size : 2; + unsigned tile : 10; + unsigned priority : 2; + unsigned palette : 4; - unsigned tile : 10; - unsigned priority : 2; - unsigned palette : 4; + int : 16; +}; - int : 16; - } obj[128]; +struct GBATransformedObj { + unsigned y : 8; + unsigned transformed : 1; + unsigned doublesize : 1; + enum ObjMode mode : 2; + unsigned mosaic : 1; + unsigned multipalette : 1; + enum ObjShape shape : 2; - struct GBATransformedObj { - unsigned y : 8; - unsigned transformed : 1; - unsigned doublesize : 1; - enum ObjMode mode : 2; - unsigned mosaic : 1; - unsigned multipalette : 1; - enum ObjShape shape : 2; + int x : 9; + unsigned matIndex : 5; + unsigned size : 2; - int x : 9; - unsigned matIndex : 5; - unsigned size : 2; + unsigned tile : 10; + unsigned priority : 2; + unsigned palette : 4; - unsigned tile : 10; - unsigned priority : 2; - unsigned palette : 4; + int : 16; +}; - int : 16; - } tobj[128]; +union GBAOAM { + struct GBAObj obj[128]; + struct GBATransformedObj tobj[128]; struct GBAOAMMatrix { int : 16;