📄 sdl_gemvideo.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_gemvideo_h#define _SDL_gemvideo_h#include "SDL_mutex.h"#include "../SDL_sysvideo.h"/* The implementation dependent data for the window manager cursor */struct WMcursor { MFORM *mform_p;};/* Hidden "this" pointer for the video functions */#define _THIS SDL_VideoDevice *this/* Functions prototypes */void GEM_wind_redraw(_THIS, int winhandle, short *inside);/* Private display data */#define B2S_C2P_1TO2 (1<<0) /* C2P convert buffer 1 to buffer 2 */#define B2S_C2P_1TOS (1<<1) /* C2P convert buffer 1 to screen */#define B2S_VROCPYFM_1TOS (1<<2) /* vro_cpyfm() buffer 1 to screen */#define B2S_VROCPYFM_2TOS (1<<3) /* vro_cpyfm() buffer 2 to screen */#define SDL_NUMMODES 1 /* Fullscreen */struct SDL_PrivateVideoData { Uint16 buf2scr_ops; /* Operations to get buffer to screen */ void *buffer1; /* Our shadow buffers */ void *buffer2; /* VDI infos */ short vdi_handle; /* VDI handle */ short full_w, full_h; /* Fullscreen size */ short bpp; /* Colour depth */ short pixelsize; /* Bytes per pixel */ short old_numcolors; /* Number of colors in saved palette */ Uint16 pitch; /* Line length */ Uint16 format; /* Screen format */ void *screen; /* Screen address */ Uint32 red, green, blue, alpha; /* Screen components */ Uint32 screensize; short blit_coords[8]; /* Coordinates for bitblt */ MFDB src_mfdb, dst_mfdb; /* VDI MFDB for bitblt */ Uint16 old_palette[256][3]; /* Saved current palette */ Uint16 cur_palette[256][3]; /* SDL application palette */ /* Function to set/restore palette */ void (*setpalette)(_THIS, Uint16 newpal[256][3]); /* GEM infos */ short desk_x, desk_y; /* Desktop properties */ short desk_w, desk_h; short win_handle; /* Our window handle */ int window_type; /* Window type */ const char *title_name; /* Window title */ const char *icon_name; /* Icon title */ short version; /* AES version */ short wfeatures; /* AES window features */ SDL_bool refresh_name; /* Change window title ? */ SDL_bool window_fulled; /* Window maximized ? */ SDL_bool mouse_relative; /* Report relative mouse movement */ SDL_bool locked; /* AES locked for fullscreen ? */ SDL_bool lock_redraw; /* Prevent redraw till buffers are setup */ short message[8]; /* To self-send an AES message */ void *menubar; /* Menu bar save buffer when going fullscreen */ SDL_bool use_dev_mouse; /* Use /dev/mouse ? */ WMcursor *cursor; /* To restore cursor when leaving/entering window */ SDL_bool fullscreen; /* Fullscreen or windowed mode ? */ SDL_Rect *SDL_modelist[SDL_NUMMODES+1]; /* Mode list */ SDL_Surface *icon; /* The icon */};/* Hidden structure -> variables names */#define VDI_handle (this->hidden->vdi_handle)#define VDI_w (this->hidden->full_w)#define VDI_h (this->hidden->full_h)#define VDI_bpp (this->hidden->bpp)#define VDI_pixelsize (this->hidden->pixelsize)#define VDI_oldnumcolors (this->hidden->old_numcolors)#define VDI_oldpalette (this->hidden->old_palette)#define VDI_curpalette (this->hidden->cur_palette)#define VDI_setpalette (this->hidden->setpalette)#define VDI_pitch (this->hidden->pitch)#define VDI_format (this->hidden->format)#define VDI_screen (this->hidden->screen)#define VDI_redmask (this->hidden->red)#define VDI_greenmask (this->hidden->green)#define VDI_bluemask (this->hidden->blue)#define VDI_alphamask (this->hidden->alpha)#define VDI_screensize (this->hidden->screensize)#define VDI_src_mfdb (this->hidden->src_mfdb)#define VDI_dst_mfdb (this->hidden->dst_mfdb)#define VDI_blit_coords (this->hidden->blit_coords)#define GEM_desk_x (this->hidden->desk_x)#define GEM_desk_y (this->hidden->desk_y)#define GEM_desk_w (this->hidden->desk_w)#define GEM_desk_h (this->hidden->desk_h)#define GEM_handle (this->hidden->win_handle)#define GEM_win_type (this->hidden->window_type)#define GEM_title_name (this->hidden->title_name)#define GEM_icon_name (this->hidden->icon_name)#define GEM_refresh_name (this->hidden->refresh_name)#define GEM_version (this->hidden->version)#define GEM_wfeatures (this->hidden->wfeatures)#define GEM_win_fulled (this->hidden->window_fulled)#define GEM_mouse_relative (this->hidden->mouse_relative)#define GEM_locked (this->hidden->locked)#define GEM_lock_redraw (this->hidden->lock_redraw)#define GEM_message (this->hidden->message)#define SDL_modelist (this->hidden->SDL_modelist)#define GEM_icon (this->hidden->icon)#define GEM_fullscreen (this->hidden->fullscreen)#define GEM_menubar (this->hidden->menubar)#define GEM_usedevmouse (this->hidden->use_dev_mouse)#define GEM_cursor (this->hidden->cursor)#define GEM_buffer1 (this->hidden->buffer1)#define GEM_buffer2 (this->hidden->buffer2)#define GEM_bufops (this->hidden->buf2scr_ops)#define VDI_FBMASK(amask, rmask, gmask, bmask) \ VDI_alphamask = (amask); \ VDI_redmask = (rmask); \ VDI_greenmask = (gmask); \ VDI_bluemask = (bmask);/* Possible buffer to screen operations: TC: 8 (chunky),15,16,24,32 bpp 8I: 8 bpp planes FB: screen framebuffer address available FS: fullscreen TC, FB, FS: - draw to screen 8I, FB, FS: - draw to buffer 1 - C2P from buffer 1 to screen TC, !FB, FS: - draw to buffer 1 - vro_cpyfm() from buffer 1 to screen 8I, !FB, FS: - draw to buffer 1 - C2P from buffer 1 to buffer 2 - vro_cpyfm() from buffer 2 to screen TC, FB, !FS: - draw to buffer 1 - vro_cpyfm() from buffer 1 to screen 8I, FB, !FS: - draw to buffer 1 - C2P from buffer 1 to buffer 2 - vro_cpyfm() from buffer 2 to screen TC, !FB, !FS: - draw to buffer 1 - vro_cpyfm() from buffer 1 to screen 8I, !FB, !FS: - draw to buffer 1 - C2P from buffer 1 to buffer 2 - vro_cpyfm() from buffer 2 to screen*/#endif /* _SDL_gemvideo_h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -