diff src/video/wscons/SDL_wsconsvideo.h @ 1187:19d8949b4584

To: sdl@libsdl.org From: Staffan Ulfberg <staffan@ulfberg.se> Date: 19 Nov 2005 01:00:48 +0100 Subject: [SDL] New driver for OpenBSD/wscons Hello, I've written an SDL driver for OpenBSD/wscons (console mode, somewhat resembling the functionality of the svga driver for Linux). I use it for playing MAME on my Sharp Zaurus. The alternative is to play under X, which is slower. I asked how to submit the driver a few days ago, and posted a link to the patch in a follow-up, so maybe it was missed? Anyway, the patch is on the web at: http://multivac.fatburen.org/SDL-wscons.patch Comments? Staffan
author Ryan C. Gordon <icculus@icculus.org>
date Tue, 22 Nov 2005 15:19:50 +0000
parents
children c9b51268668f
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/video/wscons/SDL_wsconsvideo.h	Tue Nov 22 15:19:50 2005 +0000
@@ -0,0 +1,79 @@
+/*
+    SDL - Simple DirectMedia Layer
+    Copyright (C) 1997-2004 Sam Lantinga
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Library General Public
+    License as published by the Free Software Foundation; either
+    version 2 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
+    Library General Public License for more details.
+
+    You should have received a copy of the GNU Library General Public
+    License along with this library; if not, write to the Free
+    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+    Sam Lantinga
+    slouken@libsdl.org
+*/
+
+#ifdef SAVE_RCSID
+static char rcsid =
+ "@(#) $Id$";
+#endif
+
+#ifndef _SDL_wsconsvideo_h
+#define _SDL_wsconsvideo_h
+
+#include <sys/time.h>
+#include <termios.h>
+#include <dev/wscons/wsconsio.h>
+#include "SDL_mouse.h"
+#include "SDL_sysvideo.h"
+#include "SDL_mutex.h"
+
+void WSCONS_ReportError(char *fmt, ...);
+
+/* Hidden "this" pointer for the video functions */
+#define _THIS	SDL_VideoDevice *this
+#define private	(this->hidden)
+
+/* Private display data */
+
+typedef void WSCONS_bitBlit(Uint8 *src_pos,
+			    int srcRightDelta, // pixels, not bytes
+			    int srcDownDelta,  // pixels, not bytes
+			    Uint8 *dst_pos,
+			    int dst_linebytes,
+			    int width,
+			    int height);
+
+struct SDL_PrivateVideoData {
+  int fd;                       /* file descriptor of open device */
+  struct wsdisplay_fbinfo info; /* frame buffer characteristics */
+  int physlinebytes;            /* number of bytes per row */
+  int redMask, greenMask, blueMask;
+
+  Uint8 *fbstart;               /* These refer to the surface used, */
+  int fblinebytes;              /* physical frame buffer or shadow. */
+
+  size_t fbmem_len;
+  Uint8 *physmem;
+  Uint8 *shadowmem;
+  int rotate;
+  int shadowFB;                 /* Tells whether a shadow is being used. */
+
+  WSCONS_bitBlit *blitFunc;
+
+  SDL_Rect *SDL_modelist[2];
+
+  unsigned int kbdType;
+  int did_save_tty;
+  struct termios saved_tty;
+};
+
+
+#endif /* _SDL_wsconsvideo_h */