Home | History | Annotate | Download | only in wscons
      1 /*
      2     SDL - Simple DirectMedia Layer
      3     Copyright (C) 1997-2012 Sam Lantinga
      4 
      5     This library is free software; you can redistribute it and/or
      6     modify it under the terms of the GNU Lesser General Public
      7     License as published by the Free Software Foundation; either
      8     version 2.1 of the License, or (at your option) any later version.
      9 
     10     This library is distributed in the hope that it will be useful,
     11     but WITHOUT ANY WARRANTY; without even the implied warranty of
     12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     13     Lesser General Public License for more details.
     14 
     15     You should have received a copy of the GNU Lesser General Public
     16     License along with this library; if not, write to the Free Software
     17     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
     18 
     19     Sam Lantinga
     20     slouken (at) libsdl.org
     21 */
     22 #include "SDL_config.h"
     23 
     24 #ifndef _SDL_wsconsvideo_h
     25 #define _SDL_wsconsvideo_h
     26 
     27 #include <sys/time.h>
     28 #include <termios.h>
     29 #include <dev/wscons/wsconsio.h>
     30 
     31 #include "SDL_mouse.h"
     32 #include "SDL_mutex.h"
     33 #include "../SDL_sysvideo.h"
     34 
     35 void WSCONS_ReportError(char *fmt, ...);
     36 
     37 /* Hidden "this" pointer for the video functions */
     38 #define _THIS	SDL_VideoDevice *this
     39 #define private	(this->hidden)
     40 
     41 /* Private display data */
     42 
     43 typedef void WSCONS_bitBlit(Uint8 *src_pos,
     44 			    int srcRightDelta, // pixels, not bytes
     45 			    int srcDownDelta,  // pixels, not bytes
     46 			    Uint8 *dst_pos,
     47 			    int dst_linebytes,
     48 			    int width,
     49 			    int height);
     50 
     51 struct SDL_PrivateVideoData {
     52   int fd;                       /* file descriptor of open device */
     53   struct wsdisplay_fbinfo info; /* frame buffer characteristics */
     54   int physlinebytes;            /* number of bytes per row */
     55   int redMask, greenMask, blueMask;
     56 
     57   Uint8 *fbstart;               /* These refer to the surface used, */
     58   int fblinebytes;              /* physical frame buffer or shadow. */
     59 
     60   size_t fbmem_len;
     61   Uint8 *physmem;
     62   Uint8 *shadowmem;
     63   int rotate;
     64   int shadowFB;                 /* Tells whether a shadow is being used. */
     65 
     66   WSCONS_bitBlit *blitFunc;
     67 
     68   SDL_Rect *SDL_modelist[2];
     69 
     70   unsigned int kbdType;
     71   int did_save_tty;
     72   struct termios saved_tty;
     73 };
     74 
     75 
     76 #endif /* _SDL_wsconsvideo_h */
     77