From 5a2c406b4666c88d301083bda6d6916f7f370828 Mon Sep 17 00:00:00 2001 From: Eli Gottlieb Date: Fri, 21 May 2010 17:28:12 -0400 Subject: [PATCH] Moved SDL_shape.h, and building out the API as needed by SDL_Eyes. --- include/SDL_shape.h | 55 +++++++++++++++++++++++++++++++++++++++++++ src/video/SDL_shape.c | 23 ++++++++++++++++++ src/video/SDL_shape.h | 21 ----------------- 3 files changed, 78 insertions(+), 21 deletions(-) create mode 100644 include/SDL_shape.h delete mode 100644 src/video/SDL_shape.h diff --git a/include/SDL_shape.h b/include/SDL_shape.h new file mode 100644 index 000000000..02ef4ac0f --- /dev/null +++ b/include/SDL_shape.h @@ -0,0 +1,55 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 2010 Eli Gottlieb + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + Eli Gottlieb + eligottlieb@gmail.com +*/ + +struct SDL_Shaped_Window; +typedef struct SDL_Shaped_Window SDL_Shaped_Window; + +/** + * \brief Create a shaped window with the specified position, dimensions, and flags. + * + * \param title The title of the window, in UTF-8 encoding. + * \param x The x position of the window, ::SDL_WINDOWPOS_CENTERED, or + * ::SDL_WINDOWPOS_UNDEFINED. + * \param y The y position of the window, ::SDL_WINDOWPOS_CENTERED, or + * ::SDL_WINDOWPOS_UNDEFINED. + * \param w The width of the window. + * \param h The height of the window. + * \param flags The flags for the window, a mask of SDL_WINDOW_BORDERLESS with any of the following: + * ::SDL_WINDOW_FULLSCREEN, ::SDL_WINDOW_OPENGL, + * ::SDL_WINDOW_SHOWN, ::SDL_WINDOW_RESIZABLE, + * ::SDL_WINDOW_MAXIMIZED, ::SDL_WINDOW_MINIMIZED, + * ::SDL_WINDOW_INPUT_GRABBED. + * + * \return The id of the window created, or zero if window creation failed. + * + * \sa SDL_DestroyWindow() + */ +extern DECLSPEC SDL_Shaped_Window * SDLCALL SDL_CreateShapedWindow(const char *title,unsigned int x,unsigned int y,unsigned int w,unsigned int h,Uint32 flags); + +extern DECLSPEC SDL_Surface * SDLCALL SDL_LockWindowShape(const SDL_Shaped_Window *window); +extern DECLSPEC void SDLCALL SDL_UnlockWindowShape(const SDL_Shaped_Window *window); +extern DECLSPEC int SDLCALL SDL_PresentWindowShape(const SDL_Shaped_Window *window); + +extern DECLSPEC SDL_Window * SDLCALL SDL_LockShapedWindow(const SDL_Shaped_Window *window); +extern DECLSPEC void SDLCALL SDL_UnlockShapedWindow(const SDL_Shaped_Window *window); + +extern DECLSPEC void SDLCALL SDL_DestroyShapedWindow(const SDL_Shaped_Window *window); diff --git a/src/video/SDL_shape.c b/src/video/SDL_shape.c index b4ef073d6..f20878715 100644 --- a/src/video/SDL_shape.c +++ b/src/video/SDL_shape.c @@ -21,3 +21,26 @@ */ #include "SDL_shape.h" + +struct SDL_Shaped_Window { + SDL_Window *window; + SDL_Surface *shape_mask; +} + +SDL_Shaped_Window * SDLCALL SDL_CreateShapedWindow(const char *title, + unsigned int x,unsigned int y, + unsigned int w,unsigned int h, + Uint32 flags) { + //TODO: Fill in stub of SDL_CreatedShapedWindow + return NULL; +} + +int SDLCALL SDL_PresentShape(const SDL_Shaped_Window *window) { + //TODO: Fill in stub of SDL_PresentShape + return -1; +} + +void SDLCALL SDL_DestroyShapedWindow(const SDL_Shaped_Window *window) { + //TODO: Fill in stub of SDL_DestroyShapedWindow + return; +} diff --git a/src/video/SDL_shape.h b/src/video/SDL_shape.h deleted file mode 100644 index 8181ce217..000000000 --- a/src/video/SDL_shape.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - SDL - Simple DirectMedia Layer - Copyright (C) 2010 Eli Gottlieb - - This library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - This library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with this library; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - Eli Gottlieb - eligottlieb@gmail.com -*/