1 /* 2 SDL - Simple DirectMedia Layer 3 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Sam Lantinga 4 5 This library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Library General Public 7 License as published by the Free Software Foundation; either 8 version 2 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 Library General Public License for more details. 14 15 You should have received a copy of the GNU Library General Public 16 License along with this library; if not, write to the Free 17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 19 Sam Lantinga 20 slouken (at) libsdl.org 21 */ 22 #include "SDL_config.h" 23 24 #ifndef _SDL_os2fslib_h 25 #define _SDL_os2fslib_h 26 27 28 // OS2 specific includes 29 #define INCL_TYPES 30 #define INCL_DOS 31 #define INCL_DOSERRORS 32 #define INCL_DOSPROCESS 33 #define INCL_WIN 34 #define INCL_GPI 35 #include <os2.h> 36 37 #include <FSLib.h> 38 39 /* Hidden "this" pointer for the video functions */ 40 #define _THIS SDL_VideoDevice *_this 41 42 /* Private display data */ 43 struct SDL_PrivateVideoData 44 { 45 FSLib_VideoMode_p pAvailableFSLibVideoModes; 46 SDL_Rect **pListModesResult; // Allocated memory to return list of modes for os2fslib_ListModes() API 47 48 FSLib_VideoMode SrcBufferDesc; // Description of current source image buffer 49 char *pchSrcBuffer; // The source image buffer itself 50 SDL_Surface *pSDLSurface; // The SDL surface describing the buffer 51 HMTX hmtxUseSrcBuffer; // Mutex semaphore to manipulate src buffer 52 HWND hwndFrame, hwndClient; // Window handle of frame and client 53 int iPMThreadStatus; // 0: Not running 54 // 1: Running 55 // Other: Not running, had an error 56 int tidPMThread; // Thread ID of PM Thread 57 int fInFocus; // True if we're in focus! 58 int iSkipWMMOUSEMOVE; // Number of WM_MOUSEMOVE messages to skip! 59 int iMouseVisible; // 60 61 PFNWP pfnOldFrameProc; // Old window frame procedure 62 int bProportionalResize; // 0: No proportional resizing 63 // 1: Do proportional resizing 64 ULONG ulResizingFlag; // First resizing flag value 65 }; 66 67 /* OS/2 specific backdoor function to be able to set FrameControlFlags of */ 68 /* the SDL window before creating it. */ 69 extern DECLSPEC void SDLCALL SDL_OS2FSLIB_SetFCFToUse(ULONG ulFCF); 70 71 #endif /* _SDL_os2fslib_h */ 72