mirror of
https://github.com/yawut/SDL.git
synced 2026-09-07 16:45:57 -05:00
Switched from SDL_WindowID and SDL_TextureID to SDL_Window* and SDL_Texture* for code simplicity and improved performance.
This commit is contained in:
@@ -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. */
|
||||
|
||||
|
||||
@@ -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(¤t_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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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: */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
@@ -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]) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 ... */
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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];
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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: */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
|
||||
typedef struct
|
||||
{
|
||||
SDL_WindowID windowID;
|
||||
SDL_Window *window;
|
||||
HWND hwnd;
|
||||
HDC hdc;
|
||||
WNDPROC wndproc;
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user