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

📄 sdl_video.h

📁 网络MPEG4IP流媒体开发源代码
💻 H
📖 第 1 页 / 共 3 页
字号:
/*    SDL - Simple DirectMedia Layer    Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002  Sam Lantinga    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU Library General Public    License as published by the Free Software Foundation; either    version 2 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    Library General Public License for more details.    You should have received a copy of the GNU Library General Public    License along with this library; if not, write to the Free    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA    Sam Lantinga    slouken@libsdl.org*/#ifdef SAVE_RCSIDstatic char rcsid = "@(#) $Id$";#endif/* Header file for access to the SDL raw framebuffer window */#ifndef _SDL_video_h#define _SDL_video_h#include <stdio.h>#include "SDL_types.h"#include "SDL_mutex.h"#include "SDL_rwops.h"#include "begin_code.h"/* Set up for C function definitions, even when using C++ */#ifdef __cplusplusextern "C" {#endif/* Transparency definitions: These define alpha as the opacity of a surface */#define SDL_ALPHA_OPAQUE 255#define SDL_ALPHA_TRANSPARENT 0/* Useful data types */typedef struct {	Sint16 x, y;	Uint16 w, h;} SDL_Rect;typedef struct {	Uint8 r;	Uint8 g;	Uint8 b;	Uint8 unused;} SDL_Color;typedef struct {	int       ncolors;	SDL_Color *colors;} SDL_Palette;/* Everything in the pixel format structure is read-only */typedef struct SDL_PixelFormat {	SDL_Palette *palette;	Uint8  BitsPerPixel;	Uint8  BytesPerPixel;	Uint8  Rloss;	Uint8  Gloss;	Uint8  Bloss;	Uint8  Aloss;	Uint8  Rshift;	Uint8  Gshift;	Uint8  Bshift;	Uint8  Ashift;	Uint32 Rmask;	Uint32 Gmask;	Uint32 Bmask;	Uint32 Amask;	/* RGB color key information */	Uint32 colorkey;	/* Alpha value information (per-surface alpha) */	Uint8  alpha;} SDL_PixelFormat;/* typedef for private surface blitting functions */struct SDL_Surface;typedef int (*SDL_blit)(struct SDL_Surface *src, SDL_Rect *srcrect,			struct SDL_Surface *dst, SDL_Rect *dstrect);/* This structure should be treated as read-only, except for 'pixels',   which, if not NULL, contains the raw pixel data for the surface.*/typedef struct SDL_Surface {	Uint32 flags;				/* Read-only */	SDL_PixelFormat *format;		/* Read-only */	int w, h;				/* Read-only */	Uint16 pitch;				/* Read-only */	void *pixels;				/* Read-write */	int offset;				/* Private */	/* Hardware-specific surface info */	struct private_hwdata *hwdata;	/* clipping information */	SDL_Rect clip_rect;			/* Read-only */	Uint32 unused1;				/* for binary compatibility */	/* Allow recursive locks */	Uint32 locked;				/* Private */	/* info for fast blit mapping to other surfaces */	struct SDL_BlitMap *map;		/* Private */	/* format version, bumped at every change to invalidate blit maps */	unsigned int format_version;		/* Private */	/* Reference count -- used when freeing surface */	int refcount;				/* Read-mostly */} SDL_Surface;/* These are the currently supported flags for the SDL_surface *//* Available for SDL_CreateRGBSurface() or SDL_SetVideoMode() */#define SDL_SWSURFACE	0x00000000	/* Surface is in system memory */#define SDL_HWSURFACE	0x00000001	/* Surface is in video memory */#define SDL_ASYNCBLIT	0x00000004	/* Use asynchronous blits if possible *//* Available for SDL_SetVideoMode() */#define SDL_ANYFORMAT	0x10000000	/* Allow any video depth/pixel-format */#define SDL_HWPALETTE	0x20000000	/* Surface has exclusive palette */#define SDL_DOUBLEBUF	0x40000000	/* Set up double-buffered video mode */#define SDL_FULLSCREEN	0x80000000	/* Surface is a full screen display */#define SDL_OPENGL      0x00000002      /* Create an OpenGL rendering context */#define SDL_OPENGLBLIT	0x0000000A	/* Create an OpenGL rendering context and use it for blitting */#define SDL_RESIZABLE	0x00000010	/* This video mode may be resized */#define SDL_NOFRAME	0x00000020	/* No window caption or edge frame *//* Used internally (read-only) */#define SDL_HWACCEL	0x00000100	/* Blit uses hardware acceleration */#define SDL_SRCCOLORKEY	0x00001000	/* Blit uses a source color key */#define SDL_RLEACCELOK	0x00002000	/* Private flag */#define SDL_RLEACCEL	0x00004000	/* Surface is RLE encoded */#define SDL_SRCALPHA	0x00010000	/* Blit uses source alpha blending */#define SDL_PREALLOC	0x01000000	/* Surface uses preallocated memory *//* Evaluates to true if the surface needs to be locked before access */#define SDL_MUSTLOCK(surface)	\  (surface->offset ||		\  ((surface->flags & (SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_RLEACCEL)) != 0))/* Useful for determining the video hardware capabilities */typedef struct {	Uint32 hw_available :1;	/* Flag: Can you create hardware surfaces? */	Uint32 wm_available :1;	/* Flag: Can you talk to a window manager? */	Uint32 UnusedBits1  :6;	Uint32 UnusedBits2  :1;	Uint32 blit_hw      :1;	/* Flag: Accelerated blits HW --> HW */	Uint32 blit_hw_CC   :1;	/* Flag: Accelerated blits with Colorkey */	Uint32 blit_hw_A    :1;	/* Flag: Accelerated blits with Alpha */	Uint32 blit_sw      :1;	/* Flag: Accelerated blits SW --> HW */	Uint32 blit_sw_CC   :1;	/* Flag: Accelerated blits with Colorkey */	Uint32 blit_sw_A    :1;	/* Flag: Accelerated blits with Alpha */	Uint32 blit_fill    :1;	/* Flag: Accelerated color fill */	Uint32 UnusedBits3  :16;	Uint32 video_mem;	/* The total amount of video memory (in K) */	SDL_PixelFormat *vfmt;	/* Value: The format of the video surface */} SDL_VideoInfo;/* The most common video overlay formats.   For an explanation of these pixel formats, see:	http://www.webartz.com/fourcc/indexyuv.htm   For information on the relationship between color spaces, see:   http://www.neuro.sfc.keio.ac.jp/~aly/polygon/info/color-space-faq.html */#define SDL_YV12_OVERLAY  0x32315659	/* Planar mode: Y + V + U  (3 planes) */#define SDL_IYUV_OVERLAY  0x56555949	/* Planar mode: Y + U + V  (3 planes) */#define SDL_YUY2_OVERLAY  0x32595559	/* Packed mode: Y0+U0+Y1+V0 (1 plane) */#define SDL_UYVY_OVERLAY  0x59565955	/* Packed mode: U0+Y0+V0+Y1 (1 plane) */#define SDL_YVYU_OVERLAY  0x55595659	/* Packed mode: Y0+V0+Y1+U0 (1 plane) *//* The YUV hardware video overlay */typedef struct SDL_Overlay {	Uint32 format;				/* Read-only */	int w, h;				/* Read-only */	int planes;				/* Read-only */	Uint16 *pitches;			/* Read-only */	Uint8 **pixels;				/* Read-write */	/* Hardware-specific surface info */	struct private_yuvhwfuncs *hwfuncs;	struct private_yuvhwdata *hwdata;	/* Special flags */	Uint32 hw_overlay :1;	/* Flag: This overlay hardware accelerated? */	Uint32 UnusedBits :31;} SDL_Overlay;/* Public enumeration for setting the OpenGL window attributes. */typedef enum {    SDL_GL_RED_SIZE,    SDL_GL_GREEN_SIZE,    SDL_GL_BLUE_SIZE,    SDL_GL_ALPHA_SIZE,    SDL_GL_BUFFER_SIZE,    SDL_GL_DOUBLEBUFFER,    SDL_GL_DEPTH_SIZE,    SDL_GL_STENCIL_SIZE,    SDL_GL_ACCUM_RED_SIZE,    SDL_GL_ACCUM_GREEN_SIZE,    SDL_GL_ACCUM_BLUE_SIZE,    SDL_GL_ACCUM_ALPHA_SIZE,	SDL_GL_STEREO} SDL_GLattr;/* flags for SDL_SetPalette() */#define SDL_LOGPAL 0x01#define SDL_PHYSPAL 0x02/* Function prototypes *//* These functions are used internally, and should not be used unless you * have a specific need to specify the video driver you want to use. * You should normally use SDL_Init() or SDL_InitSubSystem(). * * SDL_VideoInit() initializes the video subsystem -- sets up a connection * to the window manager, etc, and determines the current video mode and * pixel format, but does not initialize a window or graphics mode. * Note that event handling is activated by this routine. * * If you use both sound and video in your application, you need to call * SDL_Init() before opening the sound device, otherwise under Win32 DirectX, * you won't be able to set full-screen display modes. */extern DECLSPEC int SDLCALL SDL_VideoInit(const char *driver_name, Uint32 flags);extern DECLSPEC void SDLCALL SDL_VideoQuit(void);/* This function fills the given character buffer with the name of the * video driver, and returns a pointer to it if the video driver has * been initialized.  It returns NULL if no driver has been initialized. */extern DECLSPEC char * SDLCALL SDL_VideoDriverName(char *namebuf, int maxlen);/* * This function returns a pointer to the current display surface. * If SDL is doing format conversion on the display surface, this * function returns the publicly visible surface, not the real video * surface. */extern DECLSPEC SDL_Surface * SDLCALL SDL_GetVideoSurface(void);/* * This function returns a read-only pointer to information about the * video hardware.  If this is called before SDL_SetVideoMode(), the 'vfmt' * member of the returned structure will contain the pixel format of the * "best" video mode. */extern DECLSPEC const SDL_VideoInfo * SDLCALL SDL_GetVideoInfo(void);/*  * Check to see if a particular video mode is supported. * It returns 0 if the requested mode is not supported under any bit depth, * or returns the bits-per-pixel of the closest available mode with the * given width and height.  If this bits-per-pixel is different from the * one used when setting the video mode, SDL_SetVideoMode() will succeed, * but will emulate the requested bits-per-pixel with a shadow surface. * * The arguments to SDL_VideoModeOK() are the same ones you would pass to * SDL_SetVideoMode() */extern DECLSPEC int SDLCALL SDL_VideoModeOK(int width, int height, int bpp, Uint32 flags);/* * Return a pointer to an array of available screen dimensions for the * given format and video flags, sorted largest to smallest.  Returns  * NULL if there are no dimensions available for a particular format,  * or (SDL_Rect **)-1 if any dimension is okay for the given format. * * If 'format' is NULL, the mode list will be for the format given  * by SDL_GetVideoInfo()->vfmt */extern DECLSPEC SDL_Rect ** SDLCALL SDL_ListModes(SDL_PixelFormat *format, Uint32 flags);/* * Set up a video mode with the specified width, height and bits-per-pixel. * * If 'bpp' is 0, it is treated as the current display bits per pixel. * * If SDL_ANYFORMAT is set in 'flags', the SDL library will try to set the * requested bits-per-pixel, but will return whatever video pixel format is * available.  The default is to emulate the requested pixel format if it * is not natively available. *

⌨️ 快捷键说明

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