diff src/video/photon/SDL_ph_video.h @ 663:8bedd6d61642

Date: Sat, 2 Aug 2003 16:22:51 +0300 From: "Mike Gorchak" Subject: New patches for QNX6 Here my patches for the SDL/QNX: QNXSDL.diff - diff to non-QNX related sources: - updated BUGS file, I think QNX6 is now will be officially supported - configure.in - added shared library support for QNX, and removed dependency between the ALSA and QNX6. - SDL_audio.c - added QNX NTO sound bootstrap insted of ALSA's. - SDL_sysaudio.h - the same. - SDL_nto_audio.c - the same. - SDL_video.c - right now, QNX doesn't offer any method to obtain pointers to the OpenGL functions by function name, so they must be hardcoded in library, otherwise OpenGL will not be supported. - testsprite.c - fixed: do not draw vertical red line if we are in non-double-buffered mode. sdlqnxph.tar.gz - archive of the ./src/video/photon/* . Too many changes in code to make diffs :) : + Added stub for support hide/unhide window event + Added full YUV overlays support. + Added window maximize support. + Added mouse wheel events. + Added support for some specific key codes in Unicode mode (like ESC). + Added more checks to the all memory allocation code. + Added SDL_DOUBLEBUF support in all fullscreen modes. + Added fallback to window mode, if desired fullscreen mode is not supported. + Added stub support for the GL_LoadLibrary and GL_GetProcAddress functions. + Added resizable window support without caption. ! Fixed bug in the Ph_EV_EXPOSE event handler, when rectangles to update is 0 and when width or height of the rectangle is 0. ! Fixed bug in the event handler code. Events has not been passed to the window widget handler. ! Fixed codes for Win keys (Super/Hyper/Menu). ! Fixed memory leak, when deallocation palette. ! Fixed palette emulation code bugs. ! Fixed fullscreen and hwsurface handling. ! Fixed CLOSE button bug. First event was passed to the handler, but second terminated the application. Now all events passed to the application correctly. - Removed all printfs in code, now SDL_SetError used instead of them. - Disabled ToggleFullScreen function. README.QNX - updated README.QNX file. Added much more issues.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 04 Aug 2003 00:52:42 +0000
parents 8e3ce997621c
children 04dd6c6d7c30
line wrap: on
line diff
--- a/src/video/photon/SDL_ph_video.h	Mon Jul 28 01:47:55 2003 +0000
+++ b/src/video/photon/SDL_ph_video.h	Mon Aug 04 00:52:42 2003 +0000
@@ -20,22 +20,23 @@
     slouken@libsdl.org
 */
 
-#ifndef _SDL_ph_video_h
-#define _SDL_ph_video_h
+#ifndef __SDL_PH_VIDEO_H__
+#define __SDL_PH_VIDEO_H__
 
 #include "SDL_mouse.h"
 #include "SDL_sysvideo.h"
 
-#include "Ph.h"
-#include "Pt.h"
+#include <Ph.h>
+#include <Pt.h>
 #include <photon/Pg.h>
 #include <photon/PdDirect.h>
+
 #ifdef HAVE_OPENGL
-#include <photon/PdGL.h>
+    #include <photon/PdGL.h>
 #endif /* HAVE_OPENGL */
 
 /* Hidden "this" pointer for the video functions */
-#define _THIS	SDL_VideoDevice *this
+#define _THIS	SDL_VideoDevice* this
 
 #define PH_OGL_MAX_ATTRIBS 32
 
@@ -43,18 +44,23 @@
 #define SDLPH_PAL_EMULATE 0x00000001L
 #define SDLPH_PAL_SYSTEM  0x00000002L
 
-typedef union vidptr{
-  uint8_t*  volatile ptr8;
-  uint16_t* volatile ptr16;
-  uint32_t* volatile ptr32;
- } VidPtr_t;
-
-typedef struct {
+typedef struct
+{
 	unsigned char* Y;
 	unsigned char* V;
 	unsigned char* U;
 } FRAMEDATA;
 
+/* Mask values for SDL_ReallocFormat() */
+struct ColourMasks
+{
+    Uint32 red;
+    Uint32 green;
+    Uint32 blue;
+    Uint32 alpha;
+    Uint32 bpp;
+};
+
 /* Private display data */
 struct SDL_PrivateVideoData {
     PgDisplaySettings_t mode_settings;	
@@ -69,8 +75,9 @@
     struct {
         PdDirectContext_t*    direct_context;
         PdOffscreenContext_t* offscreen_context;
+        PdOffscreenContext_t* offscreen_backcontext;
         PhDrawContext_t*      oldDC;
-        VidPtr_t dc_ptr;
+        uint8_t*              dc_ptr;
         unsigned char* CurrentFrameData;
         unsigned char* FrameData0;
         unsigned char* FrameData1;
@@ -85,13 +92,15 @@
     int mouse_relative;
     WMcursor* BlankCursor;
 
-    int depth;			/* current visual depth (not bpp)        */
-    int desktopbpp;             /* bpp of desktop at the moment of start */
-    int desktoppal;             /* palette mode emulation or system      */
+    int depth;			/* current visual depth (not bpp)           */
+    int desktopbpp;             /* bpp of desktop at the moment of start    */
+    int desktoppal;             /* palette mode emulation or system         */
 
     int currently_fullscreen;
+    int currently_hided;        /* 1 - window hided (minimazed), 0 - normal */
 
     PhEvent_t* event;
+    SDL_Overlay* overlay;
 };
 
 #define mode_settings        (this->hidden->mode_settings)
@@ -106,11 +115,13 @@
 #define desktoppal           (this->hidden->desktoppal)
 #define savedpal             (this->hidden->savedpal)
 #define syspalph             (this->hidden->syspalph)
+#define currently_fullscreen (this->hidden->currently_fullscreen)
+#define currently_hided      (this->hidden->currently_hided)
+#define event                (this->hidden->event)
+#define current_overlay      (this->hidden->overlay)
 
 /* Old variable names */
 #define mouse_relative       (this->hidden->mouse_relative)
-#define currently_fullscreen (this->hidden->currently_fullscreen)
-#define event                (this->hidden->event)
 #define SDL_BlankCursor      (this->hidden->BlankCursor)
 
-#endif /* _SDL_x11video_h */
+#endif /* __SDL_PH_VIDEO_H__ */