Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.

This commit is contained in:
Sam Lantinga
2010-01-21 06:21:52 +00:00
parent b4fc8d890d
commit e0a31b4dbb
73 changed files with 854 additions and 1068 deletions

View File

@@ -265,7 +265,7 @@ SDL_PromptAssertion(const SDL_assert_data *data, void *userdata)
{
const char *envr;
SDL_assert_state state = SDL_ASSERTION_ABORT;
SDL_WindowID window;
SDL_Window *window;
(void) userdata; /* unused in default handler. */

View File

@@ -30,9 +30,9 @@
#include "video/SDL_pixels_c.h"
#include "video/SDL_yuv_sw_c.h"
static SDL_WindowID SDL_VideoWindow = 0;
static SDL_Window *SDL_VideoWindow = NULL;
static SDL_RendererInfo SDL_VideoRendererInfo;
static SDL_TextureID SDL_VideoTexture = 0;
static SDL_Texture *SDL_VideoTexture = NULL;
static SDL_Surface *SDL_VideoSurface = NULL;
static SDL_Surface *SDL_ShadowSurface = NULL;
static SDL_Surface *SDL_PublicSurface = NULL;
@@ -294,7 +294,7 @@ SDL_CompatEventFilter(void *userdata, SDL_Event * event)
button = SDL_BUTTON_WHEELDOWN;
}
fake.button.which = event->wheel.windowID;
fake.button.which = event->wheel.which;
fake.button.button = button;
fake.button.x = x;
fake.button.y = y;
@@ -357,7 +357,7 @@ GetEnvironmentWindowPosition(int w, int h, int *x, int *y)
}
static SDL_Surface *
CreateVideoSurface(SDL_TextureID textureID)
CreateVideoSurface(SDL_Texture * texture)
{
SDL_Surface *surface;
Uint32 format;
@@ -367,7 +367,7 @@ CreateVideoSurface(SDL_TextureID textureID)
void *pixels;
int pitch;
if (SDL_QueryTexture(textureID, &format, NULL, &w, &h) < 0) {
if (SDL_QueryTexture(texture, &format, NULL, &w, &h) < 0) {
return NULL;
}
@@ -377,7 +377,7 @@ CreateVideoSurface(SDL_TextureID textureID)
return NULL;
}
if (SDL_QueryTexturePixels(textureID, &pixels, &pitch) == 0) {
if (SDL_QueryTexturePixels(texture, &pixels, &pitch) == 0) {
surface =
SDL_CreateRGBSurfaceFrom(pixels, w, h, bpp, pitch, Rmask, Gmask,
Bmask, Amask);
@@ -1504,7 +1504,7 @@ struct private_yuvhwdata
SDL_SW_YUVTexture *sw;
SDL_TextureID textureID;
SDL_Texture *texture;
Uint32 texture_format;
};
@@ -1585,9 +1585,9 @@ SDL_CreateYUVOverlay(int w, int h, Uint32 format, SDL_Surface * display)
break;
}
overlay->hwdata->textureID =
overlay->hwdata->texture =
SDL_CreateTexture(texture_format, SDL_TEXTUREACCESS_STREAMING, w, h);
if (overlay->hwdata->textureID) {
if (overlay->hwdata->texture) {
overlay->hwdata->sw = NULL;
} else {
SDL_DisplayMode current_mode;
@@ -1601,11 +1601,11 @@ SDL_CreateYUVOverlay(int w, int h, Uint32 format, SDL_Surface * display)
/* Create a supported RGB format texture for display */
SDL_GetCurrentDisplayMode(&current_mode);
texture_format = current_mode.format;
overlay->hwdata->textureID =
overlay->hwdata->texture =
SDL_CreateTexture(texture_format,
SDL_TEXTUREACCESS_STREAMING, w, h);
}
if (!overlay->hwdata->textureID) {
if (!overlay->hwdata->texture) {
SDL_FreeYUVOverlay(overlay);
return NULL;
}
@@ -1631,7 +1631,7 @@ SDL_LockYUVOverlay(SDL_Overlay * overlay)
}
} else {
if (SDL_LockTexture
(overlay->hwdata->textureID, NULL, 1, &pixels, &pitch)
(overlay->hwdata->texture, NULL, 1, &pixels, &pitch)
< 0) {
return -1;
}
@@ -1666,7 +1666,7 @@ SDL_UnlockYUVOverlay(SDL_Overlay * overlay)
void *pixels;
int pitch;
if (SDL_LockTexture
(overlay->hwdata->textureID, NULL, 1, &pixels, &pitch) == 0) {
(overlay->hwdata->texture, NULL, 1, &pixels, &pitch) == 0) {
SDL_Rect srcrect;
srcrect.x = 0;
@@ -1676,10 +1676,10 @@ SDL_UnlockYUVOverlay(SDL_Overlay * overlay)
SDL_SW_CopyYUVToRGB(overlay->hwdata->sw, &srcrect,
overlay->hwdata->texture_format,
overlay->w, overlay->h, pixels, pitch);
SDL_UnlockTexture(overlay->hwdata->textureID);
SDL_UnlockTexture(overlay->hwdata->texture);
}
} else {
SDL_UnlockTexture(overlay->hwdata->textureID);
SDL_UnlockTexture(overlay->hwdata->texture);
}
}
@@ -1690,7 +1690,7 @@ SDL_DisplayYUVOverlay(SDL_Overlay * overlay, SDL_Rect * dstrect)
SDL_SetError("Passed a NULL overlay or dstrect");
return -1;
}
if (SDL_RenderCopy(overlay->hwdata->textureID, NULL, dstrect) < 0) {
if (SDL_RenderCopy(overlay->hwdata->texture, NULL, dstrect) < 0) {
return -1;
}
SDL_RenderPresent();
@@ -1704,8 +1704,8 @@ SDL_FreeYUVOverlay(SDL_Overlay * overlay)
return;
}
if (overlay->hwdata) {
if (overlay->hwdata->textureID) {
SDL_DestroyTexture(overlay->hwdata->textureID);
if (overlay->hwdata->texture) {
SDL_DestroyTexture(overlay->hwdata->texture);
}
SDL_free(overlay->hwdata);
}

View File

@@ -646,7 +646,7 @@ SDL_SetScancodeName(SDL_scancode scancode, const char *name)
}
void
SDL_SetKeyboardFocus(int index, SDL_WindowID windowID)
SDL_SetKeyboardFocus(int index, SDL_Window * window)
{
SDL_Keyboard *keyboard = SDL_GetKeyboard(index);
int i;
@@ -657,7 +657,7 @@ SDL_SetKeyboardFocus(int index, SDL_WindowID windowID)
}
/* See if the current window has lost focus */
if (keyboard->focus && keyboard->focus != windowID) {
if (keyboard->focus && keyboard->focus != window) {
focus = SDL_FALSE;
for (i = 0; i < SDL_num_keyboards; ++i) {
if (i != index) {
@@ -674,7 +674,7 @@ SDL_SetKeyboardFocus(int index, SDL_WindowID windowID)
}
}
keyboard->focus = windowID;
keyboard->focus = window;
if (keyboard->focus) {
SDL_SendWindowEvent(keyboard->focus, SDL_WINDOWEVENT_FOCUS_GAINED,
@@ -809,7 +809,7 @@ SDL_SendKeyboardKey(int index, Uint8 state, SDL_scancode scancode)
event.key.keysym.sym = keyboard->keymap[scancode];
event.key.keysym.mod = modstate;
event.key.keysym.unicode = 0;
event.key.windowID = keyboard->focus;
event.key.windowID = keyboard->focus->id;
posted = (SDL_PushEvent(&event) > 0);
}
return (posted);
@@ -832,7 +832,7 @@ SDL_SendKeyboardText(int index, const char *text)
event.text.type = SDL_TEXTINPUT;
event.text.which = (Uint8) index;
SDL_strlcpy(event.text.text, text, SDL_arraysize(event.text.text));
event.text.windowID = keyboard->focus;
event.text.windowID = keyboard->focus->id;
posted = (SDL_PushEvent(&event) > 0);
}
return (posted);

View File

@@ -35,7 +35,7 @@ struct SDL_Keyboard
void (*FreeKeyboard) (SDL_Keyboard * keyboard);
/* Data common to all keyboards */
SDL_WindowID focus;
SDL_Window *focus;
Uint16 modstate;
Uint8 keystate[SDL_NUM_SCANCODES];
SDLKey keymap[SDL_NUM_SCANCODES];
@@ -73,7 +73,7 @@ extern void SDL_SetKeymap(int index, int start, SDLKey * keys, int length);
extern void SDL_SetScancodeName(SDL_scancode scancode, const char *name);
/* Set the keyboard focus window */
extern void SDL_SetKeyboardFocus(int index, SDL_WindowID windowID);
extern void SDL_SetKeyboardFocus(int index, SDL_Window * window);
/* Send a keyboard event for a keyboard at an index */
extern int SDL_SendKeyboardKey(int index, Uint8 state, SDL_scancode scancode);

View File

@@ -26,6 +26,7 @@
#include "SDL_events.h"
#include "SDL_events_c.h"
#include "default_cursor.h"
#include "../video/SDL_sysvideo.h"
static int SDL_num_mice = 0;
@@ -190,7 +191,7 @@ SDL_SelectMouse(int index)
return SDL_current_mouse;
}
SDL_WindowID
SDL_Window *
SDL_GetMouseFocusWindow(int index)
{
SDL_Mouse *mouse = SDL_GetMouse(index);
@@ -302,14 +303,14 @@ SDL_GetRelativeMouseState(int index, int *x, int *y)
}
void
SDL_SetMouseFocus(int id, SDL_WindowID windowID)
SDL_SetMouseFocus(int id, SDL_Window * window)
{
int index = SDL_GetMouseIndexId(id);
SDL_Mouse *mouse = SDL_GetMouse(index);
int i;
SDL_bool focus;
if (!mouse || (mouse->focus == windowID)) {
if (!mouse || (mouse->focus == window)) {
return;
}
@@ -331,7 +332,7 @@ SDL_SetMouseFocus(int id, SDL_WindowID windowID)
}
}
mouse->focus = windowID;
mouse->focus = window;
if (mouse->focus) {
focus = SDL_FALSE;
@@ -372,7 +373,7 @@ SDL_SendProximity(int id, int x, int y, int type)
event.proximity.cursor = mouse->current_end;
event.proximity.type = type;
/* FIXME: is this right? */
event.proximity.windowID = mouse->focus;
event.proximity.windowID = mouse->focus->id;
posted = (SDL_PushEvent(&event) > 0);
if (type == SDL_PROXIMITYIN) {
mouse->proximity = SDL_TRUE;
@@ -478,7 +479,7 @@ SDL_SendMouseMotion(int id, int relative, int x, int y, int pressure)
event.motion.cursor = mouse->current_end;
event.motion.xrel = xrel;
event.motion.yrel = yrel;
event.motion.windowID = mouse->focus;
event.motion.windowID = mouse->focus->id;
posted = (SDL_PushEvent(&event) > 0);
}
mouse->last_x = mouse->x;
@@ -531,7 +532,7 @@ SDL_SendMouseButton(int id, Uint8 state, Uint8 button)
event.button.button = button;
event.button.x = mouse->x;
event.button.y = mouse->y;
event.button.windowID = mouse->focus;
event.button.windowID = mouse->focus->id;
posted = (SDL_PushEvent(&event) > 0);
}
return posted;
@@ -555,14 +556,14 @@ SDL_SendMouseWheel(int index, int x, int y)
event.wheel.which = (Uint8) index;
event.wheel.x = x;
event.wheel.y = y;
event.wheel.windowID = mouse->focus;
event.wheel.windowID = mouse->focus->id;
posted = (SDL_PushEvent(&event) > 0);
}
return posted;
}
void
SDL_WarpMouseInWindow(SDL_WindowID windowID, int x, int y)
SDL_WarpMouseInWindow(SDL_Window * window, int x, int y)
{
SDL_Mouse *mouse = SDL_GetMouse(SDL_current_mouse);
@@ -571,9 +572,9 @@ SDL_WarpMouseInWindow(SDL_WindowID windowID, int x, int y)
}
if (mouse->WarpMouse) {
mouse->WarpMouse(mouse, windowID, x, y);
mouse->WarpMouse(mouse, window, x, y);
} else {
SDL_SetMouseFocus(SDL_current_mouse, windowID);
SDL_SetMouseFocus(SDL_current_mouse, window);
SDL_SendMouseMotion(SDL_current_mouse, 0, x, y, 0);
}
}

View File

