146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner/* 246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner SDL - Simple DirectMedia Layer 346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Copyright (C) 1997-2004 Sam Lantinga 446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner This library is free software; you can redistribute it and/or 646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner modify it under the terms of the GNU Library General Public 746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner License as published by the Free Software Foundation; either 846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner version 2 of the License, or (at your option) any later version. 946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 1046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner This library is distributed in the hope that it will be useful, 1146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner but WITHOUT ANY WARRANTY; without even the implied warranty of 1246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Library General Public License for more details. 1446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 1546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner You should have received a copy of the GNU Library General Public 1646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner License along with this library; if not, write to the Free 1746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 1846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 1946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Sam Lantinga 2046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner slouken@libsdl.org 2146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner*/ 2246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include "SDL_config.h" 2346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 2446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#ifndef __SDL_PH_VIDEO_H__ 2546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define __SDL_PH_VIDEO_H__ 2646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 2746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include "SDL_mouse.h" 2846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include "../SDL_sysvideo.h" 2946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 3046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include <sys/neutrino.h> 3146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 3246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include <Ph.h> 3346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include <Pt.h> 3446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include <photon/Pg.h> 3546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#include <photon/PdDirect.h> 3646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 3746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#if SDL_VIDEO_OPENGL 3846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #if (_NTO_VERSION < 630) 3946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #include <photon/PdGL.h> 4046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #else 4146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #include <GL/qnxgl.h> 4246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #include <GL/GLPh.h> 4346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #endif /* 6.3.0 */ 4446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#endif /* SDL_VIDEO_OPENGL */ 4546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 4646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner/* Hidden "this" pointer for the video functions */ 4746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define _THIS SDL_VideoDevice* this 4846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 4946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define PH_OGL_MAX_ATTRIBS 32 5046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 5146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define SDLPH_PAL_NONE 0x00000000L 5246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define SDLPH_PAL_EMULATE 0x00000001L 5346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define SDLPH_PAL_SYSTEM 0x00000002L 5446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 5546be48730333120a7b939116cef075e61c12c703David 'Digit' Turnertypedef struct 5646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner{ 5746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner unsigned char* Y; 5846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner unsigned char* V; 5946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner unsigned char* U; 6046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner} FRAMEDATA; 6146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 6246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner/* Mask values for SDL_ReallocFormat() */ 6346be48730333120a7b939116cef075e61c12c703David 'Digit' Turnerstruct ColourMasks 6446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner{ 6546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Uint32 red; 6646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Uint32 green; 6746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Uint32 blue; 6846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Uint32 alpha; 6946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Uint32 bpp; 7046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner}; 7146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 7246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner/* Private display data */ 7346be48730333120a7b939116cef075e61c12c703David 'Digit' Turnerstruct SDL_PrivateVideoData 7446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner{ 7546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PgDisplaySettings_t mode_settings; 7646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PtWidget_t *Window; /* used to handle input events */ 7746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PhImage_t *image; /* used to display image */ 7846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#if SDL_VIDEO_OPENGL 7946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #if (_NTO_VERSION < 630) 8046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PdOpenGLContext_t* OGLContext; /* OpenGL context */ 8146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner void* OGLBuffers; /* OpenGL buffers (unused) */ 8246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #else 8346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner qnxglc_t* OGLContext; /* OpenGL context for the 6.3 */ 8446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner qnxgl_bufs_t* OGLBuffers; /* OpenGL buffers for the 6.3 */ 8546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #endif /* 630 */ 8646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 8746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Uint32 OGLFlags; /* OpenGL flags */ 8846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Uint32 OGLBPP; /* OpenGL bpp */ 8946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#endif /* SDL_VIDEO_OPENGL */ 9046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PgColor_t savedpal[_Pg_MAX_PALETTE]; 9146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PgColor_t syspalph[_Pg_MAX_PALETTE]; 9246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 9346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner struct 9446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner { 9546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PdDirectContext_t* direct_context; 9646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PdOffscreenContext_t* offscreen_context; 9746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PdOffscreenContext_t* offscreen_backcontext; 9846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PhDrawContext_t* oldDC; 9946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner uint8_t* dc_ptr; 10046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner unsigned char* CurrentFrameData; 10146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner unsigned char* FrameData0; 10246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner unsigned char* FrameData1; 10346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Uint32 current; 10446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Uint32 flags; 10546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner } ocimage; 10646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 10746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PgHWCaps_t graphics_card_caps; /* Graphics card caps at the moment of start */ 10846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PgVideoModeInfo_t desktop_mode; /* Current desktop video mode information */ 10946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int old_video_mode; /* Stored mode before fullscreen switch */ 11046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int old_refresh_rate; /* Stored refresh rate befor fullscreen switch */ 11146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 11246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int mouse_relative; 11346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner WMcursor* BlankCursor; 11446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner uint32_t videomode_emulatemode; 11546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 11646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Uint32 visualbpp; /* current visual bpp */ 11746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Uint32 desktopbpp; /* bpp of desktop at the moment of start */ 11846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner Uint32 desktoppal; /* palette mode emulation or system */ 11946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 12046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int currently_fullscreen; 12146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int currently_hided; /* 1 - window hided (minimazed), 0 - normal */ 12246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner int currently_maximized; /* 1 - window hided (minimazed), 0 - normal */ 12346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 12446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner PhEvent_t* event; 12546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner SDL_Overlay* overlay; 12646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner}; 12746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 12846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define mode_settings (this->hidden->mode_settings) 12946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define window (this->hidden->Window) 13046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define SDL_Image (this->hidden->image) 13146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define OCImage (this->hidden->ocimage) 13246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define old_video_mode (this->hidden->old_video_mode) 13346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define old_refresh_rate (this->hidden->old_refresh_rate) 13446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define graphics_card_caps (this->hidden->graphics_card_caps) 13546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define desktopbpp (this->hidden->desktopbpp) 13646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define visualbpp (this->hidden->visualbpp) 13746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define desktoppal (this->hidden->desktoppal) 13846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define savedpal (this->hidden->savedpal) 13946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define syspalph (this->hidden->syspalph) 14046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define currently_fullscreen (this->hidden->currently_fullscreen) 14146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define currently_hided (this->hidden->currently_hided) 14246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define currently_maximized (this->hidden->currently_maximized) 14346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define phevent (this->hidden->event) 14446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define current_overlay (this->hidden->overlay) 14546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define desktop_mode (this->hidden->desktop_mode) 14646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define mouse_relative (this->hidden->mouse_relative) 14746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define SDL_BlankCursor (this->hidden->BlankCursor) 14846be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#define videomode_emulatemode (this->hidden->videomode_emulatemode) 14946be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 15046be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#if SDL_VIDEO_OPENGL 15146be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #define oglctx (this->hidden->OGLContext) 15246be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #define oglbuffers (this->hidden->OGLBuffers) 15346be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #define oglflags (this->hidden->OGLFlags) 15446be48730333120a7b939116cef075e61c12c703David 'Digit' Turner #define oglbpp (this->hidden->OGLBPP) 15546be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#endif /* SDL_VIDEO_OPENGL */ 15646be48730333120a7b939116cef075e61c12c703David 'Digit' Turner 15746be48730333120a7b939116cef075e61c12c703David 'Digit' Turner#endif /* __SDL_PH_VIDEO_H__ */ 158