changeset 4766:7b50faf23907

Moved SDL_shape.h, and building out the API as needed by SDL_Eyes.
author Eli Gottlieb <eligottlieb@gmail.com>
date Fri, 21 May 2010 17:28:12 -0400
parents 5ff305de5834
children dc3fd9b7fcbc
files include/SDL_shape.h src/video/SDL_shape.c src/video/SDL_shape.h
diffstat 3 files changed, 78 insertions(+), 21 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/SDL_shape.h	Fri May 21 17:28:12 2010 -0400
@@ -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);
--- a/src/video/SDL_shape.c	Fri May 21 14:50:04 2010 -0400
+++ b/src/video/SDL_shape.c	Fri May 21 17:28:12 2010 -0400
@@ -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;
+}
--- a/src/video/SDL_shape.h	Fri May 21 14:50:04 2010 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -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
-*/