⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdl_gapivideo.h

📁 SDL库 在进行视频显示程序spcaview安装时必须的库文件
💻 H
字号:
/*    SDL - Simple DirectMedia Layer    Copyright (C) 1997-2006 Sam Lantinga    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU Lesser General Public    License as published by the Free Software Foundation; either    version 2.1 of the License, or (at your option) any later version.    This library is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU    Lesser General Public License for more details.    You should have received a copy of the GNU Lesser General Public    License along with this library; if not, write to the Free Software    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA    Sam Lantinga    slouken@libsdl.org*/#include "SDL_config.h"#ifndef _SDL_gapivideo_h#define _SDL_gapivideo_h#include "SDL_mouse.h"#include "SDL_mutex.h"#include "../SDL_sysvideo.h"/* From gx.h, since it's not really C compliant */struct GXDisplayProperties {    DWORD cxWidth;    DWORD cyHeight;         // notice lack of 'th' in the word height.    long cbxPitch;          // number of bytes to move right one x pixel - can be negative.    long cbyPitch;          // number of bytes to move down one y pixel - can be negative.    long cBPP;              // # of bits in each pixel    DWORD ffFormat;         // format flags.};struct GXKeyList {    short vkUp;             // key for up    POINT ptUp;             // x,y position of key/button.  Not on screen but in screen coordinates.    short vkDown;    POINT ptDown;    short vkLeft;    POINT ptLeft;    short vkRight;    POINT ptRight;    short vkA;    POINT ptA;    short vkB;    POINT ptB;    short vkC;    POINT ptC;    short vkStart;    POINT ptStart;};typedef int   (*PFNGXOpenDisplay)(HWND hWnd, DWORD dwFlags);typedef int   (*PFNGXCloseDisplay)();typedef void* (*PFNGXBeginDraw)();typedef int   (*PFNGXEndDraw)();typedef int   (*PFNGXOpenInput)();typedef int   (*PFNGXCloseInput)();typedef struct GXDisplayProperties (*PFNGXGetDisplayProperties)();typedef struct GXKeyList (*PFNGXGetDefaultKeys)(int iOptions);typedef int   (*PFNGXSuspend)();typedef int   (*PFNGXResume)();typedef int   (*PFNGXSetViewport)( DWORD dwTop, DWORD dwHeight, DWORD dwReserved1, DWORD dwReserved2 );typedef BOOL  (*PFNGXIsDisplayDRAMBuffer)();struct GapiFunc{    PFNGXOpenDisplay          GXOpenDisplay;    PFNGXCloseDisplay         GXCloseDisplay;    PFNGXBeginDraw            GXBeginDraw;    PFNGXEndDraw              GXEndDraw;    PFNGXOpenInput            GXOpenInput;    PFNGXCloseInput           GXCloseInput;    PFNGXGetDisplayProperties GXGetDisplayProperties;    PFNGXGetDefaultKeys       GXGetDefaultKeys;    PFNGXSuspend              GXSuspend;    PFNGXResume               GXResume;    PFNGXSetViewport          GXSetViewport;    PFNGXIsDisplayDRAMBuffer  GXIsDisplayDRAMBuffer;};#define kfLandscape	0x8			// Screen is rotated 270 degrees#define kfPalette	0x10		// Pixel values are indexes into a palette#define kfDirect	0x20		// Pixel values contain actual level information#define kfDirect555	0x40		// 5 bits each for red, green and blue values in a pixel.#define kfDirect565	0x80		// 5 red bits, 6 green bits and 5 blue bits per pixel#define kfDirect888	0x100		// 8 bits each for red, green and blue values in a pixel.#define kfDirect444	0x200		// 4 red, 4 green, 4 blue#define kfDirectInverted 0x400#define GX_FULLSCREEN	0x01		// for OpenDisplay() #define GX_NORMALKEYS   0x02#define GX_LANDSCAPEKEYS        0x03typedef enum{	SDL_ORIENTATION_UP,	SDL_ORIENTATION_DOWN,	SDL_ORIENTATION_LEFT,	SDL_ORIENTATION_RIGHT} SDL_ScreenOrientation;/* GAPI video mode */typedef enum {	GAPI_NONE = 0,	GAPI_DIRECT_565,	GAPI_DIRECT_555,	GAPI_MONO,	GAPI_PALETTE} GAPIVideoMode; /* Hidden "this" pointer for the video functions */#define _THIS	SDL_VideoDevice *thistypedef unsigned short PIXEL;/* Private display data    begin with DIB private structure to allow DIB events code sharing*/struct SDL_PrivateVideoData {    HBITMAP screen_bmp;    HPALETTE screen_pal;#define NUM_MODELISTS	4		/* 8, 16, 24, and 32 bits-per-pixel */    int SDL_nummodes[NUM_MODELISTS];    SDL_Rect **SDL_modelist[NUM_MODELISTS];	enum SDL_ScreenOrientation userOrientation;	int invert;	char hiresFix; // using hires mode without defining hires resource// --------------	int useGXOpenDisplay; /* use GXOpenDispplay */    int w, h;	enum SDL_ScreenOrientation gapiOrientation;    void *buffer; // may be 8, 16, 24, 32 bpp	PIXEL *videoMem;	BOOL needUpdate;	struct GXKeyList keyList;	struct GapiFunc gxFunc;	struct GXDisplayProperties gxProperties;	enum GAPIVideoMode videoMode;	int colorscale;	int dstLineStep;  // in bytes	int dstPixelStep; // in bytes	int startOffset; // in bytes	int useVga;	int suspended; // do not pu anything into video memory};#define gapiBuffer this->hidden->buffer#define gapi this->hidden#endif /* _SDL_gapivideo_h */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -