view src/video/maccommon/SDL_lowvideo.h @ 1934:70139af5ac27

Implemented Mac OS X video mode selection.
author Sam Lantinga <slouken@libsdl.org>
date Mon, 24 Jul 2006 07:21:16 +0000
parents c121d94672cb
children
line wrap: on
line source

/*
    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_lowvideo_h
#define _SDL_lowvideo_h

#if defined(__APPLE__) && defined(__MACH__)
#include <Carbon/Carbon.h>
#elif TARGET_API_MAC_CARBON && (UNIVERSAL_INTERFACES_VERSION > 0x0335)
#include <Carbon.h>
#else
#include <Quickdraw.h>
#include <Palettes.h>
#include <Menus.h>
#include <DrawSprocket.h>
#endif

#if SDL_VIDEO_OPENGL
typedef struct __AGLContextRec *AGLContext;
#endif

#include "SDL_video.h"
#include "../SDL_sysvideo.h"

/* Hidden "this" pointer for the video functions */
#define _THIS	SDL_VideoDevice *this

#if !TARGET_API_MAC_CARBON      /* not available in OS X (or more accurately, Carbon) */
/* Global QuickDraw data */
extern QDGlobals *theQD;
#endif

/* Private display data */
struct SDL_PrivateVideoData
{
    GDevice **SDL_Display;
    WindowRef SDL_Window;
    SDL_Rect **SDL_modelist;
    CTabHandle SDL_CTab;
    PaletteHandle SDL_CPal;

#if TARGET_API_MAC_CARBON
    /* For entering and leaving fullscreen mode */
    Ptr fullscreen_ctx;
#endif

    /* The current window document style */
    int current_style;

    /* Information about the last cursor position */
    Point last_where;

    /* Information about the last keys down */
    EventModifiers last_mods;
    KeyMap last_keys;

    /* A handle to the Apple Menu */
    MenuRef apple_menu;

    /* Information used by DrawSprocket driver */
    struct DSpInfo *dspinfo;

#if SDL_VIDEO_OPENGL
    AGLContext appleGLContext;

    void *libraryHandle;
#endif
};
/* Old variable names */
#define SDL_Display		(this->hidden->SDL_Display)
#define SDL_Window		(this->hidden->SDL_Window)
#define SDL_modelist		(this->hidden->SDL_modelist)
#define SDL_CTab		(this->hidden->SDL_CTab)
#define SDL_CPal		(this->hidden->SDL_CPal)
#define fullscreen_ctx		(this->hidden->fullscreen_ctx)
#define current_style		(this->hidden->current_style)
#define last_where		(this->hidden->last_where)
#define last_mods		(this->hidden->last_mods)
#define last_keys		(this->hidden->last_keys)
#define apple_menu		(this->hidden->apple_menu)
#define glContext		(this->hidden->appleGLContext)

#endif /* _SDL_lowvideo_h */
/* vi: set ts=4 sw=4 expandtab: */