Move inline struct definitions out of place for C++ compatibility

This commit is contained in:
Jeffrey Pfau 2014-01-28 06:52:01 -08:00
parent a72c77a3df
commit 48a3522fbc
2 changed files with 59 additions and 54 deletions

View File

@ -14,6 +14,20 @@ enum ThreadState {
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 @@ struct GBAThread {
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;

View File

@ -46,48 +46,51 @@ union GBAColor {
uint16_t packed;
};
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;
unsigned tile : 10;
unsigned priority : 2;
unsigned palette : 4;
int : 16;
};
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;
unsigned tile : 10;
unsigned priority : 2;
unsigned palette : 4;
int : 16;
};
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;
int x : 9;
int : 3;
unsigned hflip : 1;
unsigned vflip : 1;
unsigned size : 2;
unsigned tile : 10;
unsigned priority : 2;
unsigned palette : 4;
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;
int x : 9;
unsigned matIndex : 5;
unsigned size : 2;
unsigned tile : 10;
unsigned priority : 2;
unsigned palette : 4;
int : 16;
} tobj[128];
struct GBAObj obj[128];
struct GBATransformedObj tobj[128];
struct GBAOAMMatrix {
int : 16;