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

流媒体/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_gemvideo.h,v 1.1 2002/04/22 21:38:05 wmay Exp $";
  21. #endif
  22. #ifndef _SDL_gemvideo_h
  23. #define _SDL_gemvideo_h
  24. #include "SDL_sysvideo.h"
  25. #include "SDL_mutex.h"
  26. /* Hidden "this" pointer for the video functions */
  27. #define _THIS SDL_VideoDevice *this
  28. /* Functions prototypes */
  29. void GEM_wind_redraw(_THIS, int winhandle, short *inside);
  30. /* Private display data */
  31. #define SDL_NUMMODES 1 /* Fullscreen */
  32. struct SDL_PrivateVideoData {
  33. /* VDI infos */
  34. short vdi_handle; /* VDI handle */
  35. short full_w, full_h; /* Fullscreen size */
  36.     int bpp; /* Colour depth */
  37. int pixelsize; /* Bytes per pixel */
  38. Uint16 old_numcolors; /* Number of colors in saved palette */
  39. Uint16 old_palette[256][3]; /* Saved current palette */
  40. Uint16 pitch; /* Line length */
  41. int format; /* Screen format */
  42. void *screen; /* Screen address */
  43. Uint32 red, green, blue, alpha; /* Screen components */
  44. Uint32 screensize;
  45. MFDB src_mfdb, dst_mfdb; /* VDI MFDB for bitblt */
  46. short blit_coords[8]; /* Coordinates for bitblt */
  47. /* Gem infos */
  48. short ap_id; /* AES handle */
  49. short desk_x, desk_y; /* Desktop properties */
  50. short desk_w, desk_h;
  51. short win_handle; /* Our window handle */
  52.     void *buffer; /* Our shadow buffer */
  53. int window_type; /* Window type */
  54. const char *title_name; /* Window title */
  55. const char *icon_name; /* Icon title */
  56. short version; /* AES version */
  57. short wfeatures; /* AES window features */
  58. SDL_bool window_fulled; /* Window maximized ? */
  59. SDL_bool mouse_relative; /* Report relative mouse movement */
  60. SDL_bool locked; /* AES locked for fullscreen ? */
  61. SDL_Rect *SDL_modelist[SDL_NUMMODES+1]; /* Mode list */
  62. };
  63. /* Hidden structure -> variables names */
  64. #define VDI_handle (this->hidden->vdi_handle)
  65. #define VDI_w (this->hidden->full_w)
  66. #define VDI_h (this->hidden->full_h)
  67. #define VDI_bpp (this->hidden->bpp)
  68. #define VDI_pixelsize (this->hidden->pixelsize)
  69. #define VDI_oldnumcolors (this->hidden->old_numcolors)
  70. #define VDI_oldpalette (this->hidden->old_palette)
  71. #define VDI_pitch (this->hidden->pitch)
  72. #define VDI_format (this->hidden->format)
  73. #define VDI_screen (this->hidden->screen)
  74. #define VDI_redmask (this->hidden->red)
  75. #define VDI_greenmask (this->hidden->green)
  76. #define VDI_bluemask (this->hidden->blue)
  77. #define VDI_alphamask (this->hidden->alpha)
  78. #define VDI_screensize (this->hidden->screensize)
  79. #define VDI_src_mfdb (this->hidden->src_mfdb)
  80. #define VDI_dst_mfdb (this->hidden->dst_mfdb)
  81. #define VDI_blit_coords (this->hidden->blit_coords)
  82. #define GEM_ap_id (this->hidden->ap_id)
  83. #define GEM_desk_x (this->hidden->desk_x)
  84. #define GEM_desk_y (this->hidden->desk_y)
  85. #define GEM_desk_w (this->hidden->desk_w)
  86. #define GEM_desk_h (this->hidden->desk_h)
  87. #define GEM_handle (this->hidden->win_handle)
  88. #define GEM_buffer (this->hidden->buffer)
  89. #define GEM_win_type (this->hidden->window_type)
  90. #define GEM_title_name (this->hidden->title_name)
  91. #define GEM_icon_name (this->hidden->icon_name)
  92. #define GEM_version (this->hidden->version)
  93. #define GEM_wfeatures (this->hidden->wfeatures)
  94. #define GEM_win_fulled (this->hidden->window_fulled)
  95. #define GEM_mouse_relative (this->hidden->mouse_relative)
  96. #define GEM_locked (this->hidden->locked)
  97. #define SDL_modelist (this->hidden->SDL_modelist)
  98. #endif /* _SDL_gemvideo_h */