symbian-qemu-0.9.1-12/libsdl-trunk/src/video/wincommon/SDL_lowvideo.h
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 /*
       
     2     SDL - Simple DirectMedia Layer
       
     3     Copyright (C) 1997-2006 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@libsdl.org
       
    21 */
       
    22 #include "SDL_config.h"
       
    23 
       
    24 #ifndef _SDL_lowvideo_h
       
    25 #define _SDL_lowvideo_h
       
    26 
       
    27 #define WIN32_LEAN_AND_MEAN
       
    28 #include <windows.h>
       
    29 
       
    30 #ifndef SetClassLongPtr
       
    31 #define SetClassLongPtr	SetClassLong
       
    32 #endif
       
    33 #ifndef GetWindowLongPtr
       
    34 #define GetWindowLongPtr	GetWindowLong
       
    35 #endif
       
    36 #ifndef SetWindowLongPtr
       
    37 #define SetWindowLongPtr	SetWindowLong
       
    38 #endif
       
    39 #ifndef GWLP_WNDPROC
       
    40 #define GWLP_WNDPROC	GWL_WNDPROC
       
    41 #endif
       
    42 #ifndef GWLP_HINSTANCE
       
    43 #define GWLP_HINSTANCE GWL_HINSTANCE
       
    44 #endif
       
    45 #ifndef GCLP_HICON
       
    46 #define GCLP_HICON GCL_HICON
       
    47 #endif
       
    48 
       
    49 #include "../SDL_sysvideo.h"
       
    50 
       
    51 /* Hidden "this" pointer for the video functions */
       
    52 #define _THIS	SDL_VideoDevice *this
       
    53 
       
    54 #define WINDIB_FULLSCREEN()						\
       
    55 (									\
       
    56 	SDL_VideoSurface &&						\
       
    57 	((SDL_VideoSurface->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) && \
       
    58 	(((SDL_VideoSurface->flags & SDL_OPENGL   ) == SDL_OPENGL    ) || \
       
    59 	((SDL_strcmp(this->name, "windib") == 0) || \
       
    60 	 (SDL_strcmp(this->name, "gapi") == 0))) \
       
    61 )
       
    62 #define DDRAW_FULLSCREEN() 						\
       
    63 (									\
       
    64 	SDL_VideoSurface &&						\
       
    65 	((SDL_VideoSurface->flags & SDL_FULLSCREEN) == SDL_FULLSCREEN) && \
       
    66 	((SDL_VideoSurface->flags & SDL_OPENGL    ) != SDL_OPENGL    ) && \
       
    67 	(SDL_strcmp(this->name, "directx") == 0)				\
       
    68 )
       
    69 
       
    70 #define DINPUT_FULLSCREEN()	DDRAW_FULLSCREEN()
       
    71 
       
    72 /* The main window -- and a function to set it for the audio */
       
    73 #ifdef _WIN32_WCE
       
    74 extern LPWSTR SDL_Appname;
       
    75 #else
       
    76 extern LPSTR SDL_Appname;
       
    77 #endif
       
    78 extern HINSTANCE SDL_Instance;
       
    79 extern HWND SDL_Window;
       
    80 extern BOOL SDL_windowid;
       
    81 
       
    82 /* Variables and functions exported to other parts of the native video
       
    83    subsystem (SDL_sysevents.c)
       
    84 */
       
    85 extern void WIN_FlushMessageQueue();
       
    86 
       
    87 /* Called by windows message loop when application is activated */
       
    88 extern void (*WIN_Activate)(_THIS, BOOL active, BOOL minimized);
       
    89 
       
    90 /* Called by windows message loop when system palette is available */
       
    91 extern void (*WIN_RealizePalette)(_THIS);
       
    92 
       
    93 /* Called by windows message loop when the system palette changes */
       
    94 extern void (*WIN_PaletteChanged)(_THIS, HWND window);
       
    95 
       
    96 /* Called by windows message loop when a portion of the screen needs update */
       
    97 extern void (*WIN_WinPAINT)(_THIS, HDC hdc);
       
    98 
       
    99 /* Called by windows message loop when the message isn't handled */
       
   100 extern LONG (*HandleMessage)(_THIS, HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
       
   101 
       
   102 /* The window cursor (from SDL_sysmouse.c) */
       
   103 extern HCURSOR SDL_hcursor;
       
   104 
       
   105 /* The bounds of the window in screen coordinates */
       
   106 extern RECT SDL_bounds;
       
   107 
       
   108 /* The position of the window in windowed mode */
       
   109 extern int SDL_windowX;
       
   110 extern int SDL_windowY;
       
   111 
       
   112 /* Flag -- SDL is performing a resize, rather than the user */
       
   113 extern int SDL_resizing;
       
   114 
       
   115 /* Flag -- the mouse is in relative motion mode */
       
   116 extern int mouse_relative;
       
   117 
       
   118 /* The GDI fullscreen mode currently active */
       
   119 #ifndef NO_CHANGEDISPLAYSETTINGS
       
   120 extern DEVMODE SDL_desktop_mode;
       
   121 extern DEVMODE SDL_fullscreen_mode;
       
   122 #endif
       
   123 
       
   124 /* The system gamma ramp for GDI modes */
       
   125 extern WORD *gamma_saved;
       
   126 
       
   127 /* This is really from SDL_dx5audio.c */
       
   128 extern void DX5_SoundFocus(HWND window);
       
   129 
       
   130 /* DJM: This is really from SDL_sysevents.c, we need it in
       
   131    GDL_CreateWindow as well */
       
   132 LRESULT CALLBACK WinMessage(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);
       
   133 
       
   134 /* JFP: Implementation of ToUnicode() that works on 9x/ME/2K/XP */
       
   135 typedef int (WINAPI *ToUnicodeFN)(UINT, UINT, PBYTE, LPWSTR, int, UINT);
       
   136 
       
   137 extern ToUnicodeFN SDL_ToUnicode;
       
   138 
       
   139 #endif /* SDL_lowvideo_h */