SDL_cgxvideo.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:6k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.     SDL - Simple DirectMedia Layer
  3.     Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002  Sam Lantinga
  4.     This library is free software; you can redistribute it and/or
  5.     modify it under the terms of the GNU Library General Public
  6.     License as published by the Free Software Foundation; either
  7.     version 2 of the License, or (at your option) any later version.
  8.     This library is distributed in the hope that it will be useful,
  9.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  11.     Library General Public License for more details.
  12.     You should have received a copy of the GNU Library General Public
  13.     License along with this library; if not, write to the Free
  14.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  15.     Sam Lantinga
  16.     slouken@libsdl.org
  17. */
  18. #ifdef SAVE_RCSID
  19. static char rcsid =
  20.  "@(#) $Id: SDL_cgxvideo.h,v 1.4 2002/04/22 21:38:04 wmay Exp $";
  21. #endif
  22. #ifndef _SDL_cgxvideo_h
  23. #define _SDL_cgxvideo_h
  24. #include <stdio.h>
  25. #include <stdlib.h>
  26. #include <string.h>
  27. #include <exec/exec.h>
  28. #include <cybergraphx/cybergraphics.h>
  29. #include <graphics/scale.h>
  30. #include <graphics/gfx.h>
  31. #include <intuition/intuition.h>
  32. #if defined(__SASC) || defined(STORMC4_WOS)
  33. #include <proto/exec.h>
  34. #include <proto/cybergraphics.h>
  35. #include <proto/graphics.h>
  36. #include <proto/intuition.h>
  37. #include <proto/console.h>
  38. #else
  39. #include <inline/exec.h>
  40. #include <inline/cybergraphics.h>
  41. #include <inline/graphics.h>
  42. #include <inline/intuition.h>
  43. #include <inline/console.h>
  44. #endif
  45. #include "mydebug.h"
  46. #include "SDL_mouse.h"
  47. #include "SDL_sysvideo.h"
  48. #define USE_CGX_WRITELUTPIXEL
  49. /* Hidden "this" pointer for the video functions */
  50. #define _THIS SDL_VideoDevice *this
  51. /* Private display data */
  52. struct SDL_PrivateVideoData {
  53.     struct Screen *Public_Display; /* Used for events and window management */
  54.     struct Screen *GFX_Display; /* Used for graphics and colormap stuff */
  55.     Uint32 SDL_VisualUnused; /* The visual used by our window */
  56.     struct Window *SDL_Window; /* Shared by both displays (no X security?) */
  57.     unsigned char *BlankCursor; /* The invisible cursor */
  58.     char *SDL_windowid; /* Flag: true if we have been passed a window */
  59.     /* The variables used for displaying graphics */
  60.     Uint8 *Ximage; /* The X image for our window */
  61.     int swap_pixels; /* Flag: true if display is swapped endian */
  62.     /* The current width and height of the fullscreen mode */
  63.     int current_w;
  64.     int current_h;
  65.     /* Support for internal mouse warping */
  66.     struct {
  67.         int x;
  68.         int y;
  69.     } mouse_last;
  70.     struct {
  71.         int numerator;
  72.         int denominator;
  73.         int threshold;
  74.     } mouse_accel;
  75.     int mouse_relative;
  76.     /* The current list of available video modes */
  77.     SDL_Rect **modelist;
  78.     /* available visuals of interest to us, sorted deepest first */
  79.     struct {
  80. Uint32 visual;
  81. int depth; /* number of significant bits/pixel */
  82. int bpp; /* pixel quantum in bits */
  83.     } visuals[5]; /* at most entries for 8, 15, 16, 24 */
  84.     int nvisuals;
  85.     Uint32 vis; /* current visual in use */
  86.     int depth; /* current visual depth (not bpp) */
  87.     int BytesPerPixel;
  88.     int currently_fullscreen,same_format,dbuffer;
  89.     /* Automatic mode switching support (entering/leaving fullscreen) */
  90.     Uint32 switch_waiting;
  91.     Uint32 switch_time;
  92.     /* Prevent too many XSync() calls */
  93.     int blit_queued;
  94.     /* Colormap handling */
  95.     LONG Pens;
  96.     Sint32 *XPixels; /* A list of pixels that have been allocated, the size depends on the screen format */
  97. struct ScreenBuffer *SB[2];
  98. struct RastPort *RP;
  99.     short *iconcolors; /* List of colors used by the icon */
  100. };
  101. /* Old variable names */
  102. #define local_X11 (this->hidden->local_X11)
  103. #define SDL_Display (this->hidden->Public_Display)
  104. #define GFX_Display (this->hidden->GFX_Display)
  105. #define SDL_Screen DefaultScreen(this->hidden->Public_Display)
  106. #define SDL_Visual (this->hidden->vis)
  107. #define SDL_Root RootWindow(SDL_Display, SDL_Screen)
  108. #define WMwindow (this->hidden->WMwindow)
  109. #define FSwindow (this->hidden->FSwindow)
  110. #define SDL_Window (this->hidden->SDL_Window)
  111. #define WM_DELETE_WINDOW (this->hidden->WM_DELETE_WINDOW)
  112. #define SDL_BlankCursor (this->hidden->BlankCursor)
  113. #define SDL_windowid (this->hidden->SDL_windowid)
  114. #define SDL_Ximage (this->hidden->Ximage)
  115. #define SDL_GC (this->hidden->gc)
  116. #define swap_pixels (this->hidden->swap_pixels)
  117. #define current_w (this->hidden->current_w)
  118. #define current_h (this->hidden->current_h)
  119. #define mouse_last (this->hidden->mouse_last)
  120. #define mouse_accel (this->hidden->mouse_accel)
  121. #define mouse_relative (this->hidden->mouse_relative)
  122. #define SDL_modelist (this->hidden->modelist)
  123. #define SDL_RastPort (this->hidden->RP)
  124. #define saved_mode (this->hidden->saved_mode)
  125. #define saved_view (this->hidden->saved_view)
  126. #define currently_fullscreen (this->hidden->currently_fullscreen)
  127. #define blit_queued (this->hidden->blit_queued)
  128. #define SDL_DisplayColormap (this->hidden->GFX_Display->ViewPort.ColorMap)
  129. #define SDL_XPixels (this->hidden->XPixels)
  130. #define SDL_iconcolors (this->hidden->iconcolors)
  131. /* Used to get the X cursor from a window-manager specific cursor */
  132. // extern Cursor SDL_GetWMXCursor(WMcursor *cursor);
  133. extern int CGX_CreateWindow(_THIS, SDL_Surface *screen,
  134.     int w, int h, int bpp, Uint32 flags);
  135. extern int CGX_ResizeWindow(_THIS,
  136. SDL_Surface *screen, int w, int h, Uint32 flags);
  137. extern void CGX_DestroyWindow(_THIS, SDL_Surface *screen);
  138. extern struct Library *CyberGfxBase;
  139. extern struct IntuitionBase *IntuitionBase;
  140. extern struct GfxBase *GfxBase;
  141. extern struct ExecBase *SysBase;
  142. extern struct DosLibrary *DOSBase;
  143. struct private_hwdata
  144. {
  145. struct BitMap *bmap;
  146. APTR lock;
  147. struct SDL_VideoDevice *videodata;
  148. APTR mask;
  149. int allocated;
  150. };
  151. int CGX_CheckHWBlit(_THIS,SDL_Surface *src,SDL_Surface *dst);
  152. int CGX_FillHWRect(_THIS,SDL_Surface *dst,SDL_Rect *dstrect,Uint32 color);
  153. int CGX_SetHWColorKey(_THIS,SDL_Surface *surface, Uint32 key);
  154. #endif /* _SDL_x11video_h */