@@ -48,7 +48,7 @@ struct SDL_Mouse
void (*FreeCursor) (SDL_Cursor * cursor);
/* Warp the mouse to (x,y) */
void (*WarpMouse) (SDL_Mouse * mouse, SDL_WindowID windowID, int x,
void (*WarpMouse) (SDL_Mouse * mouse, SDL_Window * window, int x,
int y);
/* Free the mouse when it's time */
@@ -65,7 +65,7 @@ struct SDL_Mouse
/* Data common to all mice */
int id;
SDL_WindowID focus;
SDL_Window *focus;
int which;
int x;
int y;
@@ -106,7 +106,7 @@ extern void SDL_DelMouse(int index);
extern void SDL_ResetMouse(int index);
/* Set the mouse focus window */
extern void SDL_SetMouseFocus(int id, SDL_WindowID windowID);
extern void SDL_SetMouseFocus(int id, SDL_Window * window);
/* Send a mouse motion event for a mouse */
extern int SDL_SendMouseMotion(int id, int relative, int x, int y, int z);

View File

@@ -44,13 +44,11 @@ RemovePendingSizeEvents(void * userdata, SDL_Event *event)
}
int
SDL_SendWindowEvent(SDL_WindowID windowID, Uint8 windowevent, int data1,
SDL_SendWindowEvent(SDL_Window * window, Uint8 windowevent, int data1,
int data2)
{
int posted;
SDL_Window *window;
window = SDL_GetWindowFromID(windowID);
if (!window) {
return 0;
}
@@ -152,7 +150,7 @@ SDL_SendWindowEvent(SDL_WindowID windowID, Uint8 windowevent, int data1,
event.window.event = windowevent;
event.window.data1 = data1;
event.window.data2 = data2;
event.window.windowID = windowID;
event.window.windowID = window->id;
/* Fixes queue overflow with resize events that aren't processed */
if (windowevent == SDL_WINDOWEVENT_RESIZED) {

View File

@@ -24,7 +24,7 @@
#ifndef _SDL_windowevents_c_h
#define _SDL_windowevents_c_h
extern int SDL_SendWindowEvent(SDL_WindowID windowID, Uint8 windowevent,
extern int SDL_SendWindowEvent(SDL_Window * window, Uint8 windowevent,
int data1, int data2);
#endif /* _SDL_windowevents_c_h */

View File

@@ -171,7 +171,7 @@ SDL_SetGammaRamp(const Uint16 * red, const Uint16 * green, const Uint16 * blue)
SDL_UninitializedVideo();
return -1;
}
return SDL_SetGammaRampForDisplay(&SDL_CurrentDisplay, red, green, blue);
return SDL_SetGammaRampForDisplay(SDL_CurrentDisplay, red, green, blue);
}
int
@@ -230,7 +230,7 @@ SDL_GetGammaRamp(Uint16 * red, Uint16 * green, Uint16 * blue)
SDL_UninitializedVideo();
return -1;
}
return SDL_GetGammaRampForDisplay(&SDL_CurrentDisplay, red, green, blue);
return SDL_GetGammaRampForDisplay(SDL_CurrentDisplay, red, green, blue);
}
/* vi: set ts=4 sw=4 expandtab: */

View File

@@ -321,7 +321,7 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyTexture = GL_DestroyTexture;
renderer->DestroyRenderer = GL_DestroyRenderer;
renderer->info = GL_RenderDriver.info;
renderer->window = window->id;
renderer->window = window;
renderer->driverdata = data;
renderer->info.flags =
@@ -332,12 +332,12 @@ GL_CreateRenderer(SDL_Window * window, Uint32 flags)
return NULL;
}
data->context = SDL_GL_CreateContext(window->id);
data->context = SDL_GL_CreateContext(window);
if (!data->context) {
GL_DestroyRenderer(renderer);
return NULL;
}
if (SDL_GL_MakeCurrent(window->id, data->context) < 0) {
if (SDL_GL_MakeCurrent(window, data->context) < 0) {
GL_DestroyRenderer(renderer);
return NULL;
}
@@ -442,9 +442,9 @@ static int
GL_ActivateRenderer(SDL_Renderer * renderer)
{
GL_RenderData *data = (GL_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
if (SDL_GL_MakeCurrent(window->id, data->context) < 0) {
if (SDL_GL_MakeCurrent(window, data->context) < 0) {
return -1;
}
if (data->updateSize) {
@@ -752,7 +752,7 @@ static int
GL_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
{
GL_RenderData *renderdata = (GL_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
GL_TextureData *data;
GLint internalFormat;
GLenum format, type;
@@ -1407,7 +1407,7 @@ GL_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect,
Uint32 pixel_format, void * pixels, int pitch)
{
GL_RenderData *data = (GL_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
GLint internalFormat;
GLenum format, type;
Uint8 *src, *dst, *tmp;
@@ -1454,7 +1454,7 @@ GL_RenderWritePixels(SDL_Renderer * renderer, const SDL_Rect * rect,
Uint32 pixel_format, const void * pixels, int pitch)
{
GL_RenderData *data = (GL_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
GLint internalFormat;
GLenum format, type;
Uint8 *src, *dst, *tmp;

View File

@@ -332,7 +332,7 @@ GLES_ActivateRenderer(SDL_Renderer * renderer)
{
GLES_RenderData *data = (GLES_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
if (SDL_GL_MakeCurrent(window->id, data->context) < 0) {
return -1;
@@ -872,7 +872,7 @@ GLES_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture,
if (data->GL_OES_draw_texture_supported && data->useDrawTexture) {
/* this code is a little funny because the viewport is upside down vs SDL's coordinate system */
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
GLint cropRect[4];
cropRect[0] = srcrect->x;
cropRect[1] = srcrect->y + srcrect->h;

View File

@@ -201,7 +201,7 @@ Setup_SoftwareRenderer(SDL_Renderer * renderer)
SDL_Renderer *
SW_CreateRenderer(SDL_Window * window, Uint32 flags)
{
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DisplayMode *displayMode = &display->current_mode;
SDL_Renderer *renderer;
SW_RenderData *data;
@@ -243,7 +243,7 @@ SW_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyRenderer = SW_DestroyRenderer;
renderer->info.name = SW_RenderDriver.info.name;
renderer->info.flags = 0;
renderer->window = window->id;
renderer->window = window;
renderer->driverdata = data;
Setup_SoftwareRenderer(renderer);
@@ -321,7 +321,7 @@ static int
SW_ActivateRenderer(SDL_Renderer * renderer)
{
SW_RenderData *data = (SW_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
int i, n;
if (data->renderer && data->renderer->ActivateRenderer) {
@@ -794,7 +794,7 @@ SW_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture,
const SDL_Rect * srcrect, const SDL_Rect * dstrect)
{
SW_RenderData *data = (SW_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
int status;
if (data->renderer->info.flags & SDL_RENDERER_PRESENTCOPY) {
@@ -928,8 +928,8 @@ static void
SW_DestroyRenderer(SDL_Renderer * renderer)
{
SW_RenderData *data = (SW_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
int i;
if (data) {

View File

@@ -29,8 +29,6 @@
/* The SDL video driver */
typedef struct SDL_Window SDL_Window;
typedef struct SDL_Texture SDL_Texture;
typedef struct SDL_Renderer SDL_Renderer;
typedef struct SDL_RenderDriver SDL_RenderDriver;
typedef struct SDL_VideoDisplay SDL_VideoDisplay;
@@ -39,21 +37,20 @@ typedef struct SDL_VideoDevice SDL_VideoDevice;
/* Define the SDL texture structure */
struct SDL_Texture
{
Uint32 id;
Uint32 format; /**< The pixel format of the texture */
int access; /**< SDL_TextureAccess */
int w; /**< The width of the texture */
int h; /**< The height of the texture */
int modMode; /**< The texture modulation mode */
int blendMode; /**< The texture blend mode */
int scaleMode; /**< The texture scale mode */
Uint8 r, g, b, a; /**< Texture modulation values */
int blendMode; /**< The texture blend mode */
int scaleMode; /**< The texture scale mode */
Uint8 r, g, b, a; /**< Texture modulation values */
SDL_Renderer *renderer;
void *driverdata; /**< Driver specific texture representation */
void *driverdata; /**< Driver specific texture representation */
SDL_Texture *prev;
SDL_Texture *next;
};
@@ -118,7 +115,10 @@ struct SDL_Renderer
SDL_RendererInfo info;
/* The window associated with the renderer */
SDL_WindowID window;
SDL_Window *window;
/* The list of textures */
SDL_Texture *textures;
Uint8 r, g, b, a; /**< Color for drawing operations values */
int blendMode; /**< The drawing blend mode */
@@ -139,19 +139,21 @@ struct SDL_RenderDriver
struct SDL_Window
{
Uint32 id;
char *title;
int x, y;
int w, h;
Uint32 flags;
int display;
SDL_VideoDisplay *display;
SDL_Renderer *renderer;
SDL_DisplayMode fullscreen_mode;
void *userdata;
void *driverdata;
SDL_Window *prev;
SDL_Window *next;
};
#define FULLSCREEN_VISIBLE(W) \
(((W)->flags & SDL_WINDOW_FULLSCREEN) && \
@@ -184,9 +186,6 @@ struct SDL_VideoDisplay
SDL_Renderer *current_renderer;
/* The hash list of textures */
SDL_Texture *textures[64];
SDL_VideoDevice *device;
void *driverdata;
@@ -413,8 +412,8 @@ extern VideoBootStrap NDS_bootstrap;
extern VideoBootStrap PND_bootstrap;
#endif
#define SDL_CurrentDisplay (_this->displays[_this->current_display])
#define SDL_CurrentRenderer (SDL_CurrentDisplay.current_renderer)
#define SDL_CurrentDisplay (&_this->displays[_this->current_display])
#define SDL_CurrentRenderer (SDL_CurrentDisplay->current_renderer)
extern SDL_VideoDevice *SDL_GetVideoDevice();
extern int SDL_AddBasicVideoDisplay(const SDL_DisplayMode * desktop_mode);
@@ -433,8 +432,6 @@ extern int SDL_GetGammaRampForDisplay(SDL_VideoDisplay * display, Uint16 * red,
extern void SDL_AddRenderDriver(SDL_VideoDisplay *display, const SDL_RenderDriver * driver);
extern int SDL_RecreateWindow(SDL_Window * window, Uint32 flags);
extern SDL_Window *SDL_GetWindowFromID(SDL_WindowID windowID);
extern SDL_VideoDisplay *SDL_GetDisplayFromWindow(SDL_Window * window);
extern void SDL_OnWindowShown(SDL_Window * window);
extern void SDL_OnWindowHidden(SDL_Window * window);
@@ -443,7 +440,7 @@ extern void SDL_OnWindowMinimized(SDL_Window * window);
extern void SDL_OnWindowRestored(SDL_Window * window);
extern void SDL_OnWindowFocusGained(SDL_Window * window);
extern void SDL_OnWindowFocusLost(SDL_Window * window);
extern SDL_WindowID SDL_GetFocusWindow(void);
extern SDL_Window * SDL_GetFocusWindow(void);
#endif /* _SDL_sysvideo_h */

File diff suppressed because it is too large Load Diff

View File

@@ -76,7 +76,7 @@ Cocoa_HandleMouseEvent(_THIS, NSEvent *event)
if (point.x < 0 || point.x >= candidate->w ||
point.y < 0 || point.y >= candidate->h) {
/* The mouse is out of this fullscreen display */
if (mouse->focus == candidate->id) {
if (mouse->focus == candidate) {
SDL_SetMouseFocus(data->mouse, 0);
}
} else {
@@ -91,8 +91,8 @@ Cocoa_HandleMouseEvent(_THIS, NSEvent *event)
}
/* Set the focus appropriately */
if (mouse->focus != window->id) {
SDL_SetMouseFocus(data->mouse, window->id);
if (mouse->focus != window) {
SDL_SetMouseFocus(data->mouse, window);
}
switch ([event type]) {

View File

@@ -82,7 +82,7 @@ SDL_GLContext
Cocoa_GL_CreateContext(_THIS, SDL_Window * window)
{
NSAutoreleasePool *pool;
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DisplayData *displaydata = (SDL_DisplayData *)display->driverdata;
NSOpenGLPixelFormatAttribute attr[32];
NSOpenGLPixelFormat *fmt;

View File

@@ -69,8 +69,8 @@ typedef struct SDL_WindowData SDL_WindowData;
struct SDL_WindowData
{
SDL_WindowID windowID;
NSWindow *window;
SDL_Window *window;
NSWindow *nswindow;
SDL_bool created;
CGDirectDisplayID display;
Cocoa_WindowListener *listener;

View File

@@ -86,13 +86,13 @@ static __inline__ void ConvertNSRect(NSRect *r)
- (BOOL)windowShouldClose:(id)sender
{
SDL_SendWindowEvent(_data->windowID, SDL_WINDOWEVENT_CLOSE, 0, 0);
SDL_SendWindowEvent(_data->window, SDL_WINDOWEVENT_CLOSE, 0, 0);
return NO;
}
- (void)windowDidExpose:(NSNotification *)aNotification
{
SDL_SendWindowEvent(_data->windowID, SDL_WINDOWEVENT_EXPOSED, 0, 0);
SDL_SendWindowEvent(_data->window, SDL_WINDOWEVENT_EXPOSED, 0, 0);
}
- (void)windowDidMove:(NSNotification *)aNotification
@@ -102,7 +102,7 @@ static __inline__ void ConvertNSRect(NSRect *r)
ConvertNSRect(&rect);
x = (int)rect.origin.x;
y = (int)rect.origin.y;
SDL_SendWindowEvent(_data->windowID, SDL_WINDOWEVENT_MOVED, x, y);
SDL_SendWindowEvent(_data->window, SDL_WINDOWEVENT_MOVED, x, y);
}
- (void)windowDidResize:(NSNotification *)aNotification
@@ -111,17 +111,17 @@ static __inline__ void ConvertNSRect(NSRect *r)
NSRect rect = [_data->window contentRectForFrameRect:[_data->window frame]];
w = (int)rect.size.width;
h = (int)rect.size.height;
SDL_SendWindowEvent(_data->windowID, SDL_WINDOWEVENT_RESIZED, w, h);
SDL_SendWindowEvent(_data->window, SDL_WINDOWEVENT_RESIZED, w, h);
}
- (void)windowDidMiniaturize:(NSNotification *)aNotification
{
SDL_SendWindowEvent(_data->windowID, SDL_WINDOWEVENT_MINIMIZED, 0, 0);
SDL_SendWindowEvent(_data->window, SDL_WINDOWEVENT_MINIMIZED, 0, 0);
}
- (void)windowDidDeminiaturize:(NSNotification *)aNotification
{
SDL_SendWindowEvent(_data->windowID, SDL_WINDOWEVENT_RESTORED, 0, 0);
SDL_SendWindowEvent(_data->window, SDL_WINDOWEVENT_RESTORED, 0, 0);
}
- (void)windowDidBecomeKey:(NSNotification *)aNotification
@@ -130,7 +130,7 @@ static __inline__ void ConvertNSRect(NSRect *r)
/* We're going to get keyboard events, since we're key. */
index = _data->videodata->keyboard;
SDL_SetKeyboardFocus(index, _data->windowID);
SDL_SetKeyboardFocus(index, _data->window);
}
- (void)windowDidResignKey:(NSNotification *)aNotification
@@ -141,7 +141,7 @@ static __inline__ void ConvertNSRect(NSRect *r)
/* Some other window will get mouse events, since we're not key. */
index = _data->videodata->mouse;
mouse = SDL_GetMouse(index);
if (mouse->focus == _data->windowID) {
if (mouse->focus == _data->window) {
SDL_SetMouseFocus(index, 0);
}
@@ -152,12 +152,12 @@ static __inline__ void ConvertNSRect(NSRect *r)
- (void)windowDidHide:(NSNotification *)aNotification
{
SDL_SendWindowEvent(_data->windowID, SDL_WINDOWEVENT_HIDDEN, 0, 0);
SDL_SendWindowEvent(_data->window, SDL_WINDOWEVENT_HIDDEN, 0, 0);
}
- (void)windowDidUnhide:(NSNotification *)aNotification
{
SDL_SendWindowEvent(_data->windowID, SDL_WINDOWEVENT_SHOWN, 0, 0);
SDL_SendWindowEvent(_data->window, SDL_WINDOWEVENT_SHOWN, 0, 0);
}
- (void)mouseDown:(NSEvent *)theEvent
@@ -228,7 +228,7 @@ static __inline__ void ConvertNSRect(NSRect *r)
- (void)mouseMoved:(NSEvent *)theEvent
{
SDL_Window *window = SDL_GetWindowFromID(_data->windowID);
SDL_Window *window = _data->window;
int index;
SDL_Mouse *mouse;
NSPoint point;
@@ -243,8 +243,8 @@ static __inline__ void ConvertNSRect(NSRect *r)
SDL_SetMouseFocus(index, 0);
}
} else {
if (mouse->focus != _data->windowID) {
SDL_SetMouseFocus(index, _data->windowID);
if (mouse->focus != _data->window) {
SDL_SetMouseFocus(index, _data->window);
}
SDL_SendMouseMotion(index, 0, (int)point.x, (int)point.y, 0);
}
@@ -298,7 +298,7 @@ SetupWindowData(_THIS, SDL_Window * window, NSWindow *nswindow, SDL_bool created
{
NSAutoreleasePool *pool;
SDL_VideoData *videodata = (SDL_VideoData *) _this->driverdata;
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DisplayData *displaydata = (SDL_DisplayData *) display->driverdata;
SDL_WindowData *data;
@@ -308,7 +308,7 @@ SetupWindowData(_THIS, SDL_Window * window, NSWindow *nswindow, SDL_bool created
SDL_OutOfMemory();
return -1;
}
data->windowID = window->id;
data->window = window;
data->window = nswindow;
data->created = created;
data->display = displaydata->display;
@@ -363,7 +363,7 @@ SetupWindowData(_THIS, SDL_Window * window, NSWindow *nswindow, SDL_bool created
if ([nswindow isKeyWindow]) {
int index = data->videodata->keyboard;
window->flags |= SDL_WINDOW_INPUT_FOCUS;
SDL_SetKeyboardFocus(index, data->windowID);
SDL_SetKeyboardFocus(index, data->window);
if (window->flags & SDL_WINDOW_INPUT_GRABBED) {
/* FIXME */
@@ -381,7 +381,7 @@ Cocoa_CreateWindow(_THIS, SDL_Window * window)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSWindow *nswindow;
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
NSRect rect;
SDL_Rect bounds;
unsigned int style;
@@ -490,7 +490,7 @@ Cocoa_SetWindowPosition(_THIS, SDL_Window * window)
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSWindow *nswindow = ((SDL_WindowData *) window->driverdata)->window;
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
NSRect rect;
SDL_Rect bounds;

View File

@@ -196,7 +196,7 @@ void
DirectFB_WM_MaximizeWindow(_THIS, SDL_Window * window)
{
SDL_DFB_WINDOWDATA(window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
windata->window->GetPosition(windata->window,
&windata->restore.x, &windata->restore.y);

View File

@@ -46,7 +46,7 @@ static void DirectFB_InitOSKeymap(_THIS, SDLKey * keypmap, int numkeys);
static int DirectFB_TranslateButton(DFBInputDeviceButtonIdentifier button);
static void
DirectFB_SetContext(_THIS, SDL_WindowID id)
DirectFB_SetContext(_THIS, SDL_Window *window)
{
#if (DFB_VERSION_ATLEAST(1,0,0))
/* FIXME: does not work on 1.0/1.2 with radeon driver
@@ -55,7 +55,7 @@ DirectFB_SetContext(_THIS, SDL_WindowID id)
*/
SDL_Window *window = SDL_GetWindowFromID(id);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
DFB_DisplayData *dispdata = (DFB_DisplayData *) display->driverdata;
int ret;
@@ -70,7 +70,7 @@ DirectFB_SetContext(_THIS, SDL_WindowID id)
}
static void
FocusAllMice(_THIS, SDL_WindowID id)
FocusAllMice(_THIS, SDL_Window *window)
{
SDL_DFB_DEVICEDATA(_this);
int index;
@@ -81,7 +81,7 @@ FocusAllMice(_THIS, SDL_WindowID id)
static void
FocusAllKeyboards(_THIS, SDL_WindowID id)
FocusAllKeyboards(_THIS, SDL_Window *window)
{
SDL_DFB_DEVICEDATA(_this);
int index;
@@ -177,7 +177,7 @@ ProcessWindowEvent(_THIS, DFB_WindowData * p, Uint32 flags,
break;
case DWET_MOTION:
if (ClientXY(p, &evt->x, &evt->y)) {
SDL_Window *window = SDL_GetWindowFromID(p->sdl_id);
SDL_Window *window = p->window;
if (!devdata->use_linux_input) {
if (!(flags & SDL_WINDOW_INPUT_GRABBED))
SDL_SendMouseMotion(devdata->mouse_id[0], 0,
@@ -193,7 +193,7 @@ ProcessWindowEvent(_THIS, DFB_WindowData * p, Uint32 flags,
}
}
if (!(window->flags & SDL_WINDOW_MOUSE_FOCUS))
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_ENTER, 0,
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_ENTER, 0,
0);
}
break;
@@ -218,13 +218,13 @@ ProcessWindowEvent(_THIS, DFB_WindowData * p, Uint32 flags,
break;
case DWET_POSITION:
if (ClientXY(p, &evt->x, &evt->y)) {
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_MOVED,
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_MOVED,
evt->x, evt->y);
}
break;
case DWET_POSITION_SIZE:
if (ClientXY(p, &evt->x, &evt->y)) {
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_MOVED,
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_MOVED,
evt->x, evt->y);
}
/* fall throught */
@@ -234,32 +234,32 @@ ProcessWindowEvent(_THIS, DFB_WindowData * p, Uint32 flags,
evt->h -=
(p->theme.top_size + p->theme.bottom_size +
p->theme.caption_size);
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_RESIZED,
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_RESIZED,
evt->w, evt->h);
break;
case DWET_CLOSE:
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_CLOSE, 0, 0);
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_CLOSE, 0, 0);
break;
case DWET_GOTFOCUS:
DirectFB_SetContext(_this, p->sdl_id);
FocusAllKeyboards(_this, p->sdl_id);
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_FOCUS_GAINED,
DirectFB_SetContext(_this, p->window);
FocusAllKeyboards(_this, p->window);
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_FOCUS_GAINED,
0, 0);
break;
case DWET_LOSTFOCUS:
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_FOCUS_LOST, 0, 0);
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_FOCUS_LOST, 0, 0);
FocusAllKeyboards(_this, 0);
break;
case DWET_ENTER:
/* SDL_DirectFB_ReshowCursor(_this, 0); */
FocusAllMice(_this, p->sdl_id);
FocusAllMice(_this, p->window);
// FIXME: when do we really enter ?
if (ClientXY(p, &evt->x, &evt->y))
MotionAllMice(_this, evt->x, evt->y);
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_ENTER, 0, 0);
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_ENTER, 0, 0);
break;
case DWET_LEAVE:
SDL_SendWindowEvent(p->sdl_id, SDL_WINDOWEVENT_LEAVE, 0, 0);
SDL_SendWindowEvent(p->window, SDL_WINDOWEVENT_LEAVE, 0, 0);
FocusAllMice(_this, 0);
/* SDL_DirectFB_ReshowCursor(_this, 1); */
break;
@@ -372,16 +372,16 @@ DirectFB_PumpEventsWindow(_THIS)
SDL_DFB_DEVICEDATA(_this);
DFB_WindowData *p;
DFBInputEvent ievt;
Sint32 /* SDL_WindowID */ grabbed_window;
SDL_Window *grabbed_window;
grabbed_window = -1;
grabbed_window = NULL;
for (p = devdata->firstwin; p != NULL; p = p->next) {
DFBWindowEvent evt;
SDL_Window *w = SDL_GetWindowFromID(p->sdl_id);
SDL_Window *w = SDL_GetWindowFromID(p->window);
if (w->flags & SDL_WINDOW_INPUT_GRABBED) {
grabbed_window = p->sdl_id;
grabbed_window = w;
}
while (p->eventbuffer->GetEvent(p->eventbuffer,

View File

@@ -31,7 +31,7 @@ static SDL_Cursor *DirectFB_CreateCursor(SDL_Surface * surface,
static int DirectFB_ShowCursor(SDL_Cursor * cursor);
static void DirectFB_MoveCursor(SDL_Cursor * cursor);
static void DirectFB_FreeCursor(SDL_Cursor * cursor);
static void DirectFB_WarpMouse(SDL_Mouse * mouse, SDL_WindowID windowID,
static void DirectFB_WarpMouse(SDL_Mouse * mouse, SDL_Window * window,
int x, int y);
static void DirectFB_FreeMouse(SDL_Mouse * mouse);
@@ -159,14 +159,13 @@ DirectFB_ShowCursor(SDL_Cursor * cursor)
{
SDL_DFB_CURSORDATA(cursor);
DFBResult ret;
SDL_WindowID wid;
SDL_Window *window;
wid = SDL_GetFocusWindow();
if (wid <= 0)
window = SDL_GetFocusWindow();
if (!window)
return -1;
else {
SDL_Window *window = SDL_GetWindowFromID(wid);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
if (display) {
DFB_DisplayData *dispdata =
@@ -216,10 +215,9 @@ DirectFB_FreeCursor(SDL_Cursor * cursor)
/* Warp the mouse to (x,y) */
static void
DirectFB_WarpMouse(SDL_Mouse * mouse, SDL_WindowID windowID, int x, int y)
DirectFB_WarpMouse(SDL_Mouse * mouse, SDL_Window * window, int x, int y)
{
SDL_Window *window = SDL_GetWindowFromID(windowID);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
DFB_DisplayData *dispdata = (DFB_DisplayData *) display->driverdata;
DFB_WindowData *windata = (DFB_WindowData *) window->driverdata;
DFBResult ret;

View File

@@ -280,7 +280,7 @@ SDL_Renderer *
DirectFB_CreateRenderer(SDL_Window * window, Uint32 flags)
{
SDL_DFB_WINDOWDATA(window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_Renderer *renderer = NULL;
DirectFB_RenderData *data = NULL;
DFBResult ret;
@@ -313,7 +313,7 @@ DirectFB_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyTexture = DirectFB_DestroyTexture;
renderer->DestroyRenderer = DirectFB_DestroyRenderer;
renderer->info = DirectFB_RenderDriver.info;
renderer->window = window->id; /* SDL window id */
renderer->window = window; /* SDL window */
renderer->driverdata = data;
renderer->info.flags =
@@ -446,7 +446,7 @@ DirectFB_AcquireVidLayer(SDL_Renderer * renderer, SDL_Texture * texture)
{
SDL_DFB_RENDERERDATA(renderer);
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DFB_DEVICEDATA(display->device);
DFB_DisplayData *dispdata = (DFB_DisplayData *) display->driverdata;
DirectFB_TextureData *data = texture->driverdata;
@@ -502,7 +502,7 @@ static int
DirectFB_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
{
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DFB_DEVICEDATA(display->device);
DirectFB_TextureData *data;
DFBResult ret;

View File

@@ -140,7 +140,7 @@ DirectFB_CreateWindow(_THIS, SDL_Window * window)
windata->window->RaiseToTop(windata->window);
/* remember parent */
windata->sdl_id = window->id;
windata->window = window;
/* Add to list ... */

View File

@@ -36,7 +36,7 @@ struct _DFB_WindowData
IDirectFBWindow *window;
DirectFB_GLContext *gl_context;
IDirectFBEventBuffer *eventbuffer;
SDL_WindowID sdl_id;
SDL_Window *window;
DFB_WindowData *next;
Uint8 opacity;
DFBRectangle client;

View File

@@ -74,7 +74,7 @@ typedef struct
SDL_Renderer *
SDL_DUMMY_CreateRenderer(SDL_Window * window, Uint32 flags)
{
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DisplayMode *displayMode = &display->current_mode;
SDL_Renderer *renderer;
SDL_DUMMY_RenderData *data;
@@ -113,7 +113,7 @@ SDL_DUMMY_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyRenderer = SDL_DUMMY_DestroyRenderer;
renderer->info.name = SDL_DUMMY_RenderDriver.info.name;
renderer->info.flags = 0;
renderer->window = window->id;
renderer->window = window;
renderer->driverdata = data;
Setup_SoftwareRenderer(renderer);
@@ -238,8 +238,8 @@ SDL_DUMMY_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture,
{
SDL_DUMMY_RenderData *data =
(SDL_DUMMY_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
if (SDL_ISPIXELFORMAT_FOURCC(texture->format)) {
SDL_Surface *target = data->screens[data->current_screen];
@@ -266,8 +266,8 @@ SDL_DUMMY_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect,
{
SDL_DUMMY_RenderData *data =
(SDL_DUMMY_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
SDL_Surface *screen = data->screens[data->current_screen];
Uint32 screen_format = display->current_mode.format;
Uint8 *screen_pixels = (Uint8 *) screen->pixels +
@@ -286,8 +286,8 @@ SDL_DUMMY_RenderWritePixels(SDL_Renderer * renderer, const SDL_Rect * rect,
{
SDL_DUMMY_RenderData *data =
(SDL_DUMMY_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
SDL_Surface *screen = data->screens[data->current_screen];
Uint32 screen_format = display->current_mode.format;
Uint8 *screen_pixels = (Uint8 *) screen->pixels +
@@ -311,7 +311,7 @@ SDL_DUMMY_RenderPresent(SDL_Renderer * renderer)
if (SDL_getenv("SDL_VIDEO_DUMMY_SAVE_FRAMES")) {
char file[128];
SDL_snprintf(file, sizeof(file), "SDL_window%d-%8.8d.bmp",
renderer->window, ++frame_number);
renderer->window->id, ++frame_number);
SDL_SaveBMP(data->screens[data->current_screen], file);
}

View File

@@ -126,7 +126,7 @@ typedef struct
SDL_Renderer *
NDS_CreateRenderer(SDL_Window * window, Uint32 flags)
{
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DisplayMode *displayMode = &display->current_mode;
SDL_Renderer *renderer;
NDS_RenderData *data;
@@ -175,7 +175,7 @@ NDS_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyRenderer = NDS_DestroyRenderer;
renderer->info.name = NDS_RenderDriver.info.name;
renderer->info.flags = 0;
renderer->window = window->id;
renderer->window = window;
renderer->driverdata = data;
renderer->CreateTexture = NDS_CreateTexture;
renderer->QueryTexturePixels = NDS_QueryTexturePixels;
@@ -490,8 +490,8 @@ NDS_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture,
{
NDS_RenderData *data = (NDS_RenderData *) renderer->driverdata;
NDS_TextureData *txdat = (NDS_TextureData *) texture->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
int Bpp = SDL_BYTESPERPIXEL(texture->format);
if (txdat->type == NDSTX_BG) {
@@ -515,8 +515,8 @@ static void
NDS_RenderPresent(SDL_Renderer * renderer)
{
NDS_RenderData *data = (NDS_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
/* update sprites */
// NDS_OAM_Update(&(data->oam_copy), data->sub);
@@ -538,8 +538,6 @@ static void
NDS_DestroyRenderer(SDL_Renderer * renderer)
{
NDS_RenderData *data = (NDS_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
int i;
if (data) {

View File

@@ -417,7 +417,7 @@ PND_gl_createcontext(_THIS, SDL_Window * window)
SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata;
SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
SDL_DisplayData *didata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
EGLBoolean status;
int32_t gfstatus;
EGLint configs;
@@ -816,7 +816,7 @@ PND_gl_swapwindow(_THIS, SDL_Window * window)
SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata;
SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
SDL_DisplayData *didata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
if (phdata->egl_initialized != SDL_TRUE) {

View File

@@ -777,7 +777,7 @@ photon_createwindow(_THIS, SDL_Window * window)
{
SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata;
SDL_DisplayData *didata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
SDL_WindowData *wdata;
PhDim_t winsize;
PhPoint_t winpos;
@@ -997,7 +997,7 @@ photon_createwindow(_THIS, SDL_Window * window)
PtFlush();
/* By default last created window got a input focus */
SDL_SetKeyboardFocus(0, window->id);
SDL_SetKeyboardFocus(0, window);
/* Emit focus gained event, because photon is not sending it */
SDL_OnWindowFocusGained(window);
@@ -1055,7 +1055,7 @@ photon_setwindowposition(_THIS, SDL_Window * window)
{
SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
SDL_DisplayData *didata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
PhPoint_t winpos;
int32_t status;
@@ -1223,7 +1223,7 @@ photon_destroywindow(_THIS, SDL_Window * window)
{
SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata;
SDL_DisplayData *didata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
int32_t status;
@@ -1414,7 +1414,7 @@ photon_gl_createcontext(_THIS, SDL_Window * window)
SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata;
SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
SDL_DisplayData *didata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
EGLBoolean status;
int32_t gfstatus;
EGLint configs;
@@ -1941,7 +1941,7 @@ photon_gl_swapwindow(_THIS, SDL_Window * window)
SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata;
SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
SDL_DisplayData *didata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
PhRect_t dst_rect;
PhRect_t src_rect;
int32_t status;
@@ -2050,7 +2050,7 @@ int photon_gl_recreatesurface(_THIS, SDL_Window * window, uint32_t width, uint32
SDL_VideoData *phdata = (SDL_VideoData *) _this->driverdata;
SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
SDL_DisplayData *didata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
SDL_bool makecurrent=SDL_FALSE;
int32_t gfstatus;
@@ -2199,10 +2199,10 @@ photon_pumpevents(_THIS)
{
/* Mouse cursor over handled window */
if (window != NULL) {
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_ENTER,
0, 0);
SDL_SetMouseFocus(0, window->id);
SDL_SetMouseFocus(0, window);
}
}
break;
@@ -2210,7 +2210,7 @@ photon_pumpevents(_THIS)
{
/* Mouse cursor out of handled window */
if (window != NULL) {
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_LEAVE,
0, 0);
}
@@ -2682,7 +2682,7 @@ photon_pumpevents(_THIS)
case Ph_WM_CLOSE:
{
if (window != NULL) {
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_CLOSE,
0, 0);
}
@@ -2695,10 +2695,10 @@ photon_pumpevents(_THIS)
if (window != NULL) {
PhRegion_t wregion;
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_FOCUS_GAINED,
0, 0);
SDL_SetKeyboardFocus(0, window->id);
SDL_SetKeyboardFocus(0, window);
/* Set window region sensible to mouse motion events */
PhRegionQuery(PtWidgetRid
@@ -2712,7 +2712,7 @@ photon_pumpevents(_THIS)
&wregion, NULL, NULL);
/* If window got a focus, then it is visible */
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_SHOWN,
0, 0);
}
@@ -2722,7 +2722,7 @@ photon_pumpevents(_THIS)
if (window != NULL) {
PhRegion_t wregion;
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_FOCUS_LOST,
0, 0);
@@ -2743,7 +2743,7 @@ photon_pumpevents(_THIS)
case Ph_WM_MOVE:
{
if (window != NULL) {
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_MOVED,
wmevent->pos.x,
wmevent->pos.y);
@@ -2754,7 +2754,7 @@ photon_pumpevents(_THIS)
{
if (window != NULL) {
/* Set new window position after resize */
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_MOVED,
wmevent->pos.x,
wmevent->pos.y);
@@ -2766,7 +2766,7 @@ photon_pumpevents(_THIS)
}
/* Set new window size after resize */
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_RESIZED,
wmevent->size.w,
wmevent->size.h);
@@ -2777,11 +2777,11 @@ photon_pumpevents(_THIS)
{
if (window != NULL) {
/* Send new window state: minimized */
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_MINIMIZED,
0, 0);
/* In case window is minimized, then it is hidden */
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_HIDDEN,
0, 0);
}
@@ -2792,7 +2792,7 @@ photon_pumpevents(_THIS)
if (window != NULL) {
if ((window->flags & SDL_WINDOW_RESIZABLE)==SDL_WINDOW_RESIZABLE)
{
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_MAXIMIZED,
0, 0);
}
@@ -2806,7 +2806,7 @@ photon_pumpevents(_THIS)
case Ph_WM_RESTORE:
{
if (window != NULL) {
SDL_SendWindowEvent(window->id,
SDL_SendWindowEvent(window,
SDL_WINDOWEVENT_RESTORED,
0, 0);
}

View File

@@ -38,7 +38,7 @@ SDL_Cursor *photon_createcursor(SDL_Surface * surface, int hot_x, int hot_y);
int photon_showcursor(SDL_Cursor * cursor);
void photon_movecursor(SDL_Cursor * cursor);
void photon_freecursor(SDL_Cursor * cursor);
void photon_warpmouse(SDL_Mouse * mouse, SDL_WindowID windowID, int x, int y);
void photon_warpmouse(SDL_Mouse * mouse, SDL_Window * window, int x, int y);
void photon_freemouse(SDL_Mouse * mouse);
int32_t
@@ -228,13 +228,12 @@ photon_showcursor(SDL_Cursor * cursor)
SDL_DisplayData *didata;
SDL_Window *window;
SDL_WindowData *wdata;
SDL_WindowID window_id;
PhCursorDef_t *internal_cursor;
int32_t status;
/* Get current window id */
window_id = SDL_GetFocusWindow();
if (window_id <= 0) {
window = SDL_GetFocusWindow();
if (!window) {
SDL_MouseData *mdata = NULL;
/* If there is no current window, then someone calls this function */
@@ -264,17 +263,12 @@ photon_showcursor(SDL_Cursor * cursor)
}
} else {
/* Sanity checks */
window = SDL_GetWindowFromID(window_id);
if (window != NULL) {
display = SDL_GetDisplayFromWindow(window);
if (display != NULL) {
didata = (SDL_DisplayData *) display->driverdata;
if (didata != NULL) {
wdata = (SDL_WindowData *) window->driverdata;
if (wdata == NULL) {
return -1;
}
} else {
display = window->display;
if (display != NULL) {
didata = (SDL_DisplayData *) display->driverdata;
if (didata != NULL) {
wdata = (SDL_WindowData *) window->driverdata;
if (wdata == NULL) {
return -1;
}
} else {
@@ -379,7 +373,7 @@ photon_movecursor(SDL_Cursor * cursor)
/* Sanity checks */
window = SDL_GetWindowFromID(window_id);
if (window != NULL) {
display = SDL_GetDisplayFromWindow(window);
display = window->display;
if (display != NULL) {
didata = (SDL_DisplayData *) display->driverdata;
if (didata != NULL) {
@@ -418,19 +412,17 @@ photon_freecursor(SDL_Cursor * cursor)
}
void
photon_warpmouse(SDL_Mouse * mouse, SDL_WindowID windowID, int x, int y)
photon_warpmouse(SDL_Mouse * mouse, SDL_Window * window, int x, int y)
{
SDL_VideoDisplay *display;
SDL_DisplayData *didata;
SDL_Window *window;
SDL_WindowData *wdata;
int16_t wx;
int16_t wy;
/* Sanity checks */
window = SDL_GetWindowFromID(windowID);
if (window != NULL) {
display = SDL_GetDisplayFromWindow(window);
display = window->display;
if (display != NULL) {
didata = (SDL_DisplayData *) display->driverdata;
if (didata != NULL) {

View File

@@ -124,7 +124,7 @@ SDL_RenderDriver photon_renderdriver = {
static SDL_Renderer *
photon_createrenderer(SDL_Window * window, Uint32 flags)
{
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DisplayData *didata = (SDL_DisplayData *) display->driverdata;
SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
SDL_Renderer *renderer = NULL;
@@ -171,7 +171,7 @@ photon_createrenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyTexture = photon_destroytexture;
renderer->DestroyRenderer = photon_destroyrenderer;
renderer->info = photon_renderdriver.info;
renderer->window = window->id;
renderer->window = window;
renderer->driverdata = rdata;
/* Copy direct_mode status */
@@ -298,7 +298,7 @@ static int _photon_recreate_surfaces(SDL_Renderer * renderer)
/* Obtain window and display structures */
window=SDL_GetWindowFromID(renderer->window);
wdata=(SDL_WindowData*)window->driverdata;
display=SDL_GetDisplayFromWindow(window);
display=window->display;
didata=(SDL_DisplayData *) display->driverdata;
phdata=(SDL_VideoData *) display->device->driverdata;
@@ -723,7 +723,7 @@ photon_displaymodechanged(SDL_Renderer * renderer)
{
SDL_RenderData *rdata = (SDL_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DisplayData *didata = (SDL_DisplayData *) display->driverdata;
/* Copy direct_mode status */
@@ -738,7 +738,7 @@ photon_createtexture(SDL_Renderer * renderer, SDL_Texture * texture)
{
SDL_RenderData *rdata = (SDL_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DisplayData *didata = (SDL_DisplayData *) display->driverdata;
SDL_TextureData *tdata = NULL;
uint32_t it;

View File

@@ -133,7 +133,7 @@ SDL_Renderer *
SDL_PS3_CreateRenderer(SDL_Window * window, Uint32 flags)
{
deprintf(1, "+SDL_PS3_CreateRenderer()\n");
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DisplayMode *displayMode = &display->current_mode;
SDL_VideoData *devdata = display->device->driverdata;
SDL_Renderer *renderer;
@@ -179,7 +179,7 @@ SDL_PS3_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyRenderer = SDL_PS3_DestroyRenderer;
renderer->info.name = SDL_PS3_RenderDriver.info.name;
renderer->info.flags = 0;
renderer->window = window->id;
renderer->window = window;
renderer->driverdata = data;
deprintf(1, "window->w = %u\n", window->w);
@@ -518,7 +518,7 @@ SDL_PS3_RenderCopy(SDL_Renderer * renderer, SDL_Texture * texture,
SDL_PS3_RenderData *data =
(SDL_PS3_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
PS3_TextureData *txdata = (PS3_TextureData *) texture->driverdata;
SDL_VideoData *devdata = display->device->driverdata;
@@ -640,7 +640,7 @@ SDL_PS3_RenderPresent(SDL_Renderer * renderer)
SDL_PS3_RenderData *data =
(SDL_PS3_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_VideoData *devdata = display->device->driverdata;
/* Send the data to the screen */

View File

@@ -41,7 +41,7 @@ SDL_Cursor *gf_createcursor(SDL_Surface * surface, int hot_x, int hot_y);
int gf_showcursor(SDL_Cursor * cursor);
void gf_movecursor(SDL_Cursor * cursor);
void gf_freecursor(SDL_Cursor * cursor);
void gf_warpmouse(SDL_Mouse * mouse, SDL_WindowID windowID, int x, int y);
void gf_warpmouse(SDL_Mouse * mouse, SDL_Window * window, int x, int y);
void gf_freemouse(SDL_Mouse * mouse);
/* HIDDI interacting functions */
@@ -278,7 +278,7 @@ gf_showcursor(SDL_Cursor * cursor)
/* Sanity checks */
window = SDL_GetWindowFromID(window_id);
if (window != NULL) {
display = SDL_GetDisplayFromWindow(window);
display = window->display;
if (display != NULL) {
didata = (SDL_DisplayData *) display->driverdata;
if (didata == NULL) {
@@ -399,7 +399,7 @@ gf_movecursor(SDL_Cursor * cursor)
/* Sanity checks */
window = SDL_GetWindowFromID(window_id);
if (window != NULL) {
display = SDL_GetDisplayFromWindow(window);
display = window->display;
if (display != NULL) {
didata = (SDL_DisplayData *) display->driverdata;
if (didata == NULL) {
@@ -461,19 +461,17 @@ gf_freecursor(SDL_Cursor * cursor)
}
void
gf_warpmouse(SDL_Mouse * mouse, SDL_WindowID windowID, int x, int y)
gf_warpmouse(SDL_Mouse * mouse, SDL_Window * window, int x, int y)
{
SDL_VideoDisplay *display;
SDL_DisplayData *didata;
SDL_Window *window;
uint32_t xmax;
uint32_t ymax;
int32_t status;
/* Sanity checks */
window = SDL_GetWindowFromID(windowID);
if (window != NULL) {
display = SDL_GetDisplayFromWindow(window);
display = window->display;
if (display != NULL) {
didata = (SDL_DisplayData *) display->driverdata;
if (didata == NULL) {
@@ -495,7 +493,7 @@ gf_warpmouse(SDL_Mouse * mouse, SDL_WindowID windowID, int x, int y)
}
/* Get window size to clamp maximum coordinates */
SDL_GetWindowSize(windowID, &xmax, &ymax);
SDL_GetWindowSize(window, &xmax, &ymax);
if (x >= xmax) {
x = xmax - 1;
}

View File

@@ -110,7 +110,7 @@ SDL_RenderDriver gf_renderdriver = {
static SDL_Renderer *
gf_createrenderer(SDL_Window * window, Uint32 flags)
{
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DisplayData *didata = (SDL_DisplayData *) display->driverdata;
SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
SDL_Renderer *renderer = NULL;
@@ -162,7 +162,7 @@ gf_createrenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyTexture = gf_destroytexture;
renderer->DestroyRenderer = gf_destroyrenderer;
renderer->info = gf_renderdriver.info;
renderer->window = window->id;
renderer->window = window;
renderer->driverdata = rdata;
/* Set render acceleration flag in case it is accelerated */
@@ -284,7 +284,7 @@ static int
gf_activaterenderer(SDL_Renderer * renderer)
{
SDL_RenderData *rdata = (SDL_RenderData *) renderer->driverdata;
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(rdata->window);
SDL_VideoDisplay *display = rdata->window->display;
SDL_DisplayData *didata = (SDL_DisplayData *) display->driverdata;
/* Setup current surface as visible */
@@ -301,7 +301,7 @@ gf_createtexture(SDL_Renderer * renderer, SDL_Texture * texture)
{
SDL_RenderData *renderdata = (SDL_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_TextureData *tdata = NULL;
/* Allocate texture driver data */

View File

@@ -978,7 +978,7 @@ int
qnxgf_createwindow(_THIS, SDL_Window * window)
{
SDL_VideoData *gfdata = (SDL_VideoData *) _this->driverdata;
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DisplayData *didata = (SDL_DisplayData *) display->driverdata;
SDL_WindowData *wdata;
int32_t status;
@@ -1081,8 +1081,8 @@ qnxgf_createwindow(_THIS, SDL_Window * window)
hiddi_enable_mouse();
/* By default last created window got a input focus */
SDL_SetKeyboardFocus(0, window->id);
SDL_SetMouseFocus(0, window->id);
SDL_SetKeyboardFocus(0, window);
SDL_SetMouseFocus(0, window);
/* Window has been successfully created */
return 0;
@@ -1155,7 +1155,7 @@ qnxgf_destroywindow(_THIS, SDL_Window * window)
{
SDL_VideoData *gfdata = (SDL_VideoData *) _this->driverdata;
SDL_DisplayData *didata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
if (wdata != NULL) {
@@ -1309,7 +1309,7 @@ qnxgf_gl_createcontext(_THIS, SDL_Window * window)
SDL_VideoData *gfdata = (SDL_VideoData *) _this->driverdata;
SDL_WindowData *wdata = (SDL_WindowData *) window->driverdata;
SDL_DisplayData *didata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
EGLBoolean status;
int32_t gfstatus;
EGLint configs;

View File

@@ -25,12 +25,12 @@
/* *INDENT-OFF* */
@interface SDLUIKitDelegate:NSObject<UIApplicationDelegate> {
UIWindow *window;
SDL_WindowID windowID;
SDL_Window *window;
UIWindow *uiwindow;
}
@property (readwrite, retain) UIWindow *window;
@property (readwrite, assign) SDL_WindowID windowID;
@property (readwrite, assign) SDL_Window *window;
@property (readwrite, retain) UIWindow *uiwindow;
+(SDLUIKitDelegate *)sharedAppDelegate;

View File

@@ -56,7 +56,7 @@ int main(int argc, char **argv) {
@implementation SDLUIKitDelegate
@synthesize window;
@synthesize windowID;
@synthesize uiwindow;
/* convenience method */
+(SDLUIKitDelegate *)sharedAppDelegate {
@@ -66,8 +66,8 @@ int main(int argc, char **argv) {
- (id)init {
self = [super init];
window = nil;
windowID = 0;
window = NULL;
uiwindow = nil;
return self;
}
@@ -107,19 +107,19 @@ afterDelay:0.0];
- (void) applicationWillResignActive:(UIApplication*)application
{
// NSLog(@"%@", NSStringFromSelector(_cmd));
SDL_SendWindowEvent(self.windowID, SDL_WINDOWEVENT_MINIMIZED, 0, 0);
SDL_SendWindowEvent(self.window, SDL_WINDOWEVENT_MINIMIZED, 0, 0);
}
- (void) applicationDidBecomeActive:(UIApplication*)application
{
// NSLog(@"%@", NSStringFromSelector(_cmd));
SDL_SendWindowEvent(self.windowID, SDL_WINDOWEVENT_RESTORED, 0, 0);
SDL_SendWindowEvent(self.window, SDL_WINDOWEVENT_RESTORED, 0, 0);
}
-(void)dealloc {
[window release];
[uiwindow release];
[super dealloc];
}

View File

@@ -23,10 +23,9 @@
#ifndef sdl_uikitkeyboard_h
#define sdl_uikitkeyboard_h
extern DECLSPEC int SDLCALL SDL_iPhoneKeyboardShow(SDL_WindowID windowID);
extern DECLSPEC int SDLCALL SDL_iPhoneKeyboardHide(SDL_WindowID windowID);
extern DECLSPEC SDL_bool SDLCALL SDL_iPhoneKeyboardIsShown(SDL_WindowID
windowID);
extern DECLSPEC int SDLCALL SDL_iPhoneKeyboardToggle(SDL_WindowID windowID);
extern DECLSPEC int SDLCALL SDL_iPhoneKeyboardShow(SDL_Window * window);
extern DECLSPEC int SDLCALL SDL_iPhoneKeyboardHide(SDL_Window * window);
extern DECLSPEC SDL_bool SDLCALL SDL_iPhoneKeyboardIsShown(SDL_Window * window);
extern DECLSPEC int SDLCALL SDL_iPhoneKeyboardToggle(SDL_Window * window);
#endif

View File

@@ -272,9 +272,8 @@
/* iPhone keyboard addition functions */
#if SDL_IPHONE_KEYBOARD
int SDL_iPhoneKeyboardShow(SDL_WindowID windowID) {
int SDL_iPhoneKeyboardShow(SDL_Window * window) {
SDL_Window *window = SDL_GetWindowFromID(windowID);
SDL_WindowData *data;
SDL_uikitview *view;
@@ -296,9 +295,8 @@ int SDL_iPhoneKeyboardShow(SDL_WindowID windowID) {
}
}
int SDL_iPhoneKeyboardHide(SDL_WindowID windowID) {
int SDL_iPhoneKeyboardHide(SDL_Window * window) {
SDL_Window *window = SDL_GetWindowFromID(windowID);
SDL_WindowData *data;
SDL_uikitview *view;
@@ -320,9 +318,8 @@ int SDL_iPhoneKeyboardHide(SDL_WindowID windowID) {
}
}
SDL_bool SDL_iPhoneKeyboardIsShown(SDL_WindowID windowID) {
SDL_bool SDL_iPhoneKeyboardIsShown(SDL_Window * window) {
SDL_Window *window = SDL_GetWindowFromID(windowID);
SDL_WindowData *data;
SDL_uikitview *view;
@@ -343,9 +340,8 @@ SDL_bool SDL_iPhoneKeyboardIsShown(SDL_WindowID windowID) {
}
}
int SDL_iPhoneKeyboardToggle(SDL_WindowID windowID) {
int SDL_iPhoneKeyboardToggle(SDL_Window * window) {
SDL_Window *window = SDL_GetWindowFromID(windowID);
SDL_WindowData *data;
SDL_uikitview *view;
@@ -362,11 +358,11 @@ int SDL_iPhoneKeyboardToggle(SDL_WindowID windowID) {
return -1;
}
else {
if (SDL_iPhoneKeyboardIsShown(windowID)) {
SDL_iPhoneKeyboardHide(windowID);
if (SDL_iPhoneKeyboardIsShown(window)) {
SDL_iPhoneKeyboardHide(window);
}
else {
SDL_iPhoneKeyboardShow(windowID);
SDL_iPhoneKeyboardShow(window);
}
return 0;
}
@@ -376,21 +372,21 @@ int SDL_iPhoneKeyboardToggle(SDL_WindowID windowID) {
/* stubs, used if compiled without keyboard support */
int SDL_iPhoneKeyboardShow(SDL_WindowID windowID) {
int SDL_iPhoneKeyboardShow(SDL_Window * window) {
SDL_SetError("Not compiled with keyboard support");
return -1;
}
int SDL_iPhoneKeyboardHide(SDL_WindowID windowID) {
int SDL_iPhoneKeyboardHide(SDL_Window * window) {
SDL_SetError("Not compiled with keyboard support");
return -1;
}
SDL_bool SDL_iPhoneKeyboardIsShown(SDL_WindowID windowID) {
SDL_bool SDL_iPhoneKeyboardIsShown(SDL_Window * window) {
return 0;
}
int SDL_iPhoneKeyboardToggle(SDL_WindowID windowID) {
int SDL_iPhoneKeyboardToggle(SDL_Window * window) {
SDL_SetError("Not compiled with keyboard support");
return -1;
}

View File

@@ -36,7 +36,7 @@ extern void UIKit_DestroyWindow(_THIS, SDL_Window * window);
struct SDL_WindowData
{
SDL_WindowID windowID;
SDL_Window *window;
UIWindow *uiwindow;
SDL_uikitopenglview *view;
};

View File

@@ -41,83 +41,82 @@
static int SetupWindowData(_THIS, SDL_Window *window, UIWindow *uiwindow, SDL_bool created) {
SDL_WindowData *data;
/* Allocate the window data */
data = (SDL_WindowData *)SDL_malloc(sizeof(*data));
if (!data) {
SDL_OutOfMemory();
return -1;
}
data->windowID = window->id;
data->window = window;
data->uiwindow = uiwindow;
data->view = nil;
data->view = nil;
/* Fill in the SDL window with the window data */
{
{
window->x = 0;
window->y = 0;
window->w = (int)uiwindow.frame.size.width;
window->h = (int)uiwindow.frame.size.height;
}
window->driverdata = data;
window->flags &= ~SDL_WINDOW_RESIZABLE; /* window is NEVER resizeable */
window->flags |= SDL_WINDOW_OPENGL; /* window is always OpenGL */
window->flags |= SDL_WINDOW_FULLSCREEN; /* window is always fullscreen */
window->flags |= SDL_WINDOW_SHOWN; /* only one window on iPod touch, always shown */
window->flags |= SDL_WINDOW_INPUT_FOCUS; /* always has input focus */
window->driverdata = data;
window->flags &= ~SDL_WINDOW_RESIZABLE; /* window is NEVER resizeable */
window->flags |= SDL_WINDOW_OPENGL; /* window is always OpenGL */
window->flags |= SDL_WINDOW_FULLSCREEN; /* window is always fullscreen */
window->flags |= SDL_WINDOW_SHOWN; /* only one window on iPod touch, always shown */
window->flags |= SDL_WINDOW_INPUT_FOCUS; /* always has input focus */
/* SDL_WINDOW_BORDERLESS controls whether status bar is hidden */
if (window->flags & SDL_WINDOW_BORDERLESS) {
[UIApplication sharedApplication].statusBarHidden = YES;
}
else {
[UIApplication sharedApplication].statusBarHidden = NO;
}
/* SDL_WINDOW_BORDERLESS controls whether status bar is hidden */
if (window->flags & SDL_WINDOW_BORDERLESS) {
[UIApplication sharedApplication].statusBarHidden = YES;
}
else {
[UIApplication sharedApplication].statusBarHidden = NO;
}
return 0;
}
int UIKit_CreateWindow(_THIS, SDL_Window *window) {
/* We currently only handle single window applications on iPhone */
if (nil != [SDLUIKitDelegate sharedAppDelegate].window) {
SDL_SetError("Window already exists, no multi-window support.");
return -1;
}
/* ignore the size user requested, and make a fullscreen window */
UIWindow *uiwindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if (SetupWindowData(_this, window, uiwindow, SDL_TRUE) < 0) {
/* We currently only handle single window applications on iPhone */
if (nil != [SDLUIKitDelegate sharedAppDelegate].window) {
SDL_SetError("Window already exists, no multi-window support.");
return -1;
}
/* ignore the size user requested, and make a fullscreen window */
UIWindow *uiwindow = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
if (SetupWindowData(_this, window, uiwindow, SDL_TRUE) < 0) {
[uiwindow release];
return -1;
}
// This saves the main window in the app delegate so event callbacks can do stuff on the window.
// This assumes a single window application design and needs to be fixed for multiple windows.
[SDLUIKitDelegate sharedAppDelegate].window = uiwindow;
[SDLUIKitDelegate sharedAppDelegate].windowID = window->id;
[uiwindow release]; /* release the window (the app delegate has retained it) */
return 1;
}
// This saves the main window in the app delegate so event callbacks can do stuff on the window.
// This assumes a single window application design and needs to be fixed for multiple windows.
[SDLUIKitDelegate sharedAppDelegate].window = window;
[SDLUIKitDelegate sharedAppDelegate].uiwindow = uiwindow;
[uiwindow release]; /* release the window (the app delegate has retained it) */
return 1;
}
void UIKit_DestroyWindow(_THIS, SDL_Window * window) {
/* don't worry, the delegate will automatically release the window */
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
if (data) {
SDL_free( window->driverdata );
}
/* this will also destroy the window */
[SDLUIKitDelegate sharedAppDelegate].window = nil;
[SDLUIKitDelegate sharedAppDelegate].windowID = 0;
/* don't worry, the delegate will automatically release the window */
SDL_WindowData *data = (SDL_WindowData *)window->driverdata;
if (data) {
SDL_free( window->driverdata );
}
/* this will also destroy the window */
[SDLUIKitDelegate sharedAppDelegate].window = NULL;
[SDLUIKitDelegate sharedAppDelegate].uiwindow = nil;
}
/* vi: set ts=4 sw=4 expandtab: */

View File

@@ -391,7 +391,7 @@ DDRAW_AddRenderDriver(_THIS)
{
SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
SDL_RendererInfo *info = &DDRAW_RenderDriver.info;
SDL_DisplayMode *mode = &SDL_CurrentDisplay.desktop_mode;
SDL_DisplayMode *mode = &SDL_CurrentDisplay->desktop_mode;
if (data->ddraw) {
int i;
@@ -437,7 +437,7 @@ DDRAW_AddRenderDriver(_THIS)
SDL_Renderer *
DDRAW_CreateRenderer(SDL_Window * window, Uint32 flags)
{
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_VideoData *videodata = (SDL_VideoData *) display->device->driverdata;
SDL_WindowData *windowdata = (SDL_WindowData *) window->driverdata;
SDL_Renderer *renderer;
@@ -479,7 +479,7 @@ DDRAW_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyTexture = DDRAW_DestroyTexture;
renderer->DestroyRenderer = DDRAW_DestroyRenderer;
renderer->info = DDRAW_RenderDriver.info;
renderer->window = window->id;
renderer->window = window;
renderer->driverdata = data;
renderer->info.flags = SDL_RENDERER_ACCELERATED;
@@ -568,8 +568,8 @@ DDRAW_DisplayModeChanged(SDL_Renderer * renderer)
{
//TODO implement
/*D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
data->pparams.BackBufferWidth = window->w;
data->pparams.BackBufferHeight = window->h;
@@ -587,8 +587,8 @@ static int
DDRAW_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
{
DDRAW_RenderData *renderdata = (DDRAW_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
Uint32 display_format = display->current_mode.format;
DDRAW_TextureData *data;
DDSURFACEDESC ddsd;

View File

@@ -427,7 +427,7 @@ D3D_AddRenderDriver(_THIS)
SDL_Renderer *
D3D_CreateRenderer(SDL_Window * window, Uint32 flags)
{
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_VideoData *videodata = (SDL_VideoData *) display->device->driverdata;
SDL_WindowData *windowdata = (SDL_WindowData *) window->driverdata;
SDL_Renderer *renderer;
@@ -475,7 +475,7 @@ D3D_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyTexture = D3D_DestroyTexture;
renderer->DestroyRenderer = D3D_DestroyRenderer;
renderer->info = D3D_RenderDriver.info;
renderer->window = window->id;
renderer->window = window;
renderer->driverdata = data;
renderer->info.flags = SDL_RENDERER_ACCELERATED;
@@ -677,8 +677,8 @@ static int
D3D_DisplayModeChanged(SDL_Renderer * renderer)
{
D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
data->pparams.BackBufferWidth = window->w;
data->pparams.BackBufferHeight = window->h;
@@ -695,8 +695,8 @@ static int
D3D_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
{
D3D_RenderData *renderdata = (D3D_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
Uint32 display_format = display->current_mode.format;
D3D_TextureData *data;
HRESULT result;
@@ -1398,8 +1398,8 @@ D3D_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect,
Uint32 format, void * pixels, int pitch)
{
D3D_RenderData *data = (D3D_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
D3DSURFACE_DESC desc;
LPDIRECT3DSURFACE9 backBuffer;
LPDIRECT3DSURFACE9 surface;

View File

@@ -430,7 +430,7 @@ GetFramebuffer()
SDL_Renderer *
GAPI_CreateRenderer(SDL_Window * window, Uint32 flags)
{
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_WindowData *windowdata = (SDL_WindowData *) window->driverdata;
SDL_DisplayMode *displayMode = &display->current_mode;
SDL_Renderer *renderer;
@@ -472,7 +472,7 @@ GAPI_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyRenderer = GAPI_DestroyRenderer;
renderer->info.name = GAPI_RenderDriver.info.name;
renderer->info.flags = 0;
renderer->window = window->id;
renderer->window = window;
renderer->driverdata = data;
/* Gapi provides only a framebuffer so lets use software implementation */

View File

@@ -207,7 +207,7 @@ GDI_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyTexture = GDI_DestroyTexture;
renderer->DestroyRenderer = GDI_DestroyRenderer;
renderer->info = GDI_RenderDriver.info;
renderer->window = window->id;
renderer->window = window;
renderer->driverdata = data;
renderer->info.flags = SDL_RENDERER_ACCELERATED;
@@ -274,7 +274,7 @@ static int
GDI_DisplayModeChanged(SDL_Renderer * renderer)
{
GDI_RenderData *data = (GDI_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
int i, n;
if (renderer->info.flags & SDL_RENDERER_SINGLEBUFFER) {
@@ -378,8 +378,8 @@ static int
GDI_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
{
GDI_RenderData *renderdata = (GDI_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
GDI_TextureData *data;
data = (GDI_TextureData *) SDL_calloc(1, sizeof(*data));
@@ -699,7 +699,7 @@ GDI_RenderDrawPoints(SDL_Renderer * renderer, const SDL_Point * points,
if (data->makedirty) {
/* Get the smallest rectangle that contains everything */
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
SDL_Rect rect;
rect.x = 0;
@@ -732,7 +732,7 @@ GDI_RenderDrawLines(SDL_Renderer * renderer, const SDL_Point * points,
if (data->makedirty) {
/* Get the smallest rectangle that contains everything */
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
SDL_Rect clip, rect;
clip.x = 0;
@@ -787,7 +787,7 @@ GDI_RenderDrawRects(SDL_Renderer * renderer, const SDL_Rect ** rects,
int i, status = 1;
if (data->makedirty) {
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
SDL_Rect clip, rect;
clip.x = 0;
@@ -844,7 +844,7 @@ GDI_RenderFillRects(SDL_Renderer * renderer, const SDL_Rect ** rects,
int i, status = 1;
if (data->makedirty) {
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
SDL_Rect clip, rect;
clip.x = 0;
@@ -943,8 +943,8 @@ GDI_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect,
Uint32 format, void * pixels, int pitch)
{
GDI_RenderData *renderdata = (GDI_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
struct {
HBITMAP hbm;
void *pixels;
@@ -984,8 +984,8 @@ GDI_RenderWritePixels(SDL_Renderer * renderer, const SDL_Rect * rect,
Uint32 format, const void * pixels, int pitch)
{
GDI_RenderData *renderdata = (GDI_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
struct {
HBITMAP hbm;
void *pixels;

View File

@@ -169,11 +169,9 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
case WM_SHOWWINDOW:
{
if (wParam) {
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_SHOWN, 0,
0);
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_SHOWN, 0, 0);
} else {
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_HIDDEN, 0,
0);
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_HIDDEN, 0, 0);
}
}
break;
@@ -188,26 +186,25 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
index = data->videodata->keyboard;
keyboard = SDL_GetKeyboard(index);
if (!minimized && (LOWORD(wParam) != WA_INACTIVE)) {
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_SHOWN,
0, 0);
SDL_SendWindowEvent(data->windowID,
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_SHOWN, 0, 0);
SDL_SendWindowEvent(data->window,
SDL_WINDOWEVENT_RESTORED, 0, 0);
#ifndef _WIN32_WCE /* WinCE misses IsZoomed() */
if (IsZoomed(hwnd)) {
SDL_SendWindowEvent(data->windowID,
SDL_SendWindowEvent(data->window,
SDL_WINDOWEVENT_MAXIMIZED, 0, 0);
}
#endif
if (keyboard && keyboard->focus != data->windowID) {
SDL_SetKeyboardFocus(index, data->windowID);
if (keyboard && keyboard->focus != data->window) {
SDL_SetKeyboardFocus(index, data->window);
}
/* FIXME: Update keyboard state */
} else {
if (keyboard && keyboard->focus == data->windowID) {
if (keyboard && keyboard->focus == data->window) {
SDL_SetKeyboardFocus(index, 0);
}
if (minimized) {
SDL_SendWindowEvent(data->windowID,
SDL_SendWindowEvent(data->window,
SDL_WINDOWEVENT_MINIMIZED, 0, 0);
}
}
@@ -272,9 +269,9 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
GetCursorPos(&point);
ScreenToClient(hwnd, &point);
SDL_GetWindowSize(data->windowID, &w, &h);
SDL_GetWindowSize(data->window, &w, &h);
if (point.x >= 0 && point.y >= 0 && point.x < w && point.y < h) {
SDL_SetMouseFocus(index, data->windowID);
SDL_SetMouseFocus(index, data->window);
} else {
SDL_SetMouseFocus(index, 0);
/* FIXME: Should we be doing anything else here? */
@@ -330,7 +327,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
for (i = 0; i < SDL_GetNumMice(); ++i) {
SDL_Mouse *mouse = SDL_GetMouse(i);
if (mouse->focus == data->windowID) {
if (mouse->focus == data->window) {
SDL_SetMouseFocus(i, 0);
}
}
@@ -490,7 +487,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
BOOL menu;
/* If we allow resizing, let the resize happen naturally */
if (SDL_GetWindowFlags(data->windowID) & SDL_WINDOW_RESIZABLE) {
if (SDL_GetWindowFlags(data->window) & SDL_WINDOW_RESIZABLE) {
returnCode = 0;
break;
}
@@ -501,7 +498,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
y = size.top;
/* Calculate current size of our window */
SDL_GetWindowSize(data->windowID, &w, &h);
SDL_GetWindowSize(data->window, &w, &h);
size.top = 0;
size.left = 0;
size.bottom = h;
@@ -551,7 +548,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
ClientToScreen(hwnd, (LPPOINT) & rect);
ClientToScreen(hwnd, (LPPOINT) & rect + 1);
window_flags = SDL_GetWindowFlags(data->windowID);
window_flags = SDL_GetWindowFlags(data->window);
if ((window_flags & SDL_WINDOW_INPUT_GRABBED) &&
(window_flags & SDL_WINDOW_INPUT_FOCUS)) {
ClipCursor(&rect);
@@ -559,11 +556,11 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
x = rect.left;
y = rect.top;
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_MOVED, x, y);
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_MOVED, x, y);
w = rect.right - rect.left;
h = rect.bottom - rect.top;
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_RESIZED, w,
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_RESIZED, w,
h);
}
break;
@@ -610,7 +607,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
RECT rect;
if (GetUpdateRect(hwnd, &rect, FALSE)) {
ValidateRect(hwnd, &rect);
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_EXPOSED,
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_EXPOSED,
0, 0);
}
}
@@ -637,7 +634,7 @@ WIN_WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
case WM_CLOSE:
{
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_CLOSE, 0, 0);
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_CLOSE, 0, 0);
}
returnCode = 0;
break;

View File

@@ -86,7 +86,7 @@ static int
SetupWindowData(_THIS, SDL_Window * window, HWND hwnd, SDL_bool created)
{
SDL_VideoData *videodata = (SDL_VideoData *) _this->driverdata;
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_WindowData *data;
/* Allocate the window data */
@@ -95,7 +95,7 @@ SetupWindowData(_THIS, SDL_Window * window, HWND hwnd, SDL_bool created)
SDL_OutOfMemory();
return -1;
}
data->windowID = window->id;
data->window = window;
data->hwnd = hwnd;
data->hdc = GetDC(hwnd);
data->created = created;
@@ -167,7 +167,7 @@ SetupWindowData(_THIS, SDL_Window * window, HWND hwnd, SDL_bool created)
if (GetFocus() == hwnd) {
int index = data->videodata->keyboard;
window->flags |= SDL_WINDOW_INPUT_FOCUS;
SDL_SetKeyboardFocus(index, data->windowID);
SDL_SetKeyboardFocus(index, data->window);
if (window->flags & SDL_WINDOW_INPUT_GRABBED) {
RECT rect;
@@ -187,7 +187,7 @@ int
WIN_CreateWindow(_THIS, SDL_Window * window)
{
SDL_VideoData *videodata = (SDL_VideoData *) _this->driverdata;
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
RAWINPUTDEVICE Rid;
AXIS TabX, TabY;
LOGCONTEXTA lc;
@@ -429,7 +429,7 @@ WIN_SetWindowIcon(_THIS, SDL_Window * window, SDL_Surface * icon)
void
WIN_SetWindowPosition(_THIS, SDL_Window * window)
{
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
HWND hwnd = ((SDL_WindowData *) window->driverdata)->hwnd;
RECT rect;
SDL_Rect bounds;

View File

@@ -26,7 +26,7 @@
typedef struct
{
SDL_WindowID windowID;
SDL_Window *window;
HWND hwnd;
HDC hdc;
WNDPROC wndproc;

View File

@@ -66,7 +66,7 @@ X11_DispatchEvent(_THIS)
if (videodata && videodata->windowlist) {
for (i = 0; i < videodata->numwindows; ++i) {
if ((videodata->windowlist[i] != NULL) &&
(videodata->windowlist[i]->window == xevent.xany.window)) {
(videodata->windowlist[i]->xwindow == xevent.xany.window)) {
data = videodata->windowlist[i];
break;
}
@@ -97,7 +97,7 @@ X11_DispatchEvent(_THIS)
/* FIXME: Should we reset data for all mice? */
for (i = 0; i < SDL_GetNumMice(); ++i) {
SDL_Mouse *mouse = SDL_GetMouse(i);
SDL_SetMouseFocus(mouse->id, data->windowID);
SDL_SetMouseFocus(mouse->id, data->window);
}
#endif
}
@@ -132,7 +132,7 @@ X11_DispatchEvent(_THIS)
#ifdef DEBUG_XEVENTS
printf("FocusIn!\n");
#endif
SDL_SetKeyboardFocus(videodata->keyboard, data->windowID);
SDL_SetKeyboardFocus(videodata->keyboard, data->window);
#ifdef X_HAVE_UTF8_STRING
if (data->ic) {
XSetICFocus(data->ic);
@@ -232,9 +232,8 @@ X11_DispatchEvent(_THIS)
#ifdef DEBUG_XEVENTS
printf("UnmapNotify!\n");
#endif
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_HIDDEN, 0, 0);
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_MINIMIZED, 0,
0);
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_HIDDEN, 0, 0);
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_MINIMIZED, 0, 0);
}
break;
@@ -243,9 +242,8 @@ X11_DispatchEvent(_THIS)
#ifdef DEBUG_XEVENTS
printf("MapNotify!\n");
#endif
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_SHOWN, 0, 0);
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_RESTORED, 0,
0);
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_SHOWN, 0, 0);
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_RESTORED, 0, 0);
}
break;
@@ -255,9 +253,9 @@ X11_DispatchEvent(_THIS)
printf("ConfigureNotify! (resize: %dx%d)\n",
xevent.xconfigure.width, xevent.xconfigure.height);
#endif
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_MOVED,
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_MOVED,
xevent.xconfigure.x, xevent.xconfigure.y);
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_RESIZED,
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_RESIZED,
xevent.xconfigure.width,
xevent.xconfigure.height);
}
@@ -268,8 +266,7 @@ X11_DispatchEvent(_THIS)
if ((xevent.xclient.format == 32) &&
(xevent.xclient.data.l[0] == videodata->WM_DELETE_WINDOW)) {
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_CLOSE, 0,
0);
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_CLOSE, 0, 0);
}
}
break;
@@ -279,8 +276,7 @@ X11_DispatchEvent(_THIS)
#ifdef DEBUG_XEVENTS
printf("Expose (count = %d)\n", xevent.xexpose.count);
#endif
SDL_SendWindowEvent(data->windowID, SDL_WINDOWEVENT_EXPOSED, 0,
0);
SDL_SendWindowEvent(data->window, SDL_WINDOWEVENT_EXPOSED, 0, 0);
}
break;

View File

@@ -221,7 +221,7 @@ static void
X11_GL_InitExtensions(_THIS)
{
Display *display = ((SDL_VideoData *) _this->driverdata)->display;
int screen = ((SDL_DisplayData *) SDL_CurrentDisplay.driverdata)->screen;
int screen = ((SDL_DisplayData *) SDL_CurrentDisplay->driverdata)->screen;
XVisualInfo *vinfo;
XSetWindowAttributes xattr;
Window w;
@@ -394,8 +394,7 @@ X11_GL_CreateContext(_THIS, SDL_Window * window)
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
Display *display = data->videodata->display;
int screen =
((SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->
driverdata)->screen;
((SDL_DisplayData *) window->display->driverdata)->screen;
XWindowAttributes xattr;
XVisualInfo v, *vinfo;
int n;
@@ -403,7 +402,7 @@ X11_GL_CreateContext(_THIS, SDL_Window * window)
/* We do this to create a clean separation between X and GLX errors. */
XSync(display, False);
XGetWindowAttributes(display, data->window, &xattr);
XGetWindowAttributes(display, data->xwindow, &xattr);
v.screen = screen;
v.visualid = XVisualIDFromVisual(xattr.visual);
vinfo = XGetVisualInfo(display, VisualScreenMask | VisualIDMask, &v, &n);
@@ -492,7 +491,7 @@ X11_GL_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context)
{
Display *display = ((SDL_VideoData *) _this->driverdata)->display;
Window drawable =
(window ? ((SDL_WindowData *) window->driverdata)->window : None);
(window ? ((SDL_WindowData *) window->driverdata)->xwindow : None);
GLXContext glx_context = (GLXContext) context;
int status;
@@ -560,7 +559,7 @@ X11_GL_SwapWindow(_THIS, SDL_Window * window)
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
Display *display = data->videodata->display;
_this->gl_data->glXSwapBuffers(display, data->window);
_this->gl_data->glXSwapBuffers(display, data->xwindow);
}
void

View File

@@ -93,7 +93,7 @@ typedef struct
Visual *visual;
int depth;
int scanline_pad;
Window window;
Window xwindow;
Pixmap pixmaps[3];
int current_pixmap;
Drawable drawable;
@@ -153,7 +153,7 @@ X11_AddRenderDriver(_THIS)
{
SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
SDL_RendererInfo *info = &X11_RenderDriver.info;
SDL_DisplayMode *mode = &SDL_CurrentDisplay.desktop_mode;
SDL_DisplayMode *mode = &SDL_CurrentDisplay->desktop_mode;
int i;
info->texture_formats[info->num_texture_formats++] = mode->format;
@@ -171,7 +171,7 @@ X11_AddRenderDriver(_THIS)
SDL_Renderer *
X11_CreateRenderer(SDL_Window * window, Uint32 flags)
{
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_VideoDisplay *display = window->display;
SDL_DisplayData *displaydata = (SDL_DisplayData *) display->driverdata;
SDL_WindowData *windowdata = (SDL_WindowData *) window->driverdata;
SDL_Renderer *renderer;
@@ -199,7 +199,7 @@ X11_CreateRenderer(SDL_Window * window, Uint32 flags)
data->visual = displaydata->visual;
data->depth = displaydata->depth;
data->scanline_pad = displaydata->scanline_pad;
data->window = windowdata->window;
data->xwindow = windowdata->xwindow;
renderer->DisplayModeChanged = X11_DisplayModeChanged;
renderer->CreateTexture = X11_CreateTexture;
@@ -221,7 +221,7 @@ X11_CreateRenderer(SDL_Window * window, Uint32 flags)
renderer->DestroyTexture = X11_DestroyTexture;
renderer->DestroyRenderer = X11_DestroyRenderer;
renderer->info = X11_RenderDriver.info;
renderer->window = window->id;
renderer->window = window;
renderer->driverdata = data;
renderer->info.flags = SDL_RENDERER_ACCELERATED;
@@ -242,7 +242,7 @@ X11_CreateRenderer(SDL_Window * window, Uint32 flags)
}
for (i = 0; i < n; ++i) {
data->pixmaps[i] =
XCreatePixmap(data->display, data->window, window->w, window->h,
XCreatePixmap(data->display, data->xwindow, window->w, window->h,
displaydata->depth);
if (data->pixmaps[i] == None) {
X11_DestroyRenderer(renderer);
@@ -254,7 +254,7 @@ X11_CreateRenderer(SDL_Window * window, Uint32 flags)
data->drawable = data->pixmaps[0];
data->makedirty = SDL_TRUE;
} else {
data->drawable = data->window;
data->drawable = data->xwindow;
data->makedirty = SDL_FALSE;
}
data->current_pixmap = 0;
@@ -272,7 +272,7 @@ X11_CreateRenderer(SDL_Window * window, Uint32 flags)
/* Create the drawing context */
gcv.graphics_exposures = False;
data->gc =
XCreateGC(data->display, data->window, GCGraphicsExposures, &gcv);
XCreateGC(data->display, data->xwindow, GCGraphicsExposures, &gcv);
if (!data->gc) {
X11_DestroyRenderer(renderer);
SDL_SetError("XCreateGC() failed");
@@ -286,7 +286,7 @@ static int
X11_DisplayModeChanged(SDL_Renderer * renderer)
{
X11_RenderData *data = (X11_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
int i, n;
if (renderer->info.flags & SDL_RENDERER_SINGLEBUFFER) {
@@ -306,7 +306,7 @@ X11_DisplayModeChanged(SDL_Renderer * renderer)
}
for (i = 0; i < n; ++i) {
data->pixmaps[i] =
XCreatePixmap(data->display, data->window, window->w, window->h,
XCreatePixmap(data->display, data->xwindow, window->w, window->h,
data->depth);
if (data->pixmaps[i] == None) {
SDL_SetError("XCreatePixmap() failed");
@@ -325,8 +325,8 @@ static int
X11_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
{
X11_RenderData *renderdata = (X11_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
X11_TextureData *data;
int pitch_alignmask = ((renderdata->scanline_pad / 8) - 1);
@@ -425,7 +425,7 @@ X11_CreateTexture(SDL_Renderer * renderer, SDL_Texture * texture)
}
} else {
data->pixmap =
XCreatePixmap(renderdata->display, renderdata->window, texture->w,
XCreatePixmap(renderdata->display, renderdata->xwindow, texture->w,
texture->h, renderdata->depth);
if (data->pixmap == None) {
X11_DestroyTexture(renderer, texture);
@@ -607,7 +607,7 @@ X11_RenderDrawPoints(SDL_Renderer * renderer, const SDL_Point * points,
int count)
{
X11_RenderData *data = (X11_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
unsigned long foreground;
XPoint *xpoints, *xpoint;
int i, xcount;
@@ -657,7 +657,7 @@ X11_RenderDrawLines(SDL_Renderer * renderer, const SDL_Point * points,
int count)
{
X11_RenderData *data = (X11_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
SDL_Rect clip, rect;
unsigned long foreground;
XPoint *xpoints, *xpoint;
@@ -795,7 +795,7 @@ static int
X11_RenderDrawRects(SDL_Renderer * renderer, const SDL_Rect ** rects, int count)
{
X11_RenderData *data = (X11_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
SDL_Rect clip, rect;
unsigned long foreground;
XRectangle *xrects, *xrect;
@@ -840,7 +840,7 @@ static int
X11_RenderFillRects(SDL_Renderer * renderer, const SDL_Rect ** rects, int count)
{
X11_RenderData *data = (X11_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_Window *window = renderer->window;
SDL_Rect clip, rect;
unsigned long foreground;
XRectangle *xrects, *xrect;
@@ -998,8 +998,8 @@ X11_RenderReadPixels(SDL_Renderer * renderer, const SDL_Rect * rect,
Uint32 format, void * pixels, int pitch)
{
X11_RenderData *data = (X11_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
Uint32 screen_format = display->current_mode.format;
XImage *image;
@@ -1019,8 +1019,8 @@ X11_RenderWritePixels(SDL_Renderer * renderer, const SDL_Rect * rect,
Uint32 format, const void * pixels, int pitch)
{
X11_RenderData *data = (X11_RenderData *) renderer->driverdata;
SDL_Window *window = SDL_GetWindowFromID(renderer->window);
SDL_VideoDisplay *display = SDL_GetDisplayFromWindow(window);
SDL_Window *window = renderer->window;
SDL_VideoDisplay *display = window->display;
Uint32 screen_format = display->current_mode.format;
XImage *image;
void *image_pixels;
@@ -1067,7 +1067,7 @@ X11_RenderPresent(SDL_Renderer * renderer)
if (!(renderer->info.flags & SDL_RENDERER_SINGLEBUFFER)) {
for (dirty = data->dirty.list; dirty; dirty = dirty->next) {
const SDL_Rect *rect = &dirty->rect;
XCopyArea(data->display, data->drawable, data->window,
XCopyArea(data->display, data->drawable, data->xwindow,
data->gc, rect->x, rect->y, rect->w, rect->h,
rect->x, rect->y);
}

View File

@@ -45,7 +45,7 @@ X11_GetDisplaySize(_THIS, SDL_Window * window, int *w, int *h)
{
SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
SDL_DisplayData *displaydata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
XWindowAttributes attr;
XGetWindowAttributes(data->display, RootWindow(data->display,
@@ -75,8 +75,8 @@ SetupWindowData(_THIS, SDL_Window * window, Window w, BOOL created)
SDL_OutOfMemory();
return -1;
}
data->windowID = window->id;
data->window = w;
data->window = window;
data->xwindow = w;
#ifdef X_HAVE_UTF8_STRING
if (SDL_X11_HAVE_UTF8) {
data->ic =
@@ -193,7 +193,7 @@ SetupWindowData(_THIS, SDL_Window * window, Window w, BOOL created)
if (GetFocus() == hwnd) {
int index = data->videodata->keyboard;
window->flags |= SDL_WINDOW_INPUT_FOCUS;
SDL_SetKeyboardFocus(index, data->windowID);
SDL_SetKeyboardFocus(index, data->window);
if (window->flags & SDL_WINDOW_INPUT_GRABBED) {
RECT rect;
@@ -215,7 +215,7 @@ X11_CreateWindow(_THIS, SDL_Window * window)
{
SDL_VideoData *data = (SDL_VideoData *) _this->driverdata;
SDL_DisplayData *displaydata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
Visual *visual;
int depth;
XSetWindowAttributes xattr;
@@ -782,7 +782,7 @@ X11_SetWindowTitle(_THIS, SDL_Window * window)
status = XStringListToTextProperty(&title_locale, 1, &titleprop);
SDL_free(title_locale);
if (status) {
XSetTextProperty(display, data->window, &titleprop, XA_WM_NAME);
XSetTextProperty(display, data->xwindow, &titleprop, XA_WM_NAME);
XFree(titleprop.value);
}
#ifdef X_HAVE_UTF8_STRING
@@ -791,7 +791,7 @@ X11_SetWindowTitle(_THIS, SDL_Window * window)
Xutf8TextListToTextProperty(display, (char **) &title, 1,
XUTF8StringStyle, &titleprop);
if (status == Success) {
XSetTextProperty(display, data->window, &titleprop,
XSetTextProperty(display, data->xwindow, &titleprop,
_NET_WM_NAME);
XFree(titleprop.value);
}
@@ -807,7 +807,7 @@ X11_SetWindowTitle(_THIS, SDL_Window * window)
status = XStringListToTextProperty(&icon_locale, 1, &iconprop);
SDL_free(icon_locale);
if (status) {
XSetTextProperty(display, data->window, &iconprop,
XSetTextProperty(display, data->xwindow, &iconprop,
XA_WM_ICON_NAME);
XFree(iconprop.value);
}
@@ -817,7 +817,7 @@ X11_SetWindowTitle(_THIS, SDL_Window * window)
Xutf8TextListToTextProperty(display, (char **) &icon, 1,
XUTF8StringStyle, &iconprop);
if (status == Success) {
XSetTextProperty(display, data->window, &iconprop,
XSetTextProperty(display, data->xwindow, &iconprop,
_NET_WM_ICON_NAME);
XFree(iconprop.value);
}
@@ -855,13 +855,13 @@ X11_SetWindowIcon(_THIS, SDL_Window * window, SDL_Surface * icon)
propdata[1] = icon->h;
SDL_memcpy(&propdata[2], surface->pixels,
surface->h * surface->pitch);
XChangeProperty(display, data->window, _NET_WM_ICON, XA_CARDINAL,
XChangeProperty(display, data->xwindow, _NET_WM_ICON, XA_CARDINAL,
32, PropModeReplace, (unsigned char *) propdata,
propsize);
}
SDL_FreeSurface(surface);
} else {
XDeleteProperty(display, data->window, _NET_WM_ICON);
XDeleteProperty(display, data->xwindow, _NET_WM_ICON);
}
}
@@ -870,7 +870,7 @@ X11_SetWindowPosition(_THIS, SDL_Window * window)
{
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
SDL_DisplayData *displaydata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
Display *display = data->videodata->display;
int x, y;
@@ -888,7 +888,7 @@ X11_SetWindowPosition(_THIS, SDL_Window * window)
} else {
y = window->y;
}
XMoveWindow(display, data->window, x, y);
XMoveWindow(display, data->xwindow, x, y);
}
void
@@ -897,7 +897,7 @@ X11_SetWindowSize(_THIS, SDL_Window * window)
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
Display *display = data->videodata->display;
XResizeWindow(display, data->window, window->w, window->h);
XResizeWindow(display, data->xwindow, window->w, window->h);
}
void
@@ -906,7 +906,7 @@ X11_ShowWindow(_THIS, SDL_Window * window)
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
Display *display = data->videodata->display;
XMapRaised(display, data->window);
XMapRaised(display, data->xwindow);
}
void
@@ -915,7 +915,7 @@ X11_HideWindow(_THIS, SDL_Window * window)
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
Display *display = data->videodata->display;
XUnmapWindow(display, data->window);
XUnmapWindow(display, data->xwindow);
}
void
@@ -924,7 +924,7 @@ X11_RaiseWindow(_THIS, SDL_Window * window)
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
Display *display = data->videodata->display;
XRaiseWindow(display, data->window);
XRaiseWindow(display, data->xwindow);
}
static void
@@ -932,7 +932,7 @@ X11_SetWindowMaximized(_THIS, SDL_Window * window, SDL_bool maximized)
{
SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
SDL_DisplayData *displaydata =
(SDL_DisplayData *) SDL_GetDisplayFromWindow(window)->driverdata;
(SDL_DisplayData *) window->display->driverdata;
Display *display = data->videodata->display;
Atom _NET_WM_STATE = XInternAtom(display, "_NET_WM_STATE", False);
Atom _NET_WM_STATE_MAXIMIZED_VERT =
@@ -942,7 +942,7 @@ X11_SetWindowMaximized(_THIS, SDL_Window * window, SDL_bool maximized)
XEvent e;
e.xany.type = ClientMessage;
e.xany.window = data->window;
e.xany.window = data->xwindow;
e.xclient.message_type = _NET_WM_STATE;
e.xclient.format = 32;
e.xclient.data.l[0] =
@@ -986,8 +986,8 @@ X11_SetWindowGrab(_THIS, SDL_Window * window)
/* Try to grab the mouse */
for (;;) {
int result =
XGrabPointer(display, data->window, True, 0, GrabModeAsync,
GrabModeAsync, data->window, None, CurrentTime);
XGrabPointer(display, data->xwindow, True, 0, GrabModeAsync,
GrabModeAsync, data->xwindow, None, CurrentTime);
if (result == GrabSuccess) {
break;
}
@@ -995,10 +995,10 @@ X11_SetWindowGrab(_THIS, SDL_Window * window)
}
/* Raise the window if we grab the mouse */
XRaiseWindow(display, data->window);
XRaiseWindow(display, data->xwindow);
/* Now grab the keyboard */
XGrabKeyboard(display, data->window, True, GrabModeAsync,
XGrabKeyboard(display, data->xwindow, True, GrabModeAsync,
GrabModeAsync, CurrentTime);
} else {
XUngrabPointer(display, CurrentTime);
@@ -1021,7 +1021,7 @@ X11_DestroyWindow(_THIS, SDL_Window * window)
if (windowlist) {
for (i = 0; i < numwindows; ++i) {
if (windowlist[i] && (windowlist[i]->windowID == window->id)) {
if (windowlist[i] && (windowlist[i]->window == window)) {
windowlist[i] = windowlist[numwindows - 1];
windowlist[numwindows - 1] = NULL;
videodata->numwindows--;
@@ -1035,7 +1035,7 @@ X11_DestroyWindow(_THIS, SDL_Window * window)
}
#endif
if (data->created) {
XDestroyWindow(display, data->window);
XDestroyWindow(display, data->xwindow);
}
SDL_free(data);
}

View File

@@ -26,8 +26,8 @@
typedef struct
{
SDL_WindowID windowID;
Window window;
SDL_Window *window;
Window xwindow;
XIC ic;
SDL_bool created;
struct SDL_VideoData *videodata;