Big restructuring of how the video plugin works. In linux and windows you shouldn't see a change in the functionality; however, there are changes in how render to main or not, and fullscreen modes, and such are handled. Input is largely restructured for the video plugin. It is now handled by the host. Keys for pausing and changing fullscreen are configurable. More will probably be later. This is probably classified as highly experimental.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@5336 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Glenn Rice
2010-04-12 01:33:10 +00:00
parent ba853e682c
commit 33a64d5db0
53 changed files with 1003 additions and 1649 deletions

View File

@ -21,8 +21,10 @@ enum PLUGIN_COMM
WM_USER_PAUSE = 10,
WM_USER_STOP,
WM_USER_CREATE,
WM_USER_SETCURSOR,
WM_USER_KEYDOWN,
WM_USER_VIDEO_STOP,
TOGGLE_DISPLAYMODE,
TOGGLE_FULLSCREEN,
VIDEO_DESTROY, // The video debugging window was destroyed
AUDIO_DESTROY, // The audio debugging window was destroyed

View File

@ -30,17 +30,16 @@
#define PAD_BUTTON_START 0x1000
typedef void (*TLog)(const char* _pMessage);
typedef bool (*TRendererHasFocus)(void);
typedef struct
{
HWND hWnd;
#if defined HAVE_X11 && HAVE_X11
#if defined(HAVE_GTK2) && HAVE_GTK2
void *pPanel;
#endif
void *pXWindow;
#endif
TLog pLog;
TRendererHasFocus pRendererHasFocus;
} SPADInitialize;
typedef struct

View File

@ -18,11 +18,11 @@ typedef void (*TScheduleEvent_Threadsafe)(int cyclesIntoFuture, int e
typedef unsigned char* (*TGetMemoryPointer)(const unsigned int _iAddress);
typedef void (*TVideoLog)(const char* _pMessage, int _bBreak);
typedef void (*TSysMessage)(const char *fmt, ...);
typedef void (*TRequestWindowSize)(int _iWidth, int _iHeight, bool _bFullscreen);
typedef void (*TRequestWindowSize)(int& x, int& y, int& width, int& height);
typedef void (*TCopiedToXFB)(bool video_update);
typedef unsigned int (*TPeekMessages)(void);
typedef void (*TUpdateFPSDisplay)(const char* text); // sets the window title
typedef void (*TKeyPressed)(int keycode, bool shift, bool control); // passes keys to the hotkey function
typedef void (*TCoreMessage)(int Id); // passes message to the core
enum FieldType
{
@ -72,9 +72,6 @@ typedef struct
{
void *pWindowHandle;
#if defined(HAVE_X11) && HAVE_X11
#if defined(HAVE_GTK2) && HAVE_GTK2
void *pPanel;
#endif
void *pXWindow;
#endif
@ -88,7 +85,7 @@ typedef struct
TCopiedToXFB pCopiedToXFB;
TPeekMessages pPeekMessages;
TUpdateFPSDisplay pUpdateFPSDisplay;
TKeyPressed pKeyPress;
TCoreMessage pCoreMessage;
void *pMemoryBase;
bool bWii;
bool bOnThread;

View File

@ -14,20 +14,19 @@ typedef void (*TLogv)(const char* _pMessage, int _v);
// This is called when the Wiimote sends input reports to the Core.
// Payload: an L2CAP packet.
typedef void (*TWiimoteInput)(int _number, u16 _channelID, const void* _pData, u32 _Size);
typedef bool (*TRendererHasFocus)(void);
// This data is passed from the core on initialization.
typedef struct
{
HWND hWnd;
#if defined HAVE_X11 && HAVE_X11
#if defined(HAVE_GTK2) && HAVE_GTK2
void *pPanel;
#endif
void *pXWindow;
#endif
u32 ISOId;
TLogv pLog;
TWiimoteInput pWiimoteInput;
TRendererHasFocus pRendererHasFocus;
} SWiimoteInitialize;