WX: enjoy SDL sound under Windows
-- Is it okay to also use SDL for a simple and clean input module? the current one is full of Dolphin specific stuff and it's a mess `_`
This commit is contained in:
parent
84bfa26bc7
commit
cbacd016c0
Binary file not shown.
|
@ -0,0 +1,101 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL.h
|
||||||
|
* Main include header for the SDL library
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_H
|
||||||
|
#define _SDL_H
|
||||||
|
|
||||||
|
#include "SDL_main.h"
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_audio.h"
|
||||||
|
#include "SDL_cdrom.h"
|
||||||
|
#include "SDL_cpuinfo.h"
|
||||||
|
#include "SDL_endian.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
#include "SDL_events.h"
|
||||||
|
#include "SDL_loadso.h"
|
||||||
|
#include "SDL_mutex.h"
|
||||||
|
#include "SDL_rwops.h"
|
||||||
|
#include "SDL_thread.h"
|
||||||
|
#include "SDL_timer.h"
|
||||||
|
#include "SDL_video.h"
|
||||||
|
#include "SDL_version.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** @file SDL.h
|
||||||
|
* @note As of version 0.5, SDL is loaded dynamically into the application
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @name SDL_INIT Flags
|
||||||
|
* These are the flags which may be passed to SDL_Init() -- you should
|
||||||
|
* specify the subsystems which you will be using in your application.
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_INIT_TIMER 0x00000001
|
||||||
|
#define SDL_INIT_AUDIO 0x00000010
|
||||||
|
#define SDL_INIT_VIDEO 0x00000020
|
||||||
|
#define SDL_INIT_CDROM 0x00000100
|
||||||
|
#define SDL_INIT_JOYSTICK 0x00000200
|
||||||
|
#define SDL_INIT_NOPARACHUTE 0x00100000 /**< Don't catch fatal signals */
|
||||||
|
#define SDL_INIT_EVENTTHREAD 0x01000000 /**< Not supported on all OS's */
|
||||||
|
#define SDL_INIT_EVERYTHING 0x0000FFFF
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** This function loads the SDL dynamically linked library and initializes
|
||||||
|
* the subsystems specified by 'flags' (and those satisfying dependencies)
|
||||||
|
* Unless the SDL_INIT_NOPARACHUTE flag is set, it will install cleanup
|
||||||
|
* signal handlers for some commonly ignored fatal signals (like SIGSEGV)
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_Init(Uint32 flags);
|
||||||
|
|
||||||
|
/** This function initializes specific SDL subsystems */
|
||||||
|
extern DECLSPEC int SDLCALL SDL_InitSubSystem(Uint32 flags);
|
||||||
|
|
||||||
|
/** This function cleans up specific SDL subsystems */
|
||||||
|
extern DECLSPEC void SDLCALL SDL_QuitSubSystem(Uint32 flags);
|
||||||
|
|
||||||
|
/** This function returns mask of the specified subsystems which have
|
||||||
|
* been initialized.
|
||||||
|
* If 'flags' is 0, it returns a mask of all initialized subsystems.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Uint32 SDLCALL SDL_WasInit(Uint32 flags);
|
||||||
|
|
||||||
|
/** This function cleans up all initialized subsystems and unloads the
|
||||||
|
* dynamically linked library. You should call it upon all exit conditions.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_Quit(void);
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_H */
|
|
@ -0,0 +1,63 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file SDL_active.h
|
||||||
|
* Include file for SDL application focus event handling
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_active_h
|
||||||
|
#define _SDL_active_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** @name The available application states */
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_APPMOUSEFOCUS 0x01 /**< The app has mouse coverage */
|
||||||
|
#define SDL_APPINPUTFOCUS 0x02 /**< The app has input focus */
|
||||||
|
#define SDL_APPACTIVE 0x04 /**< The application is active */
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* Function prototypes */
|
||||||
|
/**
|
||||||
|
* This function returns the current state of the application, which is a
|
||||||
|
* bitwise combination of SDL_APPMOUSEFOCUS, SDL_APPINPUTFOCUS, and
|
||||||
|
* SDL_APPACTIVE. If SDL_APPACTIVE is set, then the user is able to
|
||||||
|
* see your application, otherwise it has been iconified or disabled.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Uint8 SDLCALL SDL_GetAppState(void);
|
||||||
|
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_active_h */
|
|
@ -0,0 +1,284 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file SDL_audio.h
|
||||||
|
* Access to the raw audio mixing buffer for the SDL library
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_audio_h
|
||||||
|
#define _SDL_audio_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
#include "SDL_endian.h"
|
||||||
|
#include "SDL_mutex.h"
|
||||||
|
#include "SDL_thread.h"
|
||||||
|
#include "SDL_rwops.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* When filling in the desired audio spec structure,
|
||||||
|
* - 'desired->freq' should be the desired audio frequency in samples-per-second.
|
||||||
|
* - 'desired->format' should be the desired audio format.
|
||||||
|
* - 'desired->samples' is the desired size of the audio buffer, in samples.
|
||||||
|
* This number should be a power of two, and may be adjusted by the audio
|
||||||
|
* driver to a value more suitable for the hardware. Good values seem to
|
||||||
|
* range between 512 and 8096 inclusive, depending on the application and
|
||||||
|
* CPU speed. Smaller values yield faster response time, but can lead
|
||||||
|
* to underflow if the application is doing heavy processing and cannot
|
||||||
|
* fill the audio buffer in time. A stereo sample consists of both right
|
||||||
|
* and left channels in LR ordering.
|
||||||
|
* Note that the number of samples is directly related to time by the
|
||||||
|
* following formula: ms = (samples*1000)/freq
|
||||||
|
* - 'desired->size' is the size in bytes of the audio buffer, and is
|
||||||
|
* calculated by SDL_OpenAudio().
|
||||||
|
* - 'desired->silence' is the value used to set the buffer to silence,
|
||||||
|
* and is calculated by SDL_OpenAudio().
|
||||||
|
* - 'desired->callback' should be set to a function that will be called
|
||||||
|
* when the audio device is ready for more data. It is passed a pointer
|
||||||
|
* to the audio buffer, and the length in bytes of the audio buffer.
|
||||||
|
* This function usually runs in a separate thread, and so you should
|
||||||
|
* protect data structures that it accesses by calling SDL_LockAudio()
|
||||||
|
* and SDL_UnlockAudio() in your code.
|
||||||
|
* - 'desired->userdata' is passed as the first parameter to your callback
|
||||||
|
* function.
|
||||||
|
*
|
||||||
|
* @note The calculated values in this structure are calculated by SDL_OpenAudio()
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
typedef struct SDL_AudioSpec {
|
||||||
|
int freq; /**< DSP frequency -- samples per second */
|
||||||
|
Uint16 format; /**< Audio data format */
|
||||||
|
Uint8 channels; /**< Number of channels: 1 mono, 2 stereo */
|
||||||
|
Uint8 silence; /**< Audio buffer silence value (calculated) */
|
||||||
|
Uint16 samples; /**< Audio buffer size in samples (power of 2) */
|
||||||
|
Uint16 padding; /**< Necessary for some compile environments */
|
||||||
|
Uint32 size; /**< Audio buffer size in bytes (calculated) */
|
||||||
|
/**
|
||||||
|
* This function is called when the audio device needs more data.
|
||||||
|
*
|
||||||
|
* @param[out] stream A pointer to the audio data buffer
|
||||||
|
* @param[in] len The length of the audio buffer in bytes.
|
||||||
|
*
|
||||||
|
* Once the callback returns, the buffer will no longer be valid.
|
||||||
|
* Stereo samples are stored in a LRLRLR ordering.
|
||||||
|
*/
|
||||||
|
void (SDLCALL *callback)(void *userdata, Uint8 *stream, int len);
|
||||||
|
void *userdata;
|
||||||
|
} SDL_AudioSpec;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Audio format flags
|
||||||
|
* defaults to LSB byte order
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#define AUDIO_U8 0x0008 /**< Unsigned 8-bit samples */
|
||||||
|
#define AUDIO_S8 0x8008 /**< Signed 8-bit samples */
|
||||||
|
#define AUDIO_U16LSB 0x0010 /**< Unsigned 16-bit samples */
|
||||||
|
#define AUDIO_S16LSB 0x8010 /**< Signed 16-bit samples */
|
||||||
|
#define AUDIO_U16MSB 0x1010 /**< As above, but big-endian byte order */
|
||||||
|
#define AUDIO_S16MSB 0x9010 /**< As above, but big-endian byte order */
|
||||||
|
#define AUDIO_U16 AUDIO_U16LSB
|
||||||
|
#define AUDIO_S16 AUDIO_S16LSB
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Native audio byte ordering
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#if SDL_BYTEORDER == SDL_LIL_ENDIAN
|
||||||
|
#define AUDIO_U16SYS AUDIO_U16LSB
|
||||||
|
#define AUDIO_S16SYS AUDIO_S16LSB
|
||||||
|
#else
|
||||||
|
#define AUDIO_U16SYS AUDIO_U16MSB
|
||||||
|
#define AUDIO_S16SYS AUDIO_S16MSB
|
||||||
|
#endif
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
|
||||||
|
/** A structure to hold a set of audio conversion filters and buffers */
|
||||||
|
typedef struct SDL_AudioCVT {
|
||||||
|
int needed; /**< Set to 1 if conversion possible */
|
||||||
|
Uint16 src_format; /**< Source audio format */
|
||||||
|
Uint16 dst_format; /**< Target audio format */
|
||||||
|
double rate_incr; /**< Rate conversion increment */
|
||||||
|
Uint8 *buf; /**< Buffer to hold entire audio data */
|
||||||
|
int len; /**< Length of original audio buffer */
|
||||||
|
int len_cvt; /**< Length of converted audio buffer */
|
||||||
|
int len_mult; /**< buffer must be len*len_mult big */
|
||||||
|
double len_ratio; /**< Given len, final size is len*len_ratio */
|
||||||
|
void (SDLCALL *filters[10])(struct SDL_AudioCVT *cvt, Uint16 format);
|
||||||
|
int filter_index; /**< Current audio conversion function */
|
||||||
|
} SDL_AudioCVT;
|
||||||
|
|
||||||
|
|
||||||
|
/* Function prototypes */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Audio Init and Quit
|
||||||
|
* These functions are used internally, and should not be used unless you
|
||||||
|
* have a specific need to specify the audio driver you want to use.
|
||||||
|
* You should normally use SDL_Init() or SDL_InitSubSystem().
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_AudioInit(const char *driver_name);
|
||||||
|
extern DECLSPEC void SDLCALL SDL_AudioQuit(void);
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function fills the given character buffer with the name of the
|
||||||
|
* current audio driver, and returns a pointer to it if the audio driver has
|
||||||
|
* been initialized. It returns NULL if no driver has been initialized.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_AudioDriverName(char *namebuf, int maxlen);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function opens the audio device with the desired parameters, and
|
||||||
|
* returns 0 if successful, placing the actual hardware parameters in the
|
||||||
|
* structure pointed to by 'obtained'. If 'obtained' is NULL, the audio
|
||||||
|
* data passed to the callback function will be guaranteed to be in the
|
||||||
|
* requested format, and will be automatically converted to the hardware
|
||||||
|
* audio format if necessary. This function returns -1 if it failed
|
||||||
|
* to open the audio device, or couldn't set up the audio thread.
|
||||||
|
*
|
||||||
|
* The audio device starts out playing silence when it's opened, and should
|
||||||
|
* be enabled for playing by calling SDL_PauseAudio(0) when you are ready
|
||||||
|
* for your audio callback function to be called. Since the audio driver
|
||||||
|
* may modify the requested size of the audio buffer, you should allocate
|
||||||
|
* any local mixing buffers after you open the audio device.
|
||||||
|
*
|
||||||
|
* @sa SDL_AudioSpec
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_OpenAudio(SDL_AudioSpec *desired, SDL_AudioSpec *obtained);
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
SDL_AUDIO_STOPPED = 0,
|
||||||
|
SDL_AUDIO_PLAYING,
|
||||||
|
SDL_AUDIO_PAUSED
|
||||||
|
} SDL_audiostatus;
|
||||||
|
|
||||||
|
/** Get the current audio state */
|
||||||
|
extern DECLSPEC SDL_audiostatus SDLCALL SDL_GetAudioStatus(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function pauses and unpauses the audio callback processing.
|
||||||
|
* It should be called with a parameter of 0 after opening the audio
|
||||||
|
* device to start playing sound. This is so you can safely initialize
|
||||||
|
* data for your callback function after opening the audio device.
|
||||||
|
* Silence will be written to the audio device during the pause.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_PauseAudio(int pause_on);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function loads a WAVE from the data source, automatically freeing
|
||||||
|
* that source if 'freesrc' is non-zero. For example, to load a WAVE file,
|
||||||
|
* you could do:
|
||||||
|
* @code SDL_LoadWAV_RW(SDL_RWFromFile("sample.wav", "rb"), 1, ...); @endcode
|
||||||
|
*
|
||||||
|
* If this function succeeds, it returns the given SDL_AudioSpec,
|
||||||
|
* filled with the audio data format of the wave data, and sets
|
||||||
|
* 'audio_buf' to a malloc()'d buffer containing the audio data,
|
||||||
|
* and sets 'audio_len' to the length of that audio buffer, in bytes.
|
||||||
|
* You need to free the audio buffer with SDL_FreeWAV() when you are
|
||||||
|
* done with it.
|
||||||
|
*
|
||||||
|
* This function returns NULL and sets the SDL error message if the
|
||||||
|
* wave file cannot be opened, uses an unknown data format, or is
|
||||||
|
* corrupt. Currently raw and MS-ADPCM WAVE files are supported.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_AudioSpec * SDLCALL SDL_LoadWAV_RW(SDL_RWops *src, int freesrc, SDL_AudioSpec *spec, Uint8 **audio_buf, Uint32 *audio_len);
|
||||||
|
|
||||||
|
/** Compatibility convenience function -- loads a WAV from a file */
|
||||||
|
#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \
|
||||||
|
SDL_LoadWAV_RW(SDL_RWFromFile(file, "rb"),1, spec,audio_buf,audio_len)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function frees data previously allocated with SDL_LoadWAV_RW()
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 *audio_buf);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function takes a source format and rate and a destination format
|
||||||
|
* and rate, and initializes the 'cvt' structure with information needed
|
||||||
|
* by SDL_ConvertAudio() to convert a buffer of audio data from one format
|
||||||
|
* to the other.
|
||||||
|
*
|
||||||
|
* @return This function returns 0, or -1 if there was an error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT *cvt,
|
||||||
|
Uint16 src_format, Uint8 src_channels, int src_rate,
|
||||||
|
Uint16 dst_format, Uint8 dst_channels, int dst_rate);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Once you have initialized the 'cvt' structure using SDL_BuildAudioCVT(),
|
||||||
|
* created an audio buffer cvt->buf, and filled it with cvt->len bytes of
|
||||||
|
* audio data in the source format, this function will convert it in-place
|
||||||
|
* to the desired format.
|
||||||
|
* The data conversion may expand the size of the audio data, so the buffer
|
||||||
|
* cvt->buf should be allocated after the cvt structure is initialized by
|
||||||
|
* SDL_BuildAudioCVT(), and should be cvt->len*cvt->len_mult bytes long.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT *cvt);
|
||||||
|
|
||||||
|
|
||||||
|
#define SDL_MIX_MAXVOLUME 128
|
||||||
|
/**
|
||||||
|
* This takes two audio buffers of the playing audio format and mixes
|
||||||
|
* them, performing addition, volume adjustment, and overflow clipping.
|
||||||
|
* The volume ranges from 0 - 128, and should be set to SDL_MIX_MAXVOLUME
|
||||||
|
* for full audio volume. Note this does not change hardware volume.
|
||||||
|
* This is provided for convenience -- you can mix your own audio data.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_MixAudio(Uint8 *dst, const Uint8 *src, Uint32 len, int volume);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Audio Locks
|
||||||
|
* The lock manipulated by these functions protects the callback function.
|
||||||
|
* During a LockAudio/UnlockAudio pair, you can be guaranteed that the
|
||||||
|
* callback function is not running. Do not call these from the callback
|
||||||
|
* function or you will cause deadlock.
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_LockAudio(void);
|
||||||
|
extern DECLSPEC void SDLCALL SDL_UnlockAudio(void);
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function shuts down audio processing and closes the audio device.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_CloseAudio(void);
|
||||||
|
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_audio_h */
|
|
@ -0,0 +1,29 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file SDL_byteorder.h
|
||||||
|
* @deprecated Use SDL_endian.h instead
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* DEPRECATED */
|
||||||
|
#include "SDL_endian.h"
|
|
@ -0,0 +1,202 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file SDL_cdrom.h
|
||||||
|
* This is the CD-audio control API for Simple DirectMedia Layer
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_cdrom_h
|
||||||
|
#define _SDL_cdrom_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file SDL_cdrom.h
|
||||||
|
* In order to use these functions, SDL_Init() must have been called
|
||||||
|
* with the SDL_INIT_CDROM flag. This causes SDL to scan the system
|
||||||
|
* for CD-ROM drives, and load appropriate drivers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** The maximum number of CD-ROM tracks on a disk */
|
||||||
|
#define SDL_MAX_TRACKS 99
|
||||||
|
|
||||||
|
/** @name Track Types
|
||||||
|
* The types of CD-ROM track possible
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_AUDIO_TRACK 0x00
|
||||||
|
#define SDL_DATA_TRACK 0x04
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** The possible states which a CD-ROM drive can be in. */
|
||||||
|
typedef enum {
|
||||||
|
CD_TRAYEMPTY,
|
||||||
|
CD_STOPPED,
|
||||||
|
CD_PLAYING,
|
||||||
|
CD_PAUSED,
|
||||||
|
CD_ERROR = -1
|
||||||
|
} CDstatus;
|
||||||
|
|
||||||
|
/** Given a status, returns true if there's a disk in the drive */
|
||||||
|
#define CD_INDRIVE(status) ((int)(status) > 0)
|
||||||
|
|
||||||
|
typedef struct SDL_CDtrack {
|
||||||
|
Uint8 id; /**< Track number */
|
||||||
|
Uint8 type; /**< Data or audio track */
|
||||||
|
Uint16 unused;
|
||||||
|
Uint32 length; /**< Length, in frames, of this track */
|
||||||
|
Uint32 offset; /**< Offset, in frames, from start of disk */
|
||||||
|
} SDL_CDtrack;
|
||||||
|
|
||||||
|
/** This structure is only current as of the last call to SDL_CDStatus() */
|
||||||
|
typedef struct SDL_CD {
|
||||||
|
int id; /**< Private drive identifier */
|
||||||
|
CDstatus status; /**< Current drive status */
|
||||||
|
|
||||||
|
/** The rest of this structure is only valid if there's a CD in drive */
|
||||||
|
/*@{*/
|
||||||
|
int numtracks; /**< Number of tracks on disk */
|
||||||
|
int cur_track; /**< Current track position */
|
||||||
|
int cur_frame; /**< Current frame offset within current track */
|
||||||
|
SDL_CDtrack track[SDL_MAX_TRACKS+1];
|
||||||
|
/*@}*/
|
||||||
|
} SDL_CD;
|
||||||
|
|
||||||
|
/** @name Frames / MSF Conversion Functions
|
||||||
|
* Conversion functions from frames to Minute/Second/Frames and vice versa
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#define CD_FPS 75
|
||||||
|
#define FRAMES_TO_MSF(f, M,S,F) { \
|
||||||
|
int value = f; \
|
||||||
|
*(F) = value%CD_FPS; \
|
||||||
|
value /= CD_FPS; \
|
||||||
|
*(S) = value%60; \
|
||||||
|
value /= 60; \
|
||||||
|
*(M) = value; \
|
||||||
|
}
|
||||||
|
#define MSF_TO_FRAMES(M, S, F) ((M)*60*CD_FPS+(S)*CD_FPS+(F))
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* CD-audio API functions: */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the number of CD-ROM drives on the system, or -1 if
|
||||||
|
* SDL_Init() has not been called with the SDL_INIT_CDROM flag.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_CDNumDrives(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a human-readable, system-dependent identifier for the CD-ROM.
|
||||||
|
* Example:
|
||||||
|
* - "/dev/cdrom"
|
||||||
|
* - "E:"
|
||||||
|
* - "/dev/disk/ide/1/master"
|
||||||
|
*/
|
||||||
|
extern DECLSPEC const char * SDLCALL SDL_CDName(int drive);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Opens a CD-ROM drive for access. It returns a drive handle on success,
|
||||||
|
* or NULL if the drive was invalid or busy. This newly opened CD-ROM
|
||||||
|
* becomes the default CD used when other CD functions are passed a NULL
|
||||||
|
* CD-ROM handle.
|
||||||
|
* Drives are numbered starting with 0. Drive 0 is the system default CD-ROM.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_CD * SDLCALL SDL_CDOpen(int drive);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function returns the current status of the given drive.
|
||||||
|
* If the drive has a CD in it, the table of contents of the CD and current
|
||||||
|
* play position of the CD will be stored in the SDL_CD structure.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC CDstatus SDLCALL SDL_CDStatus(SDL_CD *cdrom);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Play the given CD starting at 'start_track' and 'start_frame' for 'ntracks'
|
||||||
|
* tracks and 'nframes' frames. If both 'ntrack' and 'nframe' are 0, play
|
||||||
|
* until the end of the CD. This function will skip data tracks.
|
||||||
|
* This function should only be called after calling SDL_CDStatus() to
|
||||||
|
* get track information about the CD.
|
||||||
|
* For example:
|
||||||
|
* @code
|
||||||
|
* // Play entire CD:
|
||||||
|
* if ( CD_INDRIVE(SDL_CDStatus(cdrom)) )
|
||||||
|
* SDL_CDPlayTracks(cdrom, 0, 0, 0, 0);
|
||||||
|
* // Play last track:
|
||||||
|
* if ( CD_INDRIVE(SDL_CDStatus(cdrom)) ) {
|
||||||
|
* SDL_CDPlayTracks(cdrom, cdrom->numtracks-1, 0, 0, 0);
|
||||||
|
* }
|
||||||
|
* // Play first and second track and 10 seconds of third track:
|
||||||
|
* if ( CD_INDRIVE(SDL_CDStatus(cdrom)) )
|
||||||
|
* SDL_CDPlayTracks(cdrom, 0, 0, 2, 10);
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* @return This function returns 0, or -1 if there was an error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_CDPlayTracks(SDL_CD *cdrom,
|
||||||
|
int start_track, int start_frame, int ntracks, int nframes);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Play the given CD starting at 'start' frame for 'length' frames.
|
||||||
|
* @return It returns 0, or -1 if there was an error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_CDPlay(SDL_CD *cdrom, int start, int length);
|
||||||
|
|
||||||
|
/** Pause play
|
||||||
|
* @return returns 0, or -1 on error
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_CDPause(SDL_CD *cdrom);
|
||||||
|
|
||||||
|
/** Resume play
|
||||||
|
* @return returns 0, or -1 on error
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_CDResume(SDL_CD *cdrom);
|
||||||
|
|
||||||
|
/** Stop play
|
||||||
|
* @return returns 0, or -1 on error
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_CDStop(SDL_CD *cdrom);
|
||||||
|
|
||||||
|
/** Eject CD-ROM
|
||||||
|
* @return returns 0, or -1 on error
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_CDEject(SDL_CD *cdrom);
|
||||||
|
|
||||||
|
/** Closes the handle for the CD-ROM drive */
|
||||||
|
extern DECLSPEC void SDLCALL SDL_CDClose(SDL_CD *cdrom);
|
||||||
|
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_video_h */
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_config_h
|
||||||
|
#define _SDL_config_h
|
||||||
|
|
||||||
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
|
/* Add any platform that doesn't build using the configure system */
|
||||||
|
#if defined(__DREAMCAST__)
|
||||||
|
#include "SDL_config_dreamcast.h"
|
||||||
|
#elif defined(__MACOS__)
|
||||||
|
#include "SDL_config_macos.h"
|
||||||
|
#elif defined(__MACOSX__)
|
||||||
|
#include "SDL_config_macosx.h"
|
||||||
|
#elif defined(__SYMBIAN32__)
|
||||||
|
#include "SDL_config_symbian.h" /* must be before win32! */
|
||||||
|
#elif defined(__WIN32__)
|
||||||
|
#include "SDL_config_win32.h"
|
||||||
|
#elif defined(__OS2__)
|
||||||
|
#include "SDL_config_os2.h"
|
||||||
|
#else
|
||||||
|
#include "SDL_config_minimal.h"
|
||||||
|
#endif /* platform config */
|
||||||
|
|
||||||
|
#endif /* _SDL_config_h */
|
|
@ -0,0 +1,45 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_config_h
|
||||||
|
#define _SDL_config_h
|
||||||
|
|
||||||
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
|
/* Add any platform that doesn't build using the configure system */
|
||||||
|
#if defined(__DREAMCAST__)
|
||||||
|
#include "SDL_config_dreamcast.h"
|
||||||
|
#elif defined(__MACOS__)
|
||||||
|
#include "SDL_config_macos.h"
|
||||||
|
#elif defined(__MACOSX__)
|
||||||
|
#include "SDL_config_macosx.h"
|
||||||
|
#elif defined(__SYMBIAN32__)
|
||||||
|
#include "SDL_config_symbian.h" /* must be before win32! */
|
||||||
|
#elif defined(__WIN32__)
|
||||||
|
#include "SDL_config_win32.h"
|
||||||
|
#elif defined(__OS2__)
|
||||||
|
#include "SDL_config_os2.h"
|
||||||
|
#else
|
||||||
|
#include "SDL_config_minimal.h"
|
||||||
|
#endif /* platform config */
|
||||||
|
|
||||||
|
#endif /* _SDL_config_h */
|
|
@ -0,0 +1,310 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_config_h
|
||||||
|
#define _SDL_config_h
|
||||||
|
|
||||||
|
/* This is a set of defines to configure the SDL features */
|
||||||
|
|
||||||
|
/* General platform specific identifiers */
|
||||||
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
|
/* Make sure that this isn't included by Visual C++ */
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#error You should copy include/SDL_config.h.default to include/SDL_config.h
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* C language features */
|
||||||
|
#undef const
|
||||||
|
#undef inline
|
||||||
|
#undef volatile
|
||||||
|
|
||||||
|
/* C datatypes */
|
||||||
|
#undef size_t
|
||||||
|
#undef int8_t
|
||||||
|
#undef uint8_t
|
||||||
|
#undef int16_t
|
||||||
|
#undef uint16_t
|
||||||
|
#undef int32_t
|
||||||
|
#undef uint32_t
|
||||||
|
#undef int64_t
|
||||||
|
#undef uint64_t
|
||||||
|
#undef uintptr_t
|
||||||
|
#undef SDL_HAS_64BIT_TYPE
|
||||||
|
|
||||||
|
/* Endianness */
|
||||||
|
#undef SDL_BYTEORDER
|
||||||
|
|
||||||
|
/* Comment this if you want to build without any C library requirements */
|
||||||
|
#undef HAVE_LIBC
|
||||||
|
#if HAVE_LIBC
|
||||||
|
|
||||||
|
/* Useful headers */
|
||||||
|
#undef HAVE_ALLOCA_H
|
||||||
|
#undef HAVE_SYS_TYPES_H
|
||||||
|
#undef HAVE_STDIO_H
|
||||||
|
#undef STDC_HEADERS
|
||||||
|
#undef HAVE_STDLIB_H
|
||||||
|
#undef HAVE_STDARG_H
|
||||||
|
#undef HAVE_MALLOC_H
|
||||||
|
#undef HAVE_MEMORY_H
|
||||||
|
#undef HAVE_STRING_H
|
||||||
|
#undef HAVE_STRINGS_H
|
||||||
|
#undef HAVE_INTTYPES_H
|
||||||
|
#undef HAVE_STDINT_H
|
||||||
|
#undef HAVE_CTYPE_H
|
||||||
|
#undef HAVE_MATH_H
|
||||||
|
#undef HAVE_ICONV_H
|
||||||
|
#undef HAVE_SIGNAL_H
|
||||||
|
#undef HAVE_ALTIVEC_H
|
||||||
|
|
||||||
|
/* C library functions */
|
||||||
|
#undef HAVE_MALLOC
|
||||||
|
#undef HAVE_CALLOC
|
||||||
|
#undef HAVE_REALLOC
|
||||||
|
#undef HAVE_FREE
|
||||||
|
#undef HAVE_ALLOCA
|
||||||
|
#ifndef _WIN32 /* Don't use C runtime versions of these on Windows */
|
||||||
|
#undef HAVE_GETENV
|
||||||
|
#undef HAVE_PUTENV
|
||||||
|
#undef HAVE_UNSETENV
|
||||||
|
#endif
|
||||||
|
#undef HAVE_QSORT
|
||||||
|
#undef HAVE_ABS
|
||||||
|
#undef HAVE_BCOPY
|
||||||
|
#undef HAVE_MEMSET
|
||||||
|
#undef HAVE_MEMCPY
|
||||||
|
#undef HAVE_MEMMOVE
|
||||||
|
#undef HAVE_MEMCMP
|
||||||
|
#undef HAVE_STRLEN
|
||||||
|
#undef HAVE_STRLCPY
|
||||||
|
#undef HAVE_STRLCAT
|
||||||
|
#undef HAVE_STRDUP
|
||||||
|
#undef HAVE__STRREV
|
||||||
|
#undef HAVE__STRUPR
|
||||||
|
#undef HAVE__STRLWR
|
||||||
|
#undef HAVE_INDEX
|
||||||
|
#undef HAVE_RINDEX
|
||||||
|
#undef HAVE_STRCHR
|
||||||
|
#undef HAVE_STRRCHR
|
||||||
|
#undef HAVE_STRSTR
|
||||||
|
#undef HAVE_ITOA
|
||||||
|
#undef HAVE__LTOA
|
||||||
|
#undef HAVE__UITOA
|
||||||
|
#undef HAVE__ULTOA
|
||||||
|
#undef HAVE_STRTOL
|
||||||
|
#undef HAVE_STRTOUL
|
||||||
|
#undef HAVE__I64TOA
|
||||||
|
#undef HAVE__UI64TOA
|
||||||
|
#undef HAVE_STRTOLL
|
||||||
|
#undef HAVE_STRTOULL
|
||||||
|
#undef HAVE_STRTOD
|
||||||
|
#undef HAVE_ATOI
|
||||||
|
#undef HAVE_ATOF
|
||||||
|
#undef HAVE_STRCMP
|
||||||
|
#undef HAVE_STRNCMP
|
||||||
|
#undef HAVE__STRICMP
|
||||||
|
#undef HAVE_STRCASECMP
|
||||||
|
#undef HAVE__STRNICMP
|
||||||
|
#undef HAVE_STRNCASECMP
|
||||||
|
#undef HAVE_SSCANF
|
||||||
|
#undef HAVE_SNPRINTF
|
||||||
|
#undef HAVE_VSNPRINTF
|
||||||
|
#undef HAVE_ICONV
|
||||||
|
#undef HAVE_SIGACTION
|
||||||
|
#undef HAVE_SETJMP
|
||||||
|
#undef HAVE_NANOSLEEP
|
||||||
|
#undef HAVE_CLOCK_GETTIME
|
||||||
|
#undef HAVE_GETPAGESIZE
|
||||||
|
#undef HAVE_MPROTECT
|
||||||
|
|
||||||
|
#else
|
||||||
|
/* We may need some replacement for stdarg.h here */
|
||||||
|
#include <stdarg.h>
|
||||||
|
#endif /* HAVE_LIBC */
|
||||||
|
|
||||||
|
/* Allow disabling of core subsystems */
|
||||||
|
#undef SDL_AUDIO_DISABLED
|
||||||
|
#undef SDL_CDROM_DISABLED
|
||||||
|
#undef SDL_CPUINFO_DISABLED
|
||||||
|
#undef SDL_EVENTS_DISABLED
|
||||||
|
#undef SDL_FILE_DISABLED
|
||||||
|
#undef SDL_JOYSTICK_DISABLED
|
||||||
|
#undef SDL_LOADSO_DISABLED
|
||||||
|
#undef SDL_THREADS_DISABLED
|
||||||
|
#undef SDL_TIMERS_DISABLED
|
||||||
|
#undef SDL_VIDEO_DISABLED
|
||||||
|
|
||||||
|
/* Enable various audio drivers */
|
||||||
|
#undef SDL_AUDIO_DRIVER_ALSA
|
||||||
|
#undef SDL_AUDIO_DRIVER_ALSA_DYNAMIC
|
||||||
|
#undef SDL_AUDIO_DRIVER_ARTS
|
||||||
|
#undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC
|
||||||
|
#undef SDL_AUDIO_DRIVER_BAUDIO
|
||||||
|
#undef SDL_AUDIO_DRIVER_BSD
|
||||||
|
#undef SDL_AUDIO_DRIVER_COREAUDIO
|
||||||
|
#undef SDL_AUDIO_DRIVER_DART
|
||||||
|
#undef SDL_AUDIO_DRIVER_DC
|
||||||
|
#undef SDL_AUDIO_DRIVER_DISK
|
||||||
|
#undef SDL_AUDIO_DRIVER_DUMMY
|
||||||
|
#undef SDL_AUDIO_DRIVER_DMEDIA
|
||||||
|
#undef SDL_AUDIO_DRIVER_DSOUND
|
||||||
|
#undef SDL_AUDIO_DRIVER_PULSE
|
||||||
|
#undef SDL_AUDIO_DRIVER_PULSE_DYNAMIC
|
||||||
|
#undef SDL_AUDIO_DRIVER_ESD
|
||||||
|
#undef SDL_AUDIO_DRIVER_ESD_DYNAMIC
|
||||||
|
#undef SDL_AUDIO_DRIVER_MINT
|
||||||
|
#undef SDL_AUDIO_DRIVER_MMEAUDIO
|
||||||
|
#undef SDL_AUDIO_DRIVER_NAS
|
||||||
|
#undef SDL_AUDIO_DRIVER_NAS_DYNAMIC
|
||||||
|
#undef SDL_AUDIO_DRIVER_OSS
|
||||||
|
#undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H
|
||||||
|
#undef SDL_AUDIO_DRIVER_PAUD
|
||||||
|
#undef SDL_AUDIO_DRIVER_QNXNTO
|
||||||
|
#undef SDL_AUDIO_DRIVER_SNDMGR
|
||||||
|
#undef SDL_AUDIO_DRIVER_SUNAUDIO
|
||||||
|
#undef SDL_AUDIO_DRIVER_WAVEOUT
|
||||||
|
|
||||||
|
/* Enable various cdrom drivers */
|
||||||
|
#undef SDL_CDROM_AIX
|
||||||
|
#undef SDL_CDROM_BEOS
|
||||||
|
#undef SDL_CDROM_BSDI
|
||||||
|
#undef SDL_CDROM_DC
|
||||||
|
#undef SDL_CDROM_DUMMY
|
||||||
|
#undef SDL_CDROM_FREEBSD
|
||||||
|
#undef SDL_CDROM_LINUX
|
||||||
|
#undef SDL_CDROM_MACOS
|
||||||
|
#undef SDL_CDROM_MACOSX
|
||||||
|
#undef SDL_CDROM_MINT
|
||||||
|
#undef SDL_CDROM_OPENBSD
|
||||||
|
#undef SDL_CDROM_OS2
|
||||||
|
#undef SDL_CDROM_OSF
|
||||||
|
#undef SDL_CDROM_QNX
|
||||||
|
#undef SDL_CDROM_WIN32
|
||||||
|
|
||||||
|
/* Enable various input drivers */
|
||||||
|
#undef SDL_INPUT_LINUXEV
|
||||||
|
#undef SDL_INPUT_TSLIB
|
||||||
|
#undef SDL_JOYSTICK_BEOS
|
||||||
|
#undef SDL_JOYSTICK_DC
|
||||||
|
#undef SDL_JOYSTICK_DUMMY
|
||||||
|
#undef SDL_JOYSTICK_IOKIT
|
||||||
|
#undef SDL_JOYSTICK_LINUX
|
||||||
|
#undef SDL_JOYSTICK_MACOS
|
||||||
|
#undef SDL_JOYSTICK_MINT
|
||||||
|
#undef SDL_JOYSTICK_OS2
|
||||||
|
#undef SDL_JOYSTICK_RISCOS
|
||||||
|
#undef SDL_JOYSTICK_WINMM
|
||||||
|
#undef SDL_JOYSTICK_USBHID
|
||||||
|
#undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H
|
||||||
|
|
||||||
|
/* Enable various shared object loading systems */
|
||||||
|
#undef SDL_LOADSO_BEOS
|
||||||
|
#undef SDL_LOADSO_DLCOMPAT
|
||||||
|
#undef SDL_LOADSO_DLOPEN
|
||||||
|
#undef SDL_LOADSO_DUMMY
|
||||||
|
#undef SDL_LOADSO_LDG
|
||||||
|
#undef SDL_LOADSO_MACOS
|
||||||
|
#undef SDL_LOADSO_OS2
|
||||||
|
#undef SDL_LOADSO_WIN32
|
||||||
|
|
||||||
|
/* Enable various threading systems */
|
||||||
|
#undef SDL_THREAD_BEOS
|
||||||
|
#undef SDL_THREAD_DC
|
||||||
|
#undef SDL_THREAD_OS2
|
||||||
|
#undef SDL_THREAD_PTH
|
||||||
|
#undef SDL_THREAD_PTHREAD
|
||||||
|
#undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX
|
||||||
|
#undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP
|
||||||
|
#undef SDL_THREAD_SPROC
|
||||||
|
#undef SDL_THREAD_WIN32
|
||||||
|
|
||||||
|
/* Enable various timer systems */
|
||||||
|
#undef SDL_TIMER_BEOS
|
||||||
|
#undef SDL_TIMER_DC
|
||||||
|
#undef SDL_TIMER_DUMMY
|
||||||
|
#undef SDL_TIMER_MACOS
|
||||||
|
#undef SDL_TIMER_MINT
|
||||||
|
#undef SDL_TIMER_OS2
|
||||||
|
#undef SDL_TIMER_RISCOS
|
||||||
|
#undef SDL_TIMER_UNIX
|
||||||
|
#undef SDL_TIMER_WIN32
|
||||||
|
#undef SDL_TIMER_WINCE
|
||||||
|
|
||||||
|
/* Enable various video drivers */
|
||||||
|
#undef SDL_VIDEO_DRIVER_AALIB
|
||||||
|
#undef SDL_VIDEO_DRIVER_BWINDOW
|
||||||
|
#undef SDL_VIDEO_DRIVER_CACA
|
||||||
|
#undef SDL_VIDEO_DRIVER_DC
|
||||||
|
#undef SDL_VIDEO_DRIVER_DDRAW
|
||||||
|
#undef SDL_VIDEO_DRIVER_DGA
|
||||||
|
#undef SDL_VIDEO_DRIVER_DIRECTFB
|
||||||
|
#undef SDL_VIDEO_DRIVER_DRAWSPROCKET
|
||||||
|
#undef SDL_VIDEO_DRIVER_DUMMY
|
||||||
|
#undef SDL_VIDEO_DRIVER_FBCON
|
||||||
|
#undef SDL_VIDEO_DRIVER_GAPI
|
||||||
|
#undef SDL_VIDEO_DRIVER_GEM
|
||||||
|
#undef SDL_VIDEO_DRIVER_GGI
|
||||||
|
#undef SDL_VIDEO_DRIVER_IPOD
|
||||||
|
#undef SDL_VIDEO_DRIVER_NANOX
|
||||||
|
#undef SDL_VIDEO_DRIVER_OS2FS
|
||||||
|
#undef SDL_VIDEO_DRIVER_PHOTON
|
||||||
|
#undef SDL_VIDEO_DRIVER_PICOGUI
|
||||||
|
#undef SDL_VIDEO_DRIVER_PS2GS
|
||||||
|
#undef SDL_VIDEO_DRIVER_PS3
|
||||||
|
#undef SDL_VIDEO_DRIVER_QTOPIA
|
||||||
|
#undef SDL_VIDEO_DRIVER_QUARTZ
|
||||||
|
#undef SDL_VIDEO_DRIVER_RISCOS
|
||||||
|
#undef SDL_VIDEO_DRIVER_SVGALIB
|
||||||
|
#undef SDL_VIDEO_DRIVER_TOOLBOX
|
||||||
|
#undef SDL_VIDEO_DRIVER_VGL
|
||||||
|
#undef SDL_VIDEO_DRIVER_WINDIB
|
||||||
|
#undef SDL_VIDEO_DRIVER_WSCONS
|
||||||
|
#undef SDL_VIDEO_DRIVER_X11
|
||||||
|
#undef SDL_VIDEO_DRIVER_X11_DGAMOUSE
|
||||||
|
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC
|
||||||
|
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT
|
||||||
|
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR
|
||||||
|
#undef SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER
|
||||||
|
#undef SDL_VIDEO_DRIVER_X11_VIDMODE
|
||||||
|
#undef SDL_VIDEO_DRIVER_X11_XINERAMA
|
||||||
|
#undef SDL_VIDEO_DRIVER_X11_XME
|
||||||
|
#undef SDL_VIDEO_DRIVER_X11_XRANDR
|
||||||
|
#undef SDL_VIDEO_DRIVER_X11_XV
|
||||||
|
#undef SDL_VIDEO_DRIVER_XBIOS
|
||||||
|
|
||||||
|
/* Enable OpenGL support */
|
||||||
|
#undef SDL_VIDEO_OPENGL
|
||||||
|
#undef SDL_VIDEO_OPENGL_GLX
|
||||||
|
#undef SDL_VIDEO_OPENGL_WGL
|
||||||
|
#undef SDL_VIDEO_OPENGL_OSMESA
|
||||||
|
#undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC
|
||||||
|
|
||||||
|
/* Disable screensaver */
|
||||||
|
#undef SDL_VIDEO_DISABLE_SCREENSAVER
|
||||||
|
|
||||||
|
/* Enable assembly routines */
|
||||||
|
#undef SDL_ASSEMBLY_ROUTINES
|
||||||
|
#undef SDL_HERMES_BLITTERS
|
||||||
|
#undef SDL_ALTIVEC_BLITTERS
|
||||||
|
|
||||||
|
#endif /* _SDL_config_h */
|
|
@ -0,0 +1,106 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_config_dreamcast_h
|
||||||
|
#define _SDL_config_dreamcast_h
|
||||||
|
|
||||||
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
|
/* This is a set of defines to configure the SDL features */
|
||||||
|
|
||||||
|
typedef signed char int8_t;
|
||||||
|
typedef unsigned char uint8_t;
|
||||||
|
typedef signed short int16_t;
|
||||||
|
typedef unsigned short uint16_t;
|
||||||
|
typedef signed int int32_t;
|
||||||
|
typedef unsigned int uint32_t;
|
||||||
|
typedef signed long long int64_t;
|
||||||
|
typedef unsigned long long uint64_t;
|
||||||
|
typedef unsigned long uintptr_t;
|
||||||
|
#define SDL_HAS_64BIT_TYPE 1
|
||||||
|
|
||||||
|
/* Useful headers */
|
||||||
|
#define HAVE_SYS_TYPES_H 1
|
||||||
|
#define HAVE_STDIO_H 1
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
#define HAVE_STRING_H 1
|
||||||
|
#define HAVE_CTYPE_H 1
|
||||||
|
|
||||||
|
/* C library functions */
|
||||||
|
#define HAVE_MALLOC 1
|
||||||
|
#define HAVE_CALLOC 1
|
||||||
|
#define HAVE_REALLOC 1
|
||||||
|
#define HAVE_FREE 1
|
||||||
|
#define HAVE_ALLOCA 1
|
||||||
|
#define HAVE_GETENV 1
|
||||||
|
#define HAVE_PUTENV 1
|
||||||
|
#define HAVE_QSORT 1
|
||||||
|
#define HAVE_ABS 1
|
||||||
|
#define HAVE_BCOPY 1
|
||||||
|
#define HAVE_MEMSET 1
|
||||||
|
#define HAVE_MEMCPY 1
|
||||||
|
#define HAVE_MEMMOVE 1
|
||||||
|
#define HAVE_MEMCMP 1
|
||||||
|
#define HAVE_STRLEN 1
|
||||||
|
#define HAVE_STRDUP 1
|
||||||
|
#define HAVE_INDEX 1
|
||||||
|
#define HAVE_RINDEX 1
|
||||||
|
#define HAVE_STRCHR 1
|
||||||
|
#define HAVE_STRRCHR 1
|
||||||
|
#define HAVE_STRSTR 1
|
||||||
|
#define HAVE_STRTOL 1
|
||||||
|
#define HAVE_STRTOD 1
|
||||||
|
#define HAVE_ATOI 1
|
||||||
|
#define HAVE_ATOF 1
|
||||||
|
#define HAVE_STRCMP 1
|
||||||
|
#define HAVE_STRNCMP 1
|
||||||
|
#define HAVE_STRICMP 1
|
||||||
|
#define HAVE_STRCASECMP 1
|
||||||
|
#define HAVE_SSCANF 1
|
||||||
|
#define HAVE_SNPRINTF 1
|
||||||
|
#define HAVE_VSNPRINTF 1
|
||||||
|
|
||||||
|
/* Enable various audio drivers */
|
||||||
|
#define SDL_AUDIO_DRIVER_DC 1
|
||||||
|
#define SDL_AUDIO_DRIVER_DISK 1
|
||||||
|
#define SDL_AUDIO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
|
/* Enable various cdrom drivers */
|
||||||
|
#define SDL_CDROM_DC 1
|
||||||
|
|
||||||
|
/* Enable various input drivers */
|
||||||
|
#define SDL_JOYSTICK_DC 1
|
||||||
|
|
||||||
|
/* Enable various shared object loading systems */
|
||||||
|
#define SDL_LOADSO_DUMMY 1
|
||||||
|
|
||||||
|
/* Enable various threading systems */
|
||||||
|
#define SDL_THREAD_DC 1
|
||||||
|
|
||||||
|
/* Enable various timer systems */
|
||||||
|
#define SDL_TIMER_DC 1
|
||||||
|
|
||||||
|
/* Enable various video drivers */
|
||||||
|
#define SDL_VIDEO_DRIVER_DC 1
|
||||||
|
#define SDL_VIDEO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
|
#endif /* _SDL_config_dreamcast_h */
|
|
@ -0,0 +1,112 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_config_macos_h
|
||||||
|
#define _SDL_config_macos_h
|
||||||
|
|
||||||
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
|
/* This is a set of defines to configure the SDL features */
|
||||||
|
|
||||||
|
#include <MacTypes.h>
|
||||||
|
|
||||||
|
typedef SInt8 int8_t;
|
||||||
|
typedef UInt8 uint8_t;
|
||||||
|
typedef SInt16 int16_t;
|
||||||
|
typedef UInt16 uint16_t;
|
||||||
|
typedef SInt32 int32_t;
|
||||||
|
typedef UInt32 uint32_t;
|
||||||
|
typedef SInt64 int64_t;
|
||||||
|
typedef UInt64 uint64_t;
|
||||||
|
typedef unsigned long uintptr_t;
|
||||||
|
|
||||||
|
#define SDL_HAS_64BIT_TYPE 1
|
||||||
|
|
||||||
|
/* Useful headers */
|
||||||
|
#define HAVE_STDIO_H 1
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
#define HAVE_STRING_H 1
|
||||||
|
#define HAVE_CTYPE_H 1
|
||||||
|
#define HAVE_MATH_H 1
|
||||||
|
#define HAVE_SIGNAL_H 1
|
||||||
|
|
||||||
|
/* C library functions */
|
||||||
|
#define HAVE_MALLOC 1
|
||||||
|
#define HAVE_CALLOC 1
|
||||||
|
#define HAVE_REALLOC 1
|
||||||
|
#define HAVE_FREE 1
|
||||||
|
#define HAVE_ALLOCA 1
|
||||||
|
#define HAVE_ABS 1
|
||||||
|
#define HAVE_MEMSET 1
|
||||||
|
#define HAVE_MEMCPY 1
|
||||||
|
#define HAVE_MEMMOVE 1
|
||||||
|
#define HAVE_MEMCMP 1
|
||||||
|
#define HAVE_STRLEN 1
|
||||||
|
#define HAVE_STRCHR 1
|
||||||
|
#define HAVE_STRRCHR 1
|
||||||
|
#define HAVE_STRSTR 1
|
||||||
|
#define HAVE_ITOA 1
|
||||||
|
#define HAVE_STRTOL 1
|
||||||
|
#define HAVE_STRTOD 1
|
||||||
|
#define HAVE_ATOI 1
|
||||||
|
#define HAVE_ATOF 1
|
||||||
|
#define HAVE_STRCMP 1
|
||||||
|
#define HAVE_STRNCMP 1
|
||||||
|
#define HAVE_SSCANF 1
|
||||||
|
|
||||||
|
/* Enable various audio drivers */
|
||||||
|
#define SDL_AUDIO_DRIVER_SNDMGR 1
|
||||||
|
#define SDL_AUDIO_DRIVER_DISK 1
|
||||||
|
#define SDL_AUDIO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
|
/* Enable various cdrom drivers */
|
||||||
|
#if TARGET_API_MAC_CARBON
|
||||||
|
#define SDL_CDROM_DUMMY 1
|
||||||
|
#else
|
||||||
|
#define SDL_CDROM_MACOS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Enable various input drivers */
|
||||||
|
#if TARGET_API_MAC_CARBON
|
||||||
|
#define SDL_JOYSTICK_DUMMY 1
|
||||||
|
#else
|
||||||
|
#define SDL_JOYSTICK_MACOS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Enable various shared object loading systems */
|
||||||
|
#define SDL_LOADSO_MACOS 1
|
||||||
|
|
||||||
|
/* Enable various threading systems */
|
||||||
|
#define SDL_THREADS_DISABLED 1
|
||||||
|
|
||||||
|
/* Enable various timer systems */
|
||||||
|
#define SDL_TIMER_MACOS 1
|
||||||
|
|
||||||
|
/* Enable various video drivers */
|
||||||
|
#define SDL_VIDEO_DRIVER_DUMMY 1
|
||||||
|
#define SDL_VIDEO_DRIVER_DRAWSPROCKET 1
|
||||||
|
#define SDL_VIDEO_DRIVER_TOOLBOX 1
|
||||||
|
|
||||||
|
/* Enable OpenGL support */
|
||||||
|
#define SDL_VIDEO_OPENGL 1
|
||||||
|
|
||||||
|
#endif /* _SDL_config_macos_h */
|
|
@ -0,0 +1,150 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_config_macosx_h
|
||||||
|
#define _SDL_config_macosx_h
|
||||||
|
|
||||||
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
|
/* This gets us MAC_OS_X_VERSION_MIN_REQUIRED... */
|
||||||
|
#include <AvailabilityMacros.h>
|
||||||
|
|
||||||
|
/* This is a set of defines to configure the SDL features */
|
||||||
|
|
||||||
|
#define SDL_HAS_64BIT_TYPE 1
|
||||||
|
|
||||||
|
/* Useful headers */
|
||||||
|
/* If we specified an SDK or have a post-PowerPC chip, then alloca.h exists. */
|
||||||
|
#if ( (MAC_OS_X_VERSION_MIN_REQUIRED >= 1030) || (!defined(__POWERPC__)) )
|
||||||
|
#define HAVE_ALLOCA_H 1
|
||||||
|
#endif
|
||||||
|
#define HAVE_SYS_TYPES_H 1
|
||||||
|
#define HAVE_STDIO_H 1
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
#define HAVE_STRING_H 1
|
||||||
|
#define HAVE_INTTYPES_H 1
|
||||||
|
#define HAVE_STDINT_H 1
|
||||||
|
#define HAVE_CTYPE_H 1
|
||||||
|
#define HAVE_MATH_H 1
|
||||||
|
#define HAVE_SIGNAL_H 1
|
||||||
|
|
||||||
|
/* C library functions */
|
||||||
|
#define HAVE_MALLOC 1
|
||||||
|
#define HAVE_CALLOC 1
|
||||||
|
#define HAVE_REALLOC 1
|
||||||
|
#define HAVE_FREE 1
|
||||||
|
#define HAVE_ALLOCA 1
|
||||||
|
#define HAVE_GETENV 1
|
||||||
|
#define HAVE_PUTENV 1
|
||||||
|
#define HAVE_UNSETENV 1
|
||||||
|
#define HAVE_QSORT 1
|
||||||
|
#define HAVE_ABS 1
|
||||||
|
#define HAVE_BCOPY 1
|
||||||
|
#define HAVE_MEMSET 1
|
||||||
|
#define HAVE_MEMCPY 1
|
||||||
|
#define HAVE_MEMMOVE 1
|
||||||
|
#define HAVE_MEMCMP 1
|
||||||
|
#define HAVE_STRLEN 1
|
||||||
|
#define HAVE_STRLCPY 1
|
||||||
|
#define HAVE_STRLCAT 1
|
||||||
|
#define HAVE_STRDUP 1
|
||||||
|
#define HAVE_STRCHR 1
|
||||||
|
#define HAVE_STRRCHR 1
|
||||||
|
#define HAVE_STRSTR 1
|
||||||
|
#define HAVE_STRTOL 1
|
||||||
|
#define HAVE_STRTOUL 1
|
||||||
|
#define HAVE_STRTOLL 1
|
||||||
|
#define HAVE_STRTOULL 1
|
||||||
|
#define HAVE_STRTOD 1
|
||||||
|
#define HAVE_ATOI 1
|
||||||
|
#define HAVE_ATOF 1
|
||||||
|
#define HAVE_STRCMP 1
|
||||||
|
#define HAVE_STRNCMP 1
|
||||||
|
#define HAVE_STRCASECMP 1
|
||||||
|
#define HAVE_STRNCASECMP 1
|
||||||
|
#define HAVE_SSCANF 1
|
||||||
|
#define HAVE_SNPRINTF 1
|
||||||
|
#define HAVE_VSNPRINTF 1
|
||||||
|
#define HAVE_SIGACTION 1
|
||||||
|
#define HAVE_SETJMP 1
|
||||||
|
#define HAVE_NANOSLEEP 1
|
||||||
|
|
||||||
|
/* Enable various audio drivers */
|
||||||
|
#define SDL_AUDIO_DRIVER_COREAUDIO 1
|
||||||
|
#define SDL_AUDIO_DRIVER_DISK 1
|
||||||
|
#define SDL_AUDIO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
|
/* Enable various cdrom drivers */
|
||||||
|
#define SDL_CDROM_MACOSX 1
|
||||||
|
|
||||||
|
/* Enable various input drivers */
|
||||||
|
#define SDL_JOYSTICK_IOKIT 1
|
||||||
|
|
||||||
|
/* Enable various shared object loading systems */
|
||||||
|
#ifdef __ppc__
|
||||||
|
/* For Mac OS X 10.2 compatibility */
|
||||||
|
#define SDL_LOADSO_DLCOMPAT 1
|
||||||
|
#else
|
||||||
|
#define SDL_LOADSO_DLOPEN 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Enable various threading systems */
|
||||||
|
#define SDL_THREAD_PTHREAD 1
|
||||||
|
#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1
|
||||||
|
|
||||||
|
/* Enable various timer systems */
|
||||||
|
#define SDL_TIMER_UNIX 1
|
||||||
|
|
||||||
|
/* Enable various video drivers */
|
||||||
|
#define SDL_VIDEO_DRIVER_DUMMY 1
|
||||||
|
#if ((defined TARGET_API_MAC_CARBON) && (TARGET_API_MAC_CARBON))
|
||||||
|
#define SDL_VIDEO_DRIVER_TOOLBOX 1
|
||||||
|
#else
|
||||||
|
#define SDL_VIDEO_DRIVER_QUARTZ 1
|
||||||
|
#endif
|
||||||
|
#define SDL_VIDEO_DRIVER_DGA 1
|
||||||
|
#define SDL_VIDEO_DRIVER_X11 1
|
||||||
|
#define SDL_VIDEO_DRIVER_X11_DGAMOUSE 1
|
||||||
|
#define SDL_VIDEO_DRIVER_X11_DYNAMIC "/usr/X11R6/lib/libX11.6.dylib"
|
||||||
|
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "/usr/X11R6/lib/libXext.6.dylib"
|
||||||
|
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "/usr/X11R6/lib/libXrandr.2.dylib"
|
||||||
|
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRENDER "/usr/X11R6/lib/libXrender.1.dylib"
|
||||||
|
#define SDL_VIDEO_DRIVER_X11_VIDMODE 1
|
||||||
|
#define SDL_VIDEO_DRIVER_X11_XINERAMA 1
|
||||||
|
#define SDL_VIDEO_DRIVER_X11_XME 1
|
||||||
|
#define SDL_VIDEO_DRIVER_X11_XRANDR 1
|
||||||
|
#define SDL_VIDEO_DRIVER_X11_XV 1
|
||||||
|
|
||||||
|
/* Enable OpenGL support */
|
||||||
|
#define SDL_VIDEO_OPENGL 1
|
||||||
|
#define SDL_VIDEO_OPENGL_GLX 1
|
||||||
|
|
||||||
|
/* Disable screensaver */
|
||||||
|
#define SDL_VIDEO_DISABLE_SCREENSAVER 1
|
||||||
|
|
||||||
|
/* Enable assembly routines */
|
||||||
|
#define SDL_ASSEMBLY_ROUTINES 1
|
||||||
|
#ifdef __ppc__
|
||||||
|
#define SDL_ALTIVEC_BLITTERS 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _SDL_config_macosx_h */
|
|
@ -0,0 +1,62 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_config_minimal_h
|
||||||
|
#define _SDL_config_minimal_h
|
||||||
|
|
||||||
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
|
/* This is the minimal configuration that can be used to build SDL */
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
|
||||||
|
typedef signed char int8_t;
|
||||||
|
typedef unsigned char uint8_t;
|
||||||
|
typedef signed short int16_t;
|
||||||
|
typedef unsigned short uint16_t;
|
||||||
|
typedef signed int int32_t;
|
||||||
|
typedef unsigned int uint32_t;
|
||||||
|
typedef unsigned int size_t;
|
||||||
|
typedef unsigned long uintptr_t;
|
||||||
|
|
||||||
|
/* Enable the dummy audio driver (src/audio/dummy/\*.c) */
|
||||||
|
#define SDL_AUDIO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
|
/* Enable the stub cdrom driver (src/cdrom/dummy/\*.c) */
|
||||||
|
#define SDL_CDROM_DISABLED 1
|
||||||
|
|
||||||
|
/* Enable the stub joystick driver (src/joystick/dummy/\*.c) */
|
||||||
|
#define SDL_JOYSTICK_DISABLED 1
|
||||||
|
|
||||||
|
/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */
|
||||||
|
#define SDL_LOADSO_DISABLED 1
|
||||||
|
|
||||||
|
/* Enable the stub thread support (src/thread/generic/\*.c) */
|
||||||
|
#define SDL_THREADS_DISABLED 1
|
||||||
|
|
||||||
|
/* Enable the stub timer support (src/timer/dummy/\*.c) */
|
||||||
|
#define SDL_TIMERS_DISABLED 1
|
||||||
|
|
||||||
|
/* Enable the dummy video driver (src/video/dummy/\*.c) */
|
||||||
|
#define SDL_VIDEO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
|
#endif /* _SDL_config_minimal_h */
|
|
@ -0,0 +1,115 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_config_nds_h
|
||||||
|
#define _SDL_config_nds_h
|
||||||
|
|
||||||
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
|
/* This is a set of defines to configure the SDL features */
|
||||||
|
|
||||||
|
/* General platform specific identifiers */
|
||||||
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
|
/* C datatypes */
|
||||||
|
#define SDL_HAS_64BIT_TYPE 1
|
||||||
|
|
||||||
|
/* Endianness */
|
||||||
|
#define SDL_BYTEORDER 1234
|
||||||
|
|
||||||
|
/* Useful headers */
|
||||||
|
#define HAVE_ALLOCA_H 1
|
||||||
|
#define HAVE_SYS_TYPES_H 1
|
||||||
|
#define HAVE_STDIO_H 1
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
#define HAVE_STDLIB_H 1
|
||||||
|
#define HAVE_STDARG_H 1
|
||||||
|
#define HAVE_MALLOC_H 1
|
||||||
|
#define HAVE_STRING_H 1
|
||||||
|
#define HAVE_INTTYPES_H 1
|
||||||
|
#define HAVE_STDINT_H 1
|
||||||
|
#define HAVE_CTYPE_H 1
|
||||||
|
#define HAVE_MATH_H 1
|
||||||
|
#define HAVE_ICONV_H 1
|
||||||
|
#define HAVE_SIGNAL_H 1
|
||||||
|
|
||||||
|
/* C library functions */
|
||||||
|
#define HAVE_MALLOC 1
|
||||||
|
#define HAVE_CALLOC 1
|
||||||
|
#define HAVE_REALLOC 1
|
||||||
|
#define HAVE_FREE 1
|
||||||
|
#define HAVE_ALLOCA 1
|
||||||
|
#define HAVE_GETENV 1
|
||||||
|
#define HAVE_PUTENV 1
|
||||||
|
#define HAVE_UNSETENV 1
|
||||||
|
#define HAVE_QSORT 1
|
||||||
|
#define HAVE_ABS 1
|
||||||
|
#define HAVE_BCOPY 1
|
||||||
|
#define HAVE_MEMSET 1
|
||||||
|
#define HAVE_MEMCPY 1
|
||||||
|
#define HAVE_MEMMOVE 1
|
||||||
|
#define HAVE_STRLEN 1
|
||||||
|
#define HAVE_STRLCPY 1
|
||||||
|
#define HAVE_STRLCAT 1
|
||||||
|
#define HAVE_STRDUP 1
|
||||||
|
#define HAVE_STRCHR 1
|
||||||
|
#define HAVE_STRRCHR 1
|
||||||
|
#define HAVE_STRSTR 1
|
||||||
|
#define HAVE_STRTOL 1
|
||||||
|
#define HAVE_STRTOUL 1
|
||||||
|
#define HAVE_STRTOLL 1
|
||||||
|
#define HAVE_STRTOULL 1
|
||||||
|
#define HAVE_ATOI 1
|
||||||
|
#define HAVE_ATOF 1
|
||||||
|
#define HAVE_STRCMP 1
|
||||||
|
#define HAVE_STRNCMP 1
|
||||||
|
#define HAVE_STRCASECMP 1
|
||||||
|
#define HAVE_STRNCASECMP 1
|
||||||
|
#define HAVE_SSCANF 1
|
||||||
|
#define HAVE_SNPRINTF 1
|
||||||
|
#define HAVE_VSNPRINTF 1
|
||||||
|
#define HAVE_SETJMP 1
|
||||||
|
|
||||||
|
/* Enable various audio drivers */
|
||||||
|
#define SDL_AUDIO_DRIVER_NDS 1
|
||||||
|
#define SDL_AUDIO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
|
/* Enable the stub cdrom driver (src/cdrom/dummy/\*.c) */
|
||||||
|
#define SDL_CDROM_DISABLED 1
|
||||||
|
|
||||||
|
/* Enable various input drivers */
|
||||||
|
#define SDL_JOYSTICK_NDS 1
|
||||||
|
|
||||||
|
/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */
|
||||||
|
#define SDL_LOADSO_DISABLED 1
|
||||||
|
|
||||||
|
/* Enable the stub thread support (src/thread/generic/\*.c) */
|
||||||
|
#define SDL_THREADS_DISABLED 1
|
||||||
|
|
||||||
|
/* Enable various timer systems */
|
||||||
|
#define SDL_TIMER_NDS 1
|
||||||
|
|
||||||
|
/* Enable various video drivers */
|
||||||
|
#define SDL_VIDEO_DRIVER_NDS 1
|
||||||
|
#define SDL_VIDEO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
|
#endif /* _SDL_config_nds_h */
|
|
@ -0,0 +1,141 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_config_os2_h
|
||||||
|
#define _SDL_config_os2_h
|
||||||
|
|
||||||
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
|
/* This is a set of defines to configure the SDL features */
|
||||||
|
|
||||||
|
typedef signed char int8_t;
|
||||||
|
typedef unsigned char uint8_t;
|
||||||
|
typedef signed short int16_t;
|
||||||
|
typedef unsigned short uint16_t;
|
||||||
|
typedef signed int int32_t;
|
||||||
|
typedef unsigned int uint32_t;
|
||||||
|
typedef unsigned int size_t;
|
||||||
|
typedef unsigned long uintptr_t;
|
||||||
|
typedef signed long long int64_t;
|
||||||
|
typedef unsigned long long uint64_t;
|
||||||
|
|
||||||
|
#define SDL_HAS_64BIT_TYPE 1
|
||||||
|
|
||||||
|
/* Use Watcom's LIBC */
|
||||||
|
#define HAVE_LIBC 1
|
||||||
|
|
||||||
|
/* Useful headers */
|
||||||
|
#define HAVE_SYS_TYPES_H 1
|
||||||
|
#define HAVE_STDIO_H 1
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
#define HAVE_STDLIB_H 1
|
||||||
|
#define HAVE_STDARG_H 1
|
||||||
|
#define HAVE_MALLOC_H 1
|
||||||
|
#define HAVE_MEMORY_H 1
|
||||||
|
#define HAVE_STRING_H 1
|
||||||
|
#define HAVE_STRINGS_H 1
|
||||||
|
#define HAVE_INTTYPES_H 1
|
||||||
|
#define HAVE_STDINT_H 1
|
||||||
|
#define HAVE_CTYPE_H 1
|
||||||
|
#define HAVE_MATH_H 1
|
||||||
|
#define HAVE_SIGNAL_H 1
|
||||||
|
|
||||||
|
/* C library functions */
|
||||||
|
#define HAVE_MALLOC 1
|
||||||
|
#define HAVE_CALLOC 1
|
||||||
|
#define HAVE_REALLOC 1
|
||||||
|
#define HAVE_FREE 1
|
||||||
|
#define HAVE_ALLOCA 1
|
||||||
|
#define HAVE_GETENV 1
|
||||||
|
#define HAVE_PUTENV 1
|
||||||
|
#define HAVE_UNSETENV 1
|
||||||
|
#define HAVE_QSORT 1
|
||||||
|
#define HAVE_ABS 1
|
||||||
|
#define HAVE_BCOPY 1
|
||||||
|
#define HAVE_MEMSET 1
|
||||||
|
#define HAVE_MEMCPY 1
|
||||||
|
#define HAVE_MEMMOVE 1
|
||||||
|
#define HAVE_MEMCMP 1
|
||||||
|
#define HAVE_STRLEN 1
|
||||||
|
#define HAVE_STRLCPY 1
|
||||||
|
#define HAVE_STRLCAT 1
|
||||||
|
#define HAVE_STRDUP 1
|
||||||
|
#define HAVE__STRREV 1
|
||||||
|
#define HAVE__STRUPR 1
|
||||||
|
#define HAVE__STRLWR 1
|
||||||
|
#define HAVE_INDEX 1
|
||||||
|
#define HAVE_RINDEX 1
|
||||||
|
#define HAVE_STRCHR 1
|
||||||
|
#define HAVE_STRRCHR 1
|
||||||
|
#define HAVE_STRSTR 1
|
||||||
|
#define HAVE_ITOA 1
|
||||||
|
#define HAVE__LTOA 1
|
||||||
|
#define HAVE__UITOA 1
|
||||||
|
#define HAVE__ULTOA 1
|
||||||
|
#define HAVE_STRTOL 1
|
||||||
|
#define HAVE__I64TOA 1
|
||||||
|
#define HAVE__UI64TOA 1
|
||||||
|
#define HAVE_STRTOLL 1
|
||||||
|
#define HAVE_STRTOD 1
|
||||||
|
#define HAVE_ATOI 1
|
||||||
|
#define HAVE_ATOF 1
|
||||||
|
#define HAVE_STRCMP 1
|
||||||
|
#define HAVE_STRNCMP 1
|
||||||
|
#define HAVE_STRICMP 1
|
||||||
|
#define HAVE_STRCASECMP 1
|
||||||
|
#define HAVE_SSCANF 1
|
||||||
|
#define HAVE_SNPRINTF 1
|
||||||
|
#define HAVE_VSNPRINTF 1
|
||||||
|
#define HAVE_SETJMP 1
|
||||||
|
#define HAVE_CLOCK_GETTIME 1
|
||||||
|
|
||||||
|
/* Enable various audio drivers */
|
||||||
|
#define SDL_AUDIO_DRIVER_DART 1
|
||||||
|
#define SDL_AUDIO_DRIVER_DISK 1
|
||||||
|
#define SDL_AUDIO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
|
/* Enable various cdrom drivers */
|
||||||
|
#define SDL_CDROM_OS2 1
|
||||||
|
|
||||||
|
/* Enable various input drivers */
|
||||||
|
#define SDL_JOYSTICK_OS2 1
|
||||||
|
|
||||||
|
/* Enable various shared object loading systems */
|
||||||
|
#define SDL_LOADSO_OS2 1
|
||||||
|
|
||||||
|
/* Enable various threading systems */
|
||||||
|
#define SDL_THREAD_OS2 1
|
||||||
|
|
||||||
|
/* Enable various timer systems */
|
||||||
|
#define SDL_TIMER_OS2 1
|
||||||
|
|
||||||
|
/* Enable various video drivers */
|
||||||
|
#define SDL_VIDEO_DRIVER_DUMMY 1
|
||||||
|
#define SDL_VIDEO_DRIVER_OS2FS 1
|
||||||
|
|
||||||
|
/* Enable OpenGL support */
|
||||||
|
/* Nothing here yet for OS/2... :( */
|
||||||
|
|
||||||
|
/* Enable assembly routines where available */
|
||||||
|
#define SDL_ASSEMBLY_ROUTINES 1
|
||||||
|
|
||||||
|
#endif /* _SDL_config_os2_h */
|
|
@ -0,0 +1,146 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
Symbian version Markus Mertama
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef _SDL_CONFIG_SYMBIAN_H
|
||||||
|
#define _SDL_CONFIG_SYMBIAN_H
|
||||||
|
|
||||||
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
|
/* This is the minimal configuration that can be used to build SDL */
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdarg.h>
|
||||||
|
#include <stddef.h>
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef __GCCE__
|
||||||
|
#define SYMBIAN32_GCCE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _SIZE_T_DEFINED
|
||||||
|
typedef unsigned int size_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _INTPTR_T_DECLARED
|
||||||
|
typedef unsigned int uintptr_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _INT8_T_DECLARED
|
||||||
|
typedef signed char int8_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _UINT8_T_DECLARED
|
||||||
|
typedef unsigned char uint8_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _INT16_T_DECLARED
|
||||||
|
typedef signed short int16_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _UINT16_T_DECLARED
|
||||||
|
typedef unsigned short uint16_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _INT32_T_DECLARED
|
||||||
|
typedef signed int int32_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _UINT32_T_DECLARED
|
||||||
|
typedef unsigned int uint32_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _INT64_T_DECLARED
|
||||||
|
typedef signed long long int64_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef _UINT64_T_DECLARED
|
||||||
|
typedef unsigned long long uint64_t;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SDL_AUDIO_DRIVER_EPOCAUDIO 1
|
||||||
|
|
||||||
|
|
||||||
|
/* Enable the stub cdrom driver (src/cdrom/dummy/\*.c) */
|
||||||
|
#define SDL_CDROM_DISABLED 1
|
||||||
|
|
||||||
|
/* Enable the stub joystick driver (src/joystick/dummy/\*.c) */
|
||||||
|
#define SDL_JOYSTICK_DISABLED 1
|
||||||
|
|
||||||
|
/* Enable the stub shared object loader (src/loadso/dummy/\*.c) */
|
||||||
|
#define SDL_LOADSO_DISABLED 1
|
||||||
|
|
||||||
|
#define SDL_THREAD_SYMBIAN 1
|
||||||
|
|
||||||
|
#define SDL_VIDEO_DRIVER_EPOC 1
|
||||||
|
|
||||||
|
#define SDL_VIDEO_OPENGL 0
|
||||||
|
|
||||||
|
#define SDL_HAS_64BIT_TYPE 1
|
||||||
|
|
||||||
|
#define HAVE_LIBC 1
|
||||||
|
#define HAVE_STDIO_H 1
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
#define HAVE_STRING_H 1
|
||||||
|
#define HAVE_CTYPE_H 1
|
||||||
|
#define HAVE_MATH_H 1
|
||||||
|
|
||||||
|
#define HAVE_MALLOC 1
|
||||||
|
#define HAVE_CALLOC 1
|
||||||
|
#define HAVE_REALLOC 1
|
||||||
|
#define HAVE_FREE 1
|
||||||
|
/*#define HAVE_ALLOCA 1*/
|
||||||
|
#define HAVE_QSORT 1
|
||||||
|
#define HAVE_ABS 1
|
||||||
|
#define HAVE_MEMSET 1
|
||||||
|
#define HAVE_MEMCPY 1
|
||||||
|
#define HAVE_MEMMOVE 1
|
||||||
|
#define HAVE_MEMCMP 1
|
||||||
|
#define HAVE_STRLEN 1
|
||||||
|
#define HAVE__STRUPR 1
|
||||||
|
#define HAVE_STRCHR 1
|
||||||
|
#define HAVE_STRRCHR 1
|
||||||
|
#define HAVE_STRSTR 1
|
||||||
|
#define HAVE_ITOA 1
|
||||||
|
#define HAVE_STRTOL 1
|
||||||
|
#define HAVE_STRTOUL 1
|
||||||
|
#define HAVE_STRTOLL 1
|
||||||
|
#define HAVE_STRTOD 1
|
||||||
|
#define HAVE_ATOI 1
|
||||||
|
#define HAVE_ATOF 1
|
||||||
|
#define HAVE_STRCMP 1
|
||||||
|
#define HAVE_STRNCMP 1
|
||||||
|
/*#define HAVE__STRICMP 1*/
|
||||||
|
#define HAVE__STRNICMP 1
|
||||||
|
#define HAVE_SSCANF 1
|
||||||
|
#define HAVE_STDARG_H 1
|
||||||
|
#define HAVE_STDDEF_H 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* _SDL_CONFIG_SYMBIAN_H */
|
|
@ -0,0 +1,183 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_config_win32_h
|
||||||
|
#define _SDL_config_win32_h
|
||||||
|
|
||||||
|
#include "SDL_platform.h"
|
||||||
|
|
||||||
|
/* This is a set of defines to configure the SDL features */
|
||||||
|
|
||||||
|
#if defined(__GNUC__) || defined(__DMC__)
|
||||||
|
#define HAVE_STDINT_H 1
|
||||||
|
#elif defined(_MSC_VER)
|
||||||
|
typedef signed __int8 int8_t;
|
||||||
|
typedef unsigned __int8 uint8_t;
|
||||||
|
typedef signed __int16 int16_t;
|
||||||
|
typedef unsigned __int16 uint16_t;
|
||||||
|
typedef signed __int32 int32_t;
|
||||||
|
typedef unsigned __int32 uint32_t;
|
||||||
|
typedef signed __int64 int64_t;
|
||||||
|
typedef unsigned __int64 uint64_t;
|
||||||
|
#ifndef _UINTPTR_T_DEFINED
|
||||||
|
#ifdef _WIN64
|
||||||
|
typedef unsigned __int64 uintptr_t;
|
||||||
|
#else
|
||||||
|
typedef unsigned int uintptr_t;
|
||||||
|
#endif
|
||||||
|
#define _UINTPTR_T_DEFINED
|
||||||
|
#endif
|
||||||
|
/* Older Visual C++ headers don't have the Win64-compatible typedefs... */
|
||||||
|
#if ((_MSC_VER <= 1200) && (!defined(DWORD_PTR)))
|
||||||
|
#define DWORD_PTR DWORD
|
||||||
|
#endif
|
||||||
|
#if ((_MSC_VER <= 1200) && (!defined(LONG_PTR)))
|
||||||
|
#define LONG_PTR LONG
|
||||||
|
#endif
|
||||||
|
#else /* !__GNUC__ && !_MSC_VER */
|
||||||
|
typedef signed char int8_t;
|
||||||
|
typedef unsigned char uint8_t;
|
||||||
|
typedef signed short int16_t;
|
||||||
|
typedef unsigned short uint16_t;
|
||||||
|
typedef signed int int32_t;
|
||||||
|
typedef unsigned int uint32_t;
|
||||||
|
typedef signed long long int64_t;
|
||||||
|
typedef unsigned long long uint64_t;
|
||||||
|
#ifndef _SIZE_T_DEFINED_
|
||||||
|
#define _SIZE_T_DEFINED_
|
||||||
|
typedef unsigned int size_t;
|
||||||
|
#endif
|
||||||
|
typedef unsigned int uintptr_t;
|
||||||
|
#endif /* __GNUC__ || _MSC_VER */
|
||||||
|
#define SDL_HAS_64BIT_TYPE 1
|
||||||
|
|
||||||
|
/* Enabled for SDL 1.2 (binary compatibility) */
|
||||||
|
#define HAVE_LIBC 1
|
||||||
|
#ifdef HAVE_LIBC
|
||||||
|
/* Useful headers */
|
||||||
|
#define HAVE_STDIO_H 1
|
||||||
|
#define STDC_HEADERS 1
|
||||||
|
#define HAVE_STRING_H 1
|
||||||
|
#define HAVE_CTYPE_H 1
|
||||||
|
#define HAVE_MATH_H 1
|
||||||
|
#ifndef _WIN32_WCE
|
||||||
|
#define HAVE_SIGNAL_H 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* C library functions */
|
||||||
|
#define HAVE_MALLOC 1
|
||||||
|
#define HAVE_CALLOC 1
|
||||||
|
#define HAVE_REALLOC 1
|
||||||
|
#define HAVE_FREE 1
|
||||||
|
#define HAVE_ALLOCA 1
|
||||||
|
#define HAVE_QSORT 1
|
||||||
|
#define HAVE_ABS 1
|
||||||
|
#define HAVE_MEMSET 1
|
||||||
|
#define HAVE_MEMCPY 1
|
||||||
|
#define HAVE_MEMMOVE 1
|
||||||
|
#define HAVE_MEMCMP 1
|
||||||
|
#define HAVE_STRLEN 1
|
||||||
|
#define HAVE__STRREV 1
|
||||||
|
#define HAVE__STRUPR 1
|
||||||
|
#define HAVE__STRLWR 1
|
||||||
|
#define HAVE_STRCHR 1
|
||||||
|
#define HAVE_STRRCHR 1
|
||||||
|
#define HAVE_STRSTR 1
|
||||||
|
#define HAVE_ITOA 1
|
||||||
|
#define HAVE__LTOA 1
|
||||||
|
#define HAVE__ULTOA 1
|
||||||
|
#define HAVE_STRTOL 1
|
||||||
|
#define HAVE_STRTOUL 1
|
||||||
|
#define HAVE_STRTOLL 1
|
||||||
|
#define HAVE_STRTOD 1
|
||||||
|
#define HAVE_ATOI 1
|
||||||
|
#define HAVE_ATOF 1
|
||||||
|
#define HAVE_STRCMP 1
|
||||||
|
#define HAVE_STRNCMP 1
|
||||||
|
#define HAVE__STRICMP 1
|
||||||
|
#define HAVE__STRNICMP 1
|
||||||
|
#define HAVE_SSCANF 1
|
||||||
|
#else
|
||||||
|
#define HAVE_STDARG_H 1
|
||||||
|
#define HAVE_STDDEF_H 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Enable various audio drivers */
|
||||||
|
#ifndef _WIN32_WCE
|
||||||
|
#define SDL_AUDIO_DRIVER_DSOUND 1
|
||||||
|
#endif
|
||||||
|
#define SDL_AUDIO_DRIVER_WAVEOUT 1
|
||||||
|
#define SDL_AUDIO_DRIVER_DISK 1
|
||||||
|
#define SDL_AUDIO_DRIVER_DUMMY 1
|
||||||
|
|
||||||
|
/* Enable various cdrom drivers */
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
#define SDL_CDROM_DISABLED 1
|
||||||
|
#else
|
||||||
|
#define SDL_CDROM_WIN32 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Enable various input drivers */
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
#define SDL_JOYSTICK_DISABLED 1
|
||||||
|
#else
|
||||||
|
#define SDL_JOYSTICK_WINMM 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Enable various shared object loading systems */
|
||||||
|
#define SDL_LOADSO_WIN32 1
|
||||||
|
|
||||||
|
/* Enable various threading systems */
|
||||||
|
#define SDL_THREAD_WIN32 1
|
||||||
|
|
||||||
|
/* Enable various timer systems */
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
#define SDL_TIMER_WINCE 1
|
||||||
|
#else
|
||||||
|
#define SDL_TIMER_WIN32 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Enable various video drivers */
|
||||||
|
#ifdef _WIN32_WCE
|
||||||
|
#define SDL_VIDEO_DRIVER_GAPI 1
|
||||||
|
#endif
|
||||||
|
#ifndef _WIN32_WCE
|
||||||
|
#define SDL_VIDEO_DRIVER_DDRAW 1
|
||||||
|
#endif
|
||||||
|
#define SDL_VIDEO_DRIVER_DUMMY 1
|
||||||
|
#define SDL_VIDEO_DRIVER_WINDIB 1
|
||||||
|
|
||||||
|
/* Enable OpenGL support */
|
||||||
|
#ifndef _WIN32_WCE
|
||||||
|
#define SDL_VIDEO_OPENGL 1
|
||||||
|
#define SDL_VIDEO_OPENGL_WGL 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Disable screensaver */
|
||||||
|
#define SDL_VIDEO_DISABLE_SCREENSAVER 1
|
||||||
|
|
||||||
|
/* Enable assembly routines (Win64 doesn't have inline asm) */
|
||||||
|
#ifndef _WIN64
|
||||||
|
#define SDL_ASSEMBLY_ROUTINES 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _SDL_config_win32_h */
|
|
@ -0,0 +1,22 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file SDL_cpuinfo.h
|
||||||
|
* CPU feature detection for SDL
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_cpuinfo_h
|
||||||
|
#define _SDL_cpuinfo_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** This function returns true if the CPU has the RDTSC instruction */
|
||||||
|
extern DECLSPEC SDL_bool SDLCALL SDL_HasRDTSC(void);
|
||||||
|
|
||||||
|
/** This function returns true if the CPU has MMX features */
|
||||||
|
extern DECLSPEC SDL_bool SDLCALL SDL_HasMMX(void);
|
||||||
|
|
||||||
|
/** This function returns true if the CPU has MMX Ext. features */
|
||||||
|
extern DECLSPEC SDL_bool SDLCALL SDL_HasMMXExt(void);
|
||||||
|
|
||||||
|
/** This function returns true if the CPU has 3DNow features */
|
||||||
|
extern DECLSPEC SDL_bool SDLCALL SDL_Has3DNow(void);
|
||||||
|
|
||||||
|
/** This function returns true if the CPU has 3DNow! Ext. features */
|
||||||
|
extern DECLSPEC SDL_bool SDLCALL SDL_Has3DNowExt(void);
|
||||||
|
|
||||||
|
/** This function returns true if the CPU has SSE features */
|
||||||
|
extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE(void);
|
||||||
|
|
||||||
|
/** This function returns true if the CPU has SSE2 features */
|
||||||
|
extern DECLSPEC SDL_bool SDLCALL SDL_HasSSE2(void);
|
||||||
|
|
||||||
|
/** This function returns true if the CPU has AltiVec features */
|
||||||
|
extern DECLSPEC SDL_bool SDLCALL SDL_HasAltiVec(void);
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_cpuinfo_h */
|
|
@ -0,0 +1,209 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file SDL_endian.h
|
||||||
|
* Functions for reading and writing endian-specific values
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_endian_h
|
||||||
|
#define _SDL_endian_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
|
||||||
|
/** @name SDL_ENDIANs
|
||||||
|
* The two types of endianness
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_LIL_ENDIAN 1234
|
||||||
|
#define SDL_BIG_ENDIAN 4321
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
#ifndef SDL_BYTEORDER /* Not defined in SDL_config.h? */
|
||||||
|
#if defined(__hppa__) || \
|
||||||
|
defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \
|
||||||
|
(defined(__MIPS__) && defined(__MISPEB__)) || \
|
||||||
|
defined(__ppc__) || defined(__POWERPC__) || defined(_M_PPC) || \
|
||||||
|
defined(__sparc__)
|
||||||
|
#define SDL_BYTEORDER SDL_BIG_ENDIAN
|
||||||
|
#else
|
||||||
|
#define SDL_BYTEORDER SDL_LIL_ENDIAN
|
||||||
|
#endif
|
||||||
|
#endif /* !SDL_BYTEORDER */
|
||||||
|
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name SDL_Swap Functions
|
||||||
|
* Use inline functions for compilers that support them, and static
|
||||||
|
* functions for those that do not. Because these functions become
|
||||||
|
* static for compilers that do not support inline functions, this
|
||||||
|
* header should only be included in files that actually use them.
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#if defined(__GNUC__) && defined(__i386__) && \
|
||||||
|
!(__GNUC__ == 2 && __GNUC_MINOR__ <= 95 /* broken gcc version */)
|
||||||
|
static __inline__ Uint16 SDL_Swap16(Uint16 x)
|
||||||
|
{
|
||||||
|
__asm__("xchgb %b0,%h0" : "=q" (x) : "0" (x));
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
#elif defined(__GNUC__) && defined(__x86_64__)
|
||||||
|
static __inline__ Uint16 SDL_Swap16(Uint16 x)
|
||||||
|
{
|
||||||
|
__asm__("xchgb %b0,%h0" : "=Q" (x) : "0" (x));
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__))
|
||||||
|
static __inline__ Uint16 SDL_Swap16(Uint16 x)
|
||||||
|
{
|
||||||
|
Uint16 result;
|
||||||
|
|
||||||
|
__asm__("rlwimi %0,%2,8,16,23" : "=&r" (result) : "0" (x >> 8), "r" (x));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#elif defined(__GNUC__) && (defined(__M68000__) || defined(__M68020__))
|
||||||
|
static __inline__ Uint16 SDL_Swap16(Uint16 x)
|
||||||
|
{
|
||||||
|
__asm__("rorw #8,%0" : "=d" (x) : "0" (x) : "cc");
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static __inline__ Uint16 SDL_Swap16(Uint16 x) {
|
||||||
|
return((x<<8)|(x>>8));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__GNUC__) && defined(__i386__) && \
|
||||||
|
!(__GNUC__ == 2 && __GNUC_MINOR__ <= 95 /* broken gcc version */)
|
||||||
|
static __inline__ Uint32 SDL_Swap32(Uint32 x)
|
||||||
|
{
|
||||||
|
__asm__("bswap %0" : "=r" (x) : "0" (x));
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
#elif defined(__GNUC__) && defined(__x86_64__)
|
||||||
|
static __inline__ Uint32 SDL_Swap32(Uint32 x)
|
||||||
|
{
|
||||||
|
__asm__("bswapl %0" : "=r" (x) : "0" (x));
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__))
|
||||||
|
static __inline__ Uint32 SDL_Swap32(Uint32 x)
|
||||||
|
{
|
||||||
|
Uint32 result;
|
||||||
|
|
||||||
|
__asm__("rlwimi %0,%2,24,16,23" : "=&r" (result) : "0" (x>>24), "r" (x));
|
||||||
|
__asm__("rlwimi %0,%2,8,8,15" : "=&r" (result) : "0" (result), "r" (x));
|
||||||
|
__asm__("rlwimi %0,%2,24,0,7" : "=&r" (result) : "0" (result), "r" (x));
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
#elif defined(__GNUC__) && (defined(__M68000__) || defined(__M68020__))
|
||||||
|
static __inline__ Uint32 SDL_Swap32(Uint32 x)
|
||||||
|
{
|
||||||
|
__asm__("rorw #8,%0\n\tswap %0\n\trorw #8,%0" : "=d" (x) : "0" (x) : "cc");
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static __inline__ Uint32 SDL_Swap32(Uint32 x) {
|
||||||
|
return((x<<24)|((x<<8)&0x00FF0000)|((x>>8)&0x0000FF00)|(x>>24));
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SDL_HAS_64BIT_TYPE
|
||||||
|
#if defined(__GNUC__) && defined(__i386__) && \
|
||||||
|
!(__GNUC__ == 2 && __GNUC_MINOR__ <= 95 /* broken gcc version */)
|
||||||
|
static __inline__ Uint64 SDL_Swap64(Uint64 x)
|
||||||
|
{
|
||||||
|
union {
|
||||||
|
struct { Uint32 a,b; } s;
|
||||||
|
Uint64 u;
|
||||||
|
} v;
|
||||||
|
v.u = x;
|
||||||
|
__asm__("bswapl %0 ; bswapl %1 ; xchgl %0,%1"
|
||||||
|
: "=r" (v.s.a), "=r" (v.s.b)
|
||||||
|
: "0" (v.s.a), "1" (v.s.b));
|
||||||
|
return v.u;
|
||||||
|
}
|
||||||
|
#elif defined(__GNUC__) && defined(__x86_64__)
|
||||||
|
static __inline__ Uint64 SDL_Swap64(Uint64 x)
|
||||||
|
{
|
||||||
|
__asm__("bswapq %0" : "=r" (x) : "0" (x));
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static __inline__ Uint64 SDL_Swap64(Uint64 x)
|
||||||
|
{
|
||||||
|
Uint32 hi, lo;
|
||||||
|
|
||||||
|
/* Separate into high and low 32-bit values and swap them */
|
||||||
|
lo = SDL_static_cast(Uint32, x & 0xFFFFFFFF);
|
||||||
|
x >>= 32;
|
||||||
|
hi = SDL_static_cast(Uint32, x & 0xFFFFFFFF);
|
||||||
|
x = SDL_Swap32(lo);
|
||||||
|
x <<= 32;
|
||||||
|
x |= SDL_Swap32(hi);
|
||||||
|
return(x);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
/* This is mainly to keep compilers from complaining in SDL code.
|
||||||
|
* If there is no real 64-bit datatype, then compilers will complain about
|
||||||
|
* the fake 64-bit datatype that SDL provides when it compiles user code.
|
||||||
|
*/
|
||||||
|
#define SDL_Swap64(X) (X)
|
||||||
|
#endif /* SDL_HAS_64BIT_TYPE */
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name SDL_SwapLE and SDL_SwapBE Functions
|
||||||
|
* Byteswap item from the specified endianness to the native endianness
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#if SDL_BYTEORDER == SDL_LIL_ENDIAN
|
||||||
|
#define SDL_SwapLE16(X) (X)
|
||||||
|
#define SDL_SwapLE32(X) (X)
|
||||||
|
#define SDL_SwapLE64(X) (X)
|
||||||
|
#define SDL_SwapBE16(X) SDL_Swap16(X)
|
||||||
|
#define SDL_SwapBE32(X) SDL_Swap32(X)
|
||||||
|
#define SDL_SwapBE64(X) SDL_Swap64(X)
|
||||||
|
#else
|
||||||
|
#define SDL_SwapLE16(X) SDL_Swap16(X)
|
||||||
|
#define SDL_SwapLE32(X) SDL_Swap32(X)
|
||||||
|
#define SDL_SwapLE64(X) SDL_Swap64(X)
|
||||||
|
#define SDL_SwapBE16(X) (X)
|
||||||
|
#define SDL_SwapBE32(X) (X)
|
||||||
|
#define SDL_SwapBE64(X) (X)
|
||||||
|
#endif
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_endian_h */
|
|
@ -0,0 +1,72 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file SDL_error.h
|
||||||
|
* Simple error message routines for SDL
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_error_h
|
||||||
|
#define _SDL_error_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Public functions
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_SetError(const char *fmt, ...);
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_GetError(void);
|
||||||
|
extern DECLSPEC void SDLCALL SDL_ClearError(void);
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Private functions
|
||||||
|
* @internal Private error message function - used internally
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_OutOfMemory() SDL_Error(SDL_ENOMEM)
|
||||||
|
#define SDL_Unsupported() SDL_Error(SDL_UNSUPPORTED)
|
||||||
|
typedef enum {
|
||||||
|
SDL_ENOMEM,
|
||||||
|
SDL_EFREAD,
|
||||||
|
SDL_EFWRITE,
|
||||||
|
SDL_EFSEEK,
|
||||||
|
SDL_UNSUPPORTED,
|
||||||
|
SDL_LASTERROR
|
||||||
|
} SDL_errorcode;
|
||||||
|
extern DECLSPEC void SDLCALL SDL_Error(SDL_errorcode code);
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_error_h */
|
|
@ -0,0 +1,356 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file SDL_events.h
|
||||||
|
* Include file for SDL event handling
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_events_h
|
||||||
|
#define _SDL_events_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
#include "SDL_active.h"
|
||||||
|
#include "SDL_keyboard.h"
|
||||||
|
#include "SDL_mouse.h"
|
||||||
|
#include "SDL_joystick.h"
|
||||||
|
#include "SDL_quit.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** @name General keyboard/mouse state definitions */
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_RELEASED 0
|
||||||
|
#define SDL_PRESSED 1
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** Event enumerations */
|
||||||
|
typedef enum {
|
||||||
|
SDL_NOEVENT = 0, /**< Unused (do not remove) */
|
||||||
|
SDL_ACTIVEEVENT, /**< Application loses/gains visibility */
|
||||||
|
SDL_KEYDOWN, /**< Keys pressed */
|
||||||
|
SDL_KEYUP, /**< Keys released */
|
||||||
|
SDL_MOUSEMOTION, /**< Mouse moved */
|
||||||
|
SDL_MOUSEBUTTONDOWN, /**< Mouse button pressed */
|
||||||
|
SDL_MOUSEBUTTONUP, /**< Mouse button released */
|
||||||
|
SDL_JOYAXISMOTION, /**< Joystick axis motion */
|
||||||
|
SDL_JOYBALLMOTION, /**< Joystick trackball motion */
|
||||||
|
SDL_JOYHATMOTION, /**< Joystick hat position change */
|
||||||
|
SDL_JOYBUTTONDOWN, /**< Joystick button pressed */
|
||||||
|
SDL_JOYBUTTONUP, /**< Joystick button released */
|
||||||
|
SDL_QUIT, /**< User-requested quit */
|
||||||
|
SDL_SYSWMEVENT, /**< System specific event */
|
||||||
|
SDL_EVENT_RESERVEDA, /**< Reserved for future use.. */
|
||||||
|
SDL_EVENT_RESERVEDB, /**< Reserved for future use.. */
|
||||||
|
SDL_VIDEORESIZE, /**< User resized video mode */
|
||||||
|
SDL_VIDEOEXPOSE, /**< Screen needs to be redrawn */
|
||||||
|
SDL_EVENT_RESERVED2, /**< Reserved for future use.. */
|
||||||
|
SDL_EVENT_RESERVED3, /**< Reserved for future use.. */
|
||||||
|
SDL_EVENT_RESERVED4, /**< Reserved for future use.. */
|
||||||
|
SDL_EVENT_RESERVED5, /**< Reserved for future use.. */
|
||||||
|
SDL_EVENT_RESERVED6, /**< Reserved for future use.. */
|
||||||
|
SDL_EVENT_RESERVED7, /**< Reserved for future use.. */
|
||||||
|
/** Events SDL_USEREVENT through SDL_MAXEVENTS-1 are for your use */
|
||||||
|
SDL_USEREVENT = 24,
|
||||||
|
/** This last event is only for bounding internal arrays
|
||||||
|
* It is the number of bits in the event mask datatype -- Uint32
|
||||||
|
*/
|
||||||
|
SDL_NUMEVENTS = 32
|
||||||
|
} SDL_EventType;
|
||||||
|
|
||||||
|
/** @name Predefined event masks */
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_EVENTMASK(X) (1<<(X))
|
||||||
|
typedef enum {
|
||||||
|
SDL_ACTIVEEVENTMASK = SDL_EVENTMASK(SDL_ACTIVEEVENT),
|
||||||
|
SDL_KEYDOWNMASK = SDL_EVENTMASK(SDL_KEYDOWN),
|
||||||
|
SDL_KEYUPMASK = SDL_EVENTMASK(SDL_KEYUP),
|
||||||
|
SDL_KEYEVENTMASK = SDL_EVENTMASK(SDL_KEYDOWN)|
|
||||||
|
SDL_EVENTMASK(SDL_KEYUP),
|
||||||
|
SDL_MOUSEMOTIONMASK = SDL_EVENTMASK(SDL_MOUSEMOTION),
|
||||||
|
SDL_MOUSEBUTTONDOWNMASK = SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN),
|
||||||
|
SDL_MOUSEBUTTONUPMASK = SDL_EVENTMASK(SDL_MOUSEBUTTONUP),
|
||||||
|
SDL_MOUSEEVENTMASK = SDL_EVENTMASK(SDL_MOUSEMOTION)|
|
||||||
|
SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN)|
|
||||||
|
SDL_EVENTMASK(SDL_MOUSEBUTTONUP),
|
||||||
|
SDL_JOYAXISMOTIONMASK = SDL_EVENTMASK(SDL_JOYAXISMOTION),
|
||||||
|
SDL_JOYBALLMOTIONMASK = SDL_EVENTMASK(SDL_JOYBALLMOTION),
|
||||||
|
SDL_JOYHATMOTIONMASK = SDL_EVENTMASK(SDL_JOYHATMOTION),
|
||||||
|
SDL_JOYBUTTONDOWNMASK = SDL_EVENTMASK(SDL_JOYBUTTONDOWN),
|
||||||
|
SDL_JOYBUTTONUPMASK = SDL_EVENTMASK(SDL_JOYBUTTONUP),
|
||||||
|
SDL_JOYEVENTMASK = SDL_EVENTMASK(SDL_JOYAXISMOTION)|
|
||||||
|
SDL_EVENTMASK(SDL_JOYBALLMOTION)|
|
||||||
|
SDL_EVENTMASK(SDL_JOYHATMOTION)|
|
||||||
|
SDL_EVENTMASK(SDL_JOYBUTTONDOWN)|
|
||||||
|
SDL_EVENTMASK(SDL_JOYBUTTONUP),
|
||||||
|
SDL_VIDEORESIZEMASK = SDL_EVENTMASK(SDL_VIDEORESIZE),
|
||||||
|
SDL_VIDEOEXPOSEMASK = SDL_EVENTMASK(SDL_VIDEOEXPOSE),
|
||||||
|
SDL_QUITMASK = SDL_EVENTMASK(SDL_QUIT),
|
||||||
|
SDL_SYSWMEVENTMASK = SDL_EVENTMASK(SDL_SYSWMEVENT)
|
||||||
|
} SDL_EventMask ;
|
||||||
|
#define SDL_ALLEVENTS 0xFFFFFFFF
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** Application visibility event structure */
|
||||||
|
typedef struct SDL_ActiveEvent {
|
||||||
|
Uint8 type; /**< SDL_ACTIVEEVENT */
|
||||||
|
Uint8 gain; /**< Whether given states were gained or lost (1/0) */
|
||||||
|
Uint8 state; /**< A mask of the focus states */
|
||||||
|
} SDL_ActiveEvent;
|
||||||
|
|
||||||
|
/** Keyboard event structure */
|
||||||
|
typedef struct SDL_KeyboardEvent {
|
||||||
|
Uint8 type; /**< SDL_KEYDOWN or SDL_KEYUP */
|
||||||
|
Uint8 which; /**< The keyboard device index */
|
||||||
|
Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */
|
||||||
|
SDL_keysym keysym;
|
||||||
|
} SDL_KeyboardEvent;
|
||||||
|
|
||||||
|
/** Mouse motion event structure */
|
||||||
|
typedef struct SDL_MouseMotionEvent {
|
||||||
|
Uint8 type; /**< SDL_MOUSEMOTION */
|
||||||
|
Uint8 which; /**< The mouse device index */
|
||||||
|
Uint8 state; /**< The current button state */
|
||||||
|
Uint16 x, y; /**< The X/Y coordinates of the mouse */
|
||||||
|
Sint16 xrel; /**< The relative motion in the X direction */
|
||||||
|
Sint16 yrel; /**< The relative motion in the Y direction */
|
||||||
|
} SDL_MouseMotionEvent;
|
||||||
|
|
||||||
|
/** Mouse button event structure */
|
||||||
|
typedef struct SDL_MouseButtonEvent {
|
||||||
|
Uint8 type; /**< SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP */
|
||||||
|
Uint8 which; /**< The mouse device index */
|
||||||
|
Uint8 button; /**< The mouse button index */
|
||||||
|
Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */
|
||||||
|
Uint16 x, y; /**< The X/Y coordinates of the mouse at press time */
|
||||||
|
} SDL_MouseButtonEvent;
|
||||||
|
|
||||||
|
/** Joystick axis motion event structure */
|
||||||
|
typedef struct SDL_JoyAxisEvent {
|
||||||
|
Uint8 type; /**< SDL_JOYAXISMOTION */
|
||||||
|
Uint8 which; /**< The joystick device index */
|
||||||
|
Uint8 axis; /**< The joystick axis index */
|
||||||
|
Sint16 value; /**< The axis value (range: -32768 to 32767) */
|
||||||
|
} SDL_JoyAxisEvent;
|
||||||
|
|
||||||
|
/** Joystick trackball motion event structure */
|
||||||
|
typedef struct SDL_JoyBallEvent {
|
||||||
|
Uint8 type; /**< SDL_JOYBALLMOTION */
|
||||||
|
Uint8 which; /**< The joystick device index */
|
||||||
|
Uint8 ball; /**< The joystick trackball index */
|
||||||
|
Sint16 xrel; /**< The relative motion in the X direction */
|
||||||
|
Sint16 yrel; /**< The relative motion in the Y direction */
|
||||||
|
} SDL_JoyBallEvent;
|
||||||
|
|
||||||
|
/** Joystick hat position change event structure */
|
||||||
|
typedef struct SDL_JoyHatEvent {
|
||||||
|
Uint8 type; /**< SDL_JOYHATMOTION */
|
||||||
|
Uint8 which; /**< The joystick device index */
|
||||||
|
Uint8 hat; /**< The joystick hat index */
|
||||||
|
Uint8 value; /**< The hat position value:
|
||||||
|
* SDL_HAT_LEFTUP SDL_HAT_UP SDL_HAT_RIGHTUP
|
||||||
|
* SDL_HAT_LEFT SDL_HAT_CENTERED SDL_HAT_RIGHT
|
||||||
|
* SDL_HAT_LEFTDOWN SDL_HAT_DOWN SDL_HAT_RIGHTDOWN
|
||||||
|
* Note that zero means the POV is centered.
|
||||||
|
*/
|
||||||
|
} SDL_JoyHatEvent;
|
||||||
|
|
||||||
|
/** Joystick button event structure */
|
||||||
|
typedef struct SDL_JoyButtonEvent {
|
||||||
|
Uint8 type; /**< SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP */
|
||||||
|
Uint8 which; /**< The joystick device index */
|
||||||
|
Uint8 button; /**< The joystick button index */
|
||||||
|
Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */
|
||||||
|
} SDL_JoyButtonEvent;
|
||||||
|
|
||||||
|
/** The "window resized" event
|
||||||
|
* When you get this event, you are responsible for setting a new video
|
||||||
|
* mode with the new width and height.
|
||||||
|
*/
|
||||||
|
typedef struct SDL_ResizeEvent {
|
||||||
|
Uint8 type; /**< SDL_VIDEORESIZE */
|
||||||
|
int w; /**< New width */
|
||||||
|
int h; /**< New height */
|
||||||
|
} SDL_ResizeEvent;
|
||||||
|
|
||||||
|
/** The "screen redraw" event */
|
||||||
|
typedef struct SDL_ExposeEvent {
|
||||||
|
Uint8 type; /**< SDL_VIDEOEXPOSE */
|
||||||
|
} SDL_ExposeEvent;
|
||||||
|
|
||||||
|
/** The "quit requested" event */
|
||||||
|
typedef struct SDL_QuitEvent {
|
||||||
|
Uint8 type; /**< SDL_QUIT */
|
||||||
|
} SDL_QuitEvent;
|
||||||
|
|
||||||
|
/** A user-defined event type */
|
||||||
|
typedef struct SDL_UserEvent {
|
||||||
|
Uint8 type; /**< SDL_USEREVENT through SDL_NUMEVENTS-1 */
|
||||||
|
int code; /**< User defined event code */
|
||||||
|
void *data1; /**< User defined data pointer */
|
||||||
|
void *data2; /**< User defined data pointer */
|
||||||
|
} SDL_UserEvent;
|
||||||
|
|
||||||
|
/** If you want to use this event, you should include SDL_syswm.h */
|
||||||
|
struct SDL_SysWMmsg;
|
||||||
|
typedef struct SDL_SysWMmsg SDL_SysWMmsg;
|
||||||
|
typedef struct SDL_SysWMEvent {
|
||||||
|
Uint8 type;
|
||||||
|
SDL_SysWMmsg *msg;
|
||||||
|
} SDL_SysWMEvent;
|
||||||
|
|
||||||
|
/** General event structure */
|
||||||
|
typedef union SDL_Event {
|
||||||
|
Uint8 type;
|
||||||
|
SDL_ActiveEvent active;
|
||||||
|
SDL_KeyboardEvent key;
|
||||||
|
SDL_MouseMotionEvent motion;
|
||||||
|
SDL_MouseButtonEvent button;
|
||||||
|
SDL_JoyAxisEvent jaxis;
|
||||||
|
SDL_JoyBallEvent jball;
|
||||||
|
SDL_JoyHatEvent jhat;
|
||||||
|
SDL_JoyButtonEvent jbutton;
|
||||||
|
SDL_ResizeEvent resize;
|
||||||
|
SDL_ExposeEvent expose;
|
||||||
|
SDL_QuitEvent quit;
|
||||||
|
SDL_UserEvent user;
|
||||||
|
SDL_SysWMEvent syswm;
|
||||||
|
} SDL_Event;
|
||||||
|
|
||||||
|
|
||||||
|
/* Function prototypes */
|
||||||
|
|
||||||
|
/** Pumps the event loop, gathering events from the input devices.
|
||||||
|
* This function updates the event queue and internal input device state.
|
||||||
|
* This should only be run in the thread that sets the video mode.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_PumpEvents(void);
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
SDL_ADDEVENT,
|
||||||
|
SDL_PEEKEVENT,
|
||||||
|
SDL_GETEVENT
|
||||||
|
} SDL_eventaction;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks the event queue for messages and optionally returns them.
|
||||||
|
*
|
||||||
|
* If 'action' is SDL_ADDEVENT, up to 'numevents' events will be added to
|
||||||
|
* the back of the event queue.
|
||||||
|
* If 'action' is SDL_PEEKEVENT, up to 'numevents' events at the front
|
||||||
|
* of the event queue, matching 'mask', will be returned and will not
|
||||||
|
* be removed from the queue.
|
||||||
|
* If 'action' is SDL_GETEVENT, up to 'numevents' events at the front
|
||||||
|
* of the event queue, matching 'mask', will be returned and will be
|
||||||
|
* removed from the queue.
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
* This function returns the number of events actually stored, or -1
|
||||||
|
* if there was an error.
|
||||||
|
*
|
||||||
|
* This function is thread-safe.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event *events, int numevents,
|
||||||
|
SDL_eventaction action, Uint32 mask);
|
||||||
|
|
||||||
|
/** Polls for currently pending events, and returns 1 if there are any pending
|
||||||
|
* events, or 0 if there are none available. If 'event' is not NULL, the next
|
||||||
|
* event is removed from the queue and stored in that area.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_PollEvent(SDL_Event *event);
|
||||||
|
|
||||||
|
/** Waits indefinitely for the next available event, returning 1, or 0 if there
|
||||||
|
* was an error while waiting for events. If 'event' is not NULL, the next
|
||||||
|
* event is removed from the queue and stored in that area.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_WaitEvent(SDL_Event *event);
|
||||||
|
|
||||||
|
/** Add an event to the event queue.
|
||||||
|
* This function returns 0 on success, or -1 if the event queue was full
|
||||||
|
* or there was some other error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_PushEvent(SDL_Event *event);
|
||||||
|
|
||||||
|
/** @name Event Filtering */
|
||||||
|
/*@{*/
|
||||||
|
typedef int (SDLCALL *SDL_EventFilter)(const SDL_Event *event);
|
||||||
|
/**
|
||||||
|
* This function sets up a filter to process all events before they
|
||||||
|
* change internal state and are posted to the internal event queue.
|
||||||
|
*
|
||||||
|
* The filter is protypted as:
|
||||||
|
* @code typedef int (SDLCALL *SDL_EventFilter)(const SDL_Event *event); @endcode
|
||||||
|
*
|
||||||
|
* If the filter returns 1, then the event will be added to the internal queue.
|
||||||
|
* If it returns 0, then the event will be dropped from the queue, but the
|
||||||
|
* internal state will still be updated. This allows selective filtering of
|
||||||
|
* dynamically arriving events.
|
||||||
|
*
|
||||||
|
* @warning Be very careful of what you do in the event filter function, as
|
||||||
|
* it may run in a different thread!
|
||||||
|
*
|
||||||
|
* There is one caveat when dealing with the SDL_QUITEVENT event type. The
|
||||||
|
* event filter is only called when the window manager desires to close the
|
||||||
|
* application window. If the event filter returns 1, then the window will
|
||||||
|
* be closed, otherwise the window will remain open if possible.
|
||||||
|
* If the quit event is generated by an interrupt signal, it will bypass the
|
||||||
|
* internal queue and be delivered to the application at the next event poll.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_SetEventFilter(SDL_EventFilter filter);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return the current event filter - can be used to "chain" filters.
|
||||||
|
* If there is no event filter set, this function returns NULL.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_EventFilter SDLCALL SDL_GetEventFilter(void);
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Event State */
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_QUERY -1
|
||||||
|
#define SDL_IGNORE 0
|
||||||
|
#define SDL_DISABLE 0
|
||||||
|
#define SDL_ENABLE 1
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function allows you to set the state of processing certain events.
|
||||||
|
* If 'state' is set to SDL_IGNORE, that event will be automatically dropped
|
||||||
|
* from the event queue and will not event be filtered.
|
||||||
|
* If 'state' is set to SDL_ENABLE, that event will be processed normally.
|
||||||
|
* If 'state' is set to SDL_QUERY, SDL_EventState() will return the
|
||||||
|
* current processing state of the specified event.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Uint8 SDLCALL SDL_EventState(Uint8 type, int state);
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_events_h */
|
|
@ -0,0 +1,28 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_getenv.h
|
||||||
|
* @deprecated Use SDL_stdinc.h instead
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* DEPRECATED */
|
||||||
|
#include "SDL_stdinc.h"
|
|
@ -0,0 +1,187 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_joystick.h
|
||||||
|
* Include file for SDL joystick event handling
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_joystick_h
|
||||||
|
#define _SDL_joystick_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** @file SDL_joystick.h
|
||||||
|
* @note In order to use these functions, SDL_Init() must have been called
|
||||||
|
* with the SDL_INIT_JOYSTICK flag. This causes SDL to scan the system
|
||||||
|
* for joysticks, and load appropriate drivers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** The joystick structure used to identify an SDL joystick */
|
||||||
|
struct _SDL_Joystick;
|
||||||
|
typedef struct _SDL_Joystick SDL_Joystick;
|
||||||
|
|
||||||
|
/* Function prototypes */
|
||||||
|
/**
|
||||||
|
* Count the number of joysticks attached to the system
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_NumJoysticks(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the implementation dependent name of a joystick.
|
||||||
|
*
|
||||||
|
* This can be called before any joysticks are opened.
|
||||||
|
* If no name can be found, this function returns NULL.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC const char * SDLCALL SDL_JoystickName(int device_index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Open a joystick for use.
|
||||||
|
*
|
||||||
|
* @param[in] device_index
|
||||||
|
* The index passed as an argument refers to
|
||||||
|
* the N'th joystick on the system. This index is the value which will
|
||||||
|
* identify this joystick in future joystick events.
|
||||||
|
*
|
||||||
|
* @return This function returns a joystick identifier, or NULL if an error occurred.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_Joystick * SDLCALL SDL_JoystickOpen(int device_index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns 1 if the joystick has been opened, or 0 if it has not.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_JoystickOpened(int device_index);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the device index of an opened joystick.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_JoystickIndex(SDL_Joystick *joystick);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of general axis controls on a joystick
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_JoystickNumAxes(SDL_Joystick *joystick);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of trackballs on a joystick
|
||||||
|
*
|
||||||
|
* Joystick trackballs have only relative motion events associated
|
||||||
|
* with them and their state cannot be polled.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_JoystickNumBalls(SDL_Joystick *joystick);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of POV hats on a joystick
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_JoystickNumHats(SDL_Joystick *joystick);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of buttons on a joystick
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_JoystickNumButtons(SDL_Joystick *joystick);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the current state of the open joysticks.
|
||||||
|
*
|
||||||
|
* This is called automatically by the event loop if any joystick
|
||||||
|
* events are enabled.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_JoystickUpdate(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Enable/disable joystick event polling.
|
||||||
|
*
|
||||||
|
* If joystick events are disabled, you must call SDL_JoystickUpdate()
|
||||||
|
* yourself and check the state of the joystick when you want joystick
|
||||||
|
* information.
|
||||||
|
*
|
||||||
|
* @param[in] state The state can be one of SDL_QUERY, SDL_ENABLE or SDL_IGNORE.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_JoystickEventState(int state);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current state of an axis control on a joystick
|
||||||
|
*
|
||||||
|
* @param[in] axis The axis indices start at index 0.
|
||||||
|
*
|
||||||
|
* @return The state is a value ranging from -32768 to 32767.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick *joystick, int axis);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Hat Positions
|
||||||
|
* The return value of SDL_JoystickGetHat() is one of the following positions:
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_HAT_CENTERED 0x00
|
||||||
|
#define SDL_HAT_UP 0x01
|
||||||
|
#define SDL_HAT_RIGHT 0x02
|
||||||
|
#define SDL_HAT_DOWN 0x04
|
||||||
|
#define SDL_HAT_LEFT 0x08
|
||||||
|
#define SDL_HAT_RIGHTUP (SDL_HAT_RIGHT|SDL_HAT_UP)
|
||||||
|
#define SDL_HAT_RIGHTDOWN (SDL_HAT_RIGHT|SDL_HAT_DOWN)
|
||||||
|
#define SDL_HAT_LEFTUP (SDL_HAT_LEFT|SDL_HAT_UP)
|
||||||
|
#define SDL_HAT_LEFTDOWN (SDL_HAT_LEFT|SDL_HAT_DOWN)
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current state of a POV hat on a joystick
|
||||||
|
*
|
||||||
|
* @param[in] hat The hat indices start at index 0.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetHat(SDL_Joystick *joystick, int hat);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the ball axis change since the last poll
|
||||||
|
*
|
||||||
|
* @param[in] ball The ball indices start at index 0.
|
||||||
|
*
|
||||||
|
* @return This returns 0, or -1 if you passed it invalid parameters.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_JoystickGetBall(SDL_Joystick *joystick, int ball, int *dx, int *dy);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current state of a button on a joystick
|
||||||
|
*
|
||||||
|
* @param[in] button The button indices start at index 0.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetButton(SDL_Joystick *joystick, int button);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Close a joystick previously opened with SDL_JoystickOpen()
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_JoystickClose(SDL_Joystick *joystick);
|
||||||
|
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_joystick_h */
|
|
@ -0,0 +1,135 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_keyboard.h
|
||||||
|
* Include file for SDL keyboard event handling
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_keyboard_h
|
||||||
|
#define _SDL_keyboard_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
#include "SDL_keysym.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** Keysym structure
|
||||||
|
*
|
||||||
|
* - The scancode is hardware dependent, and should not be used by general
|
||||||
|
* applications. If no hardware scancode is available, it will be 0.
|
||||||
|
*
|
||||||
|
* - The 'unicode' translated character is only available when character
|
||||||
|
* translation is enabled by the SDL_EnableUNICODE() API. If non-zero,
|
||||||
|
* this is a UNICODE character corresponding to the keypress. If the
|
||||||
|
* high 9 bits of the character are 0, then this maps to the equivalent
|
||||||
|
* ASCII character:
|
||||||
|
* @code
|
||||||
|
* char ch;
|
||||||
|
* if ( (keysym.unicode & 0xFF80) == 0 ) {
|
||||||
|
* ch = keysym.unicode & 0x7F;
|
||||||
|
* } else {
|
||||||
|
* An international character..
|
||||||
|
* }
|
||||||
|
* @endcode
|
||||||
|
*/
|
||||||
|
typedef struct SDL_keysym {
|
||||||
|
Uint8 scancode; /**< hardware specific scancode */
|
||||||
|
SDLKey sym; /**< SDL virtual keysym */
|
||||||
|
SDLMod mod; /**< current key modifiers */
|
||||||
|
Uint16 unicode; /**< translated character */
|
||||||
|
} SDL_keysym;
|
||||||
|
|
||||||
|
/** This is the mask which refers to all hotkey bindings */
|
||||||
|
#define SDL_ALL_HOTKEYS 0xFFFFFFFF
|
||||||
|
|
||||||
|
/* Function prototypes */
|
||||||
|
/**
|
||||||
|
* Enable/Disable UNICODE translation of keyboard input.
|
||||||
|
*
|
||||||
|
* This translation has some overhead, so translation defaults off.
|
||||||
|
*
|
||||||
|
* @param[in] enable
|
||||||
|
* If 'enable' is 1, translation is enabled.
|
||||||
|
* If 'enable' is 0, translation is disabled.
|
||||||
|
* If 'enable' is -1, the translation state is not changed.
|
||||||
|
*
|
||||||
|
* @return It returns the previous state of keyboard translation.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_EnableUNICODE(int enable);
|
||||||
|
|
||||||
|
#define SDL_DEFAULT_REPEAT_DELAY 500
|
||||||
|
#define SDL_DEFAULT_REPEAT_INTERVAL 30
|
||||||
|
/**
|
||||||
|
* Enable/Disable keyboard repeat. Keyboard repeat defaults to off.
|
||||||
|
*
|
||||||
|
* @param[in] delay
|
||||||
|
* 'delay' is the initial delay in ms between the time when a key is
|
||||||
|
* pressed, and keyboard repeat begins.
|
||||||
|
*
|
||||||
|
* @param[in] interval
|
||||||
|
* 'interval' is the time in ms between keyboard repeat events.
|
||||||
|
*
|
||||||
|
* If 'delay' is set to 0, keyboard repeat is disabled.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_EnableKeyRepeat(int delay, int interval);
|
||||||
|
extern DECLSPEC void SDLCALL SDL_GetKeyRepeat(int *delay, int *interval);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a snapshot of the current state of the keyboard.
|
||||||
|
* Returns an array of keystates, indexed by the SDLK_* syms.
|
||||||
|
* Usage:
|
||||||
|
* @code
|
||||||
|
* Uint8 *keystate = SDL_GetKeyState(NULL);
|
||||||
|
* if ( keystate[SDLK_RETURN] ) //... \<RETURN> is pressed.
|
||||||
|
* @endcode
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Uint8 * SDLCALL SDL_GetKeyState(int *numkeys);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the current key modifier state
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDLMod SDLCALL SDL_GetModState(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the current key modifier state.
|
||||||
|
* This does not change the keyboard state, only the key modifier flags.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_SetModState(SDLMod modstate);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the name of an SDL virtual keysym
|
||||||
|
*/
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_GetKeyName(SDLKey key);
|
||||||
|
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_keyboard_h */
|
|
@ -0,0 +1,326 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_keysym_h
|
||||||
|
#define _SDL_keysym_h
|
||||||
|
|
||||||
|
/** What we really want is a mapping of every raw key on the keyboard.
|
||||||
|
* To support international keyboards, we use the range 0xA1 - 0xFF
|
||||||
|
* as international virtual keycodes. We'll follow in the footsteps of X11...
|
||||||
|
* @brief The names of the keys
|
||||||
|
*/
|
||||||
|
typedef enum {
|
||||||
|
/** @name ASCII mapped keysyms
|
||||||
|
* The keyboard syms have been cleverly chosen to map to ASCII
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
SDLK_UNKNOWN = 0,
|
||||||
|
SDLK_FIRST = 0,
|
||||||
|
SDLK_BACKSPACE = 8,
|
||||||
|
SDLK_TAB = 9,
|
||||||
|
SDLK_CLEAR = 12,
|
||||||
|
SDLK_RETURN = 13,
|
||||||
|
SDLK_PAUSE = 19,
|
||||||
|
SDLK_ESCAPE = 27,
|
||||||
|
SDLK_SPACE = 32,
|
||||||
|
SDLK_EXCLAIM = 33,
|
||||||
|
SDLK_QUOTEDBL = 34,
|
||||||
|
SDLK_HASH = 35,
|
||||||
|
SDLK_DOLLAR = 36,
|
||||||
|
SDLK_AMPERSAND = 38,
|
||||||
|
SDLK_QUOTE = 39,
|
||||||
|
SDLK_LEFTPAREN = 40,
|
||||||
|
SDLK_RIGHTPAREN = 41,
|
||||||
|
SDLK_ASTERISK = 42,
|
||||||
|
SDLK_PLUS = 43,
|
||||||
|
SDLK_COMMA = 44,
|
||||||
|
SDLK_MINUS = 45,
|
||||||
|
SDLK_PERIOD = 46,
|
||||||
|
SDLK_SLASH = 47,
|
||||||
|
SDLK_0 = 48,
|
||||||
|
SDLK_1 = 49,
|
||||||
|
SDLK_2 = 50,
|
||||||
|
SDLK_3 = 51,
|
||||||
|
SDLK_4 = 52,
|
||||||
|
SDLK_5 = 53,
|
||||||
|
SDLK_6 = 54,
|
||||||
|
SDLK_7 = 55,
|
||||||
|
SDLK_8 = 56,
|
||||||
|
SDLK_9 = 57,
|
||||||
|
SDLK_COLON = 58,
|
||||||
|
SDLK_SEMICOLON = 59,
|
||||||
|
SDLK_LESS = 60,
|
||||||
|
SDLK_EQUALS = 61,
|
||||||
|
SDLK_GREATER = 62,
|
||||||
|
SDLK_QUESTION = 63,
|
||||||
|
SDLK_AT = 64,
|
||||||
|
/*
|
||||||
|
Skip uppercase letters
|
||||||
|
*/
|
||||||
|
SDLK_LEFTBRACKET = 91,
|
||||||
|
SDLK_BACKSLASH = 92,
|
||||||
|
SDLK_RIGHTBRACKET = 93,
|
||||||
|
SDLK_CARET = 94,
|
||||||
|
SDLK_UNDERSCORE = 95,
|
||||||
|
SDLK_BACKQUOTE = 96,
|
||||||
|
SDLK_a = 97,
|
||||||
|
SDLK_b = 98,
|
||||||
|
SDLK_c = 99,
|
||||||
|
SDLK_d = 100,
|
||||||
|
SDLK_e = 101,
|
||||||
|
SDLK_f = 102,
|
||||||
|
SDLK_g = 103,
|
||||||
|
SDLK_h = 104,
|
||||||
|
SDLK_i = 105,
|
||||||
|
SDLK_j = 106,
|
||||||
|
SDLK_k = 107,
|
||||||
|
SDLK_l = 108,
|
||||||
|
SDLK_m = 109,
|
||||||
|
SDLK_n = 110,
|
||||||
|
SDLK_o = 111,
|
||||||
|
SDLK_p = 112,
|
||||||
|
SDLK_q = 113,
|
||||||
|
SDLK_r = 114,
|
||||||
|
SDLK_s = 115,
|
||||||
|
SDLK_t = 116,
|
||||||
|
SDLK_u = 117,
|
||||||
|
SDLK_v = 118,
|
||||||
|
SDLK_w = 119,
|
||||||
|
SDLK_x = 120,
|
||||||
|
SDLK_y = 121,
|
||||||
|
SDLK_z = 122,
|
||||||
|
SDLK_DELETE = 127,
|
||||||
|
/* End of ASCII mapped keysyms */
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name International keyboard syms */
|
||||||
|
/*@{*/
|
||||||
|
SDLK_WORLD_0 = 160, /* 0xA0 */
|
||||||
|
SDLK_WORLD_1 = 161,
|
||||||
|
SDLK_WORLD_2 = 162,
|
||||||
|
SDLK_WORLD_3 = 163,
|
||||||
|
SDLK_WORLD_4 = 164,
|
||||||
|
SDLK_WORLD_5 = 165,
|
||||||
|
SDLK_WORLD_6 = 166,
|
||||||
|
SDLK_WORLD_7 = 167,
|
||||||
|
SDLK_WORLD_8 = 168,
|
||||||
|
SDLK_WORLD_9 = 169,
|
||||||
|
SDLK_WORLD_10 = 170,
|
||||||
|
SDLK_WORLD_11 = 171,
|
||||||
|
SDLK_WORLD_12 = 172,
|
||||||
|
SDLK_WORLD_13 = 173,
|
||||||
|
SDLK_WORLD_14 = 174,
|
||||||
|
SDLK_WORLD_15 = 175,
|
||||||
|
SDLK_WORLD_16 = 176,
|
||||||
|
SDLK_WORLD_17 = 177,
|
||||||
|
SDLK_WORLD_18 = 178,
|
||||||
|
SDLK_WORLD_19 = 179,
|
||||||
|
SDLK_WORLD_20 = 180,
|
||||||
|
SDLK_WORLD_21 = 181,
|
||||||
|
SDLK_WORLD_22 = 182,
|
||||||
|
SDLK_WORLD_23 = 183,
|
||||||
|
SDLK_WORLD_24 = 184,
|
||||||
|
SDLK_WORLD_25 = 185,
|
||||||
|
SDLK_WORLD_26 = 186,
|
||||||
|
SDLK_WORLD_27 = 187,
|
||||||
|
SDLK_WORLD_28 = 188,
|
||||||
|
SDLK_WORLD_29 = 189,
|
||||||
|
SDLK_WORLD_30 = 190,
|
||||||
|
SDLK_WORLD_31 = 191,
|
||||||
|
SDLK_WORLD_32 = 192,
|
||||||
|
SDLK_WORLD_33 = 193,
|
||||||
|
SDLK_WORLD_34 = 194,
|
||||||
|
SDLK_WORLD_35 = 195,
|
||||||
|
SDLK_WORLD_36 = 196,
|
||||||
|
SDLK_WORLD_37 = 197,
|
||||||
|
SDLK_WORLD_38 = 198,
|
||||||
|
SDLK_WORLD_39 = 199,
|
||||||
|
SDLK_WORLD_40 = 200,
|
||||||
|
SDLK_WORLD_41 = 201,
|
||||||
|
SDLK_WORLD_42 = 202,
|
||||||
|
SDLK_WORLD_43 = 203,
|
||||||
|
SDLK_WORLD_44 = 204,
|
||||||
|
SDLK_WORLD_45 = 205,
|
||||||
|
SDLK_WORLD_46 = 206,
|
||||||
|
SDLK_WORLD_47 = 207,
|
||||||
|
SDLK_WORLD_48 = 208,
|
||||||
|
SDLK_WORLD_49 = 209,
|
||||||
|
SDLK_WORLD_50 = 210,
|
||||||
|
SDLK_WORLD_51 = 211,
|
||||||
|
SDLK_WORLD_52 = 212,
|
||||||
|
SDLK_WORLD_53 = 213,
|
||||||
|
SDLK_WORLD_54 = 214,
|
||||||
|
SDLK_WORLD_55 = 215,
|
||||||
|
SDLK_WORLD_56 = 216,
|
||||||
|
SDLK_WORLD_57 = 217,
|
||||||
|
SDLK_WORLD_58 = 218,
|
||||||
|
SDLK_WORLD_59 = 219,
|
||||||
|
SDLK_WORLD_60 = 220,
|
||||||
|
SDLK_WORLD_61 = 221,
|
||||||
|
SDLK_WORLD_62 = 222,
|
||||||
|
SDLK_WORLD_63 = 223,
|
||||||
|
SDLK_WORLD_64 = 224,
|
||||||
|
SDLK_WORLD_65 = 225,
|
||||||
|
SDLK_WORLD_66 = 226,
|
||||||
|
SDLK_WORLD_67 = 227,
|
||||||
|
SDLK_WORLD_68 = 228,
|
||||||
|
SDLK_WORLD_69 = 229,
|
||||||
|
SDLK_WORLD_70 = 230,
|
||||||
|
SDLK_WORLD_71 = 231,
|
||||||
|
SDLK_WORLD_72 = 232,
|
||||||
|
SDLK_WORLD_73 = 233,
|
||||||
|
SDLK_WORLD_74 = 234,
|
||||||
|
SDLK_WORLD_75 = 235,
|
||||||
|
SDLK_WORLD_76 = 236,
|
||||||
|
SDLK_WORLD_77 = 237,
|
||||||
|
SDLK_WORLD_78 = 238,
|
||||||
|
SDLK_WORLD_79 = 239,
|
||||||
|
SDLK_WORLD_80 = 240,
|
||||||
|
SDLK_WORLD_81 = 241,
|
||||||
|
SDLK_WORLD_82 = 242,
|
||||||
|
SDLK_WORLD_83 = 243,
|
||||||
|
SDLK_WORLD_84 = 244,
|
||||||
|
SDLK_WORLD_85 = 245,
|
||||||
|
SDLK_WORLD_86 = 246,
|
||||||
|
SDLK_WORLD_87 = 247,
|
||||||
|
SDLK_WORLD_88 = 248,
|
||||||
|
SDLK_WORLD_89 = 249,
|
||||||
|
SDLK_WORLD_90 = 250,
|
||||||
|
SDLK_WORLD_91 = 251,
|
||||||
|
SDLK_WORLD_92 = 252,
|
||||||
|
SDLK_WORLD_93 = 253,
|
||||||
|
SDLK_WORLD_94 = 254,
|
||||||
|
SDLK_WORLD_95 = 255, /* 0xFF */
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Numeric keypad */
|
||||||
|
/*@{*/
|
||||||
|
SDLK_KP0 = 256,
|
||||||
|
SDLK_KP1 = 257,
|
||||||
|
SDLK_KP2 = 258,
|
||||||
|
SDLK_KP3 = 259,
|
||||||
|
SDLK_KP4 = 260,
|
||||||
|
SDLK_KP5 = 261,
|
||||||
|
SDLK_KP6 = 262,
|
||||||
|
SDLK_KP7 = 263,
|
||||||
|
SDLK_KP8 = 264,
|
||||||
|
SDLK_KP9 = 265,
|
||||||
|
SDLK_KP_PERIOD = 266,
|
||||||
|
SDLK_KP_DIVIDE = 267,
|
||||||
|
SDLK_KP_MULTIPLY = 268,
|
||||||
|
SDLK_KP_MINUS = 269,
|
||||||
|
SDLK_KP_PLUS = 270,
|
||||||
|
SDLK_KP_ENTER = 271,
|
||||||
|
SDLK_KP_EQUALS = 272,
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Arrows + Home/End pad */
|
||||||
|
/*@{*/
|
||||||
|
SDLK_UP = 273,
|
||||||
|
SDLK_DOWN = 274,
|
||||||
|
SDLK_RIGHT = 275,
|
||||||
|
SDLK_LEFT = 276,
|
||||||
|
SDLK_INSERT = 277,
|
||||||
|
SDLK_HOME = 278,
|
||||||
|
SDLK_END = 279,
|
||||||
|
SDLK_PAGEUP = 280,
|
||||||
|
SDLK_PAGEDOWN = 281,
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Function keys */
|
||||||
|
/*@{*/
|
||||||
|
SDLK_F1 = 282,
|
||||||
|
SDLK_F2 = 283,
|
||||||
|
SDLK_F3 = 284,
|
||||||
|
SDLK_F4 = 285,
|
||||||
|
SDLK_F5 = 286,
|
||||||
|
SDLK_F6 = 287,
|
||||||
|
SDLK_F7 = 288,
|
||||||
|
SDLK_F8 = 289,
|
||||||
|
SDLK_F9 = 290,
|
||||||
|
SDLK_F10 = 291,
|
||||||
|
SDLK_F11 = 292,
|
||||||
|
SDLK_F12 = 293,
|
||||||
|
SDLK_F13 = 294,
|
||||||
|
SDLK_F14 = 295,
|
||||||
|
SDLK_F15 = 296,
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Key state modifier keys */
|
||||||
|
/*@{*/
|
||||||
|
SDLK_NUMLOCK = 300,
|
||||||
|
SDLK_CAPSLOCK = 301,
|
||||||
|
SDLK_SCROLLOCK = 302,
|
||||||
|
SDLK_RSHIFT = 303,
|
||||||
|
SDLK_LSHIFT = 304,
|
||||||
|
SDLK_RCTRL = 305,
|
||||||
|
SDLK_LCTRL = 306,
|
||||||
|
SDLK_RALT = 307,
|
||||||
|
SDLK_LALT = 308,
|
||||||
|
SDLK_RMETA = 309,
|
||||||
|
SDLK_LMETA = 310,
|
||||||
|
SDLK_LSUPER = 311, /**< Left "Windows" key */
|
||||||
|
SDLK_RSUPER = 312, /**< Right "Windows" key */
|
||||||
|
SDLK_MODE = 313, /**< "Alt Gr" key */
|
||||||
|
SDLK_COMPOSE = 314, /**< Multi-key compose key */
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Miscellaneous function keys */
|
||||||
|
/*@{*/
|
||||||
|
SDLK_HELP = 315,
|
||||||
|
SDLK_PRINT = 316,
|
||||||
|
SDLK_SYSREQ = 317,
|
||||||
|
SDLK_BREAK = 318,
|
||||||
|
SDLK_MENU = 319,
|
||||||
|
SDLK_POWER = 320, /**< Power Macintosh power key */
|
||||||
|
SDLK_EURO = 321, /**< Some european keyboards */
|
||||||
|
SDLK_UNDO = 322, /**< Atari keyboard has Undo */
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* Add any other keys here */
|
||||||
|
|
||||||
|
SDLK_LAST
|
||||||
|
} SDLKey;
|
||||||
|
|
||||||
|
/** Enumeration of valid key mods (possibly OR'd together) */
|
||||||
|
typedef enum {
|
||||||
|
KMOD_NONE = 0x0000,
|
||||||
|
KMOD_LSHIFT= 0x0001,
|
||||||
|
KMOD_RSHIFT= 0x0002,
|
||||||
|
KMOD_LCTRL = 0x0040,
|
||||||
|
KMOD_RCTRL = 0x0080,
|
||||||
|
KMOD_LALT = 0x0100,
|
||||||
|
KMOD_RALT = 0x0200,
|
||||||
|
KMOD_LMETA = 0x0400,
|
||||||
|
KMOD_RMETA = 0x0800,
|
||||||
|
KMOD_NUM = 0x1000,
|
||||||
|
KMOD_CAPS = 0x2000,
|
||||||
|
KMOD_MODE = 0x4000,
|
||||||
|
KMOD_RESERVED = 0x8000
|
||||||
|
} SDLMod;
|
||||||
|
|
||||||
|
#define KMOD_CTRL (KMOD_LCTRL|KMOD_RCTRL)
|
||||||
|
#define KMOD_SHIFT (KMOD_LSHIFT|KMOD_RSHIFT)
|
||||||
|
#define KMOD_ALT (KMOD_LALT|KMOD_RALT)
|
||||||
|
#define KMOD_META (KMOD_LMETA|KMOD_RMETA)
|
||||||
|
|
||||||
|
#endif /* _SDL_keysym_h */
|
|
@ -0,0 +1,78 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_loadso.h
|
||||||
|
* System dependent library loading routines
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_loadso.h
|
||||||
|
* Some things to keep in mind:
|
||||||
|
* - These functions only work on C function names. Other languages may
|
||||||
|
* have name mangling and intrinsic language support that varies from
|
||||||
|
* compiler to compiler.
|
||||||
|
* - Make sure you declare your function pointers with the same calling
|
||||||
|
* convention as the actual library function. Your code will crash
|
||||||
|
* mysteriously if you do not do this.
|
||||||
|
* - Avoid namespace collisions. If you load a symbol from the library,
|
||||||
|
* it is not defined whether or not it goes into the global symbol
|
||||||
|
* namespace for the application. If it does and it conflicts with
|
||||||
|
* symbols in your code or other shared libraries, you will not get
|
||||||
|
* the results you expect. :)
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef _SDL_loadso_h
|
||||||
|
#define _SDL_loadso_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function dynamically loads a shared object and returns a pointer
|
||||||
|
* to the object handle (or NULL if there was an error).
|
||||||
|
* The 'sofile' parameter is a system dependent name of the object file.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void * SDLCALL SDL_LoadObject(const char *sofile);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Given an object handle, this function looks up the address of the
|
||||||
|
* named function in the shared object and returns it. This address
|
||||||
|
* is no longer valid after calling SDL_UnloadObject().
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void * SDLCALL SDL_LoadFunction(void *handle, const char *name);
|
||||||
|
|
||||||
|
/** Unload a shared object from memory */
|
||||||
|
extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle);
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_loadso_h */
|
|
@ -0,0 +1,106 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_main_h
|
||||||
|
#define _SDL_main_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
|
||||||
|
/** @file SDL_main.h
|
||||||
|
* Redefine main() on Win32 and MacOS so that it is called by winmain.c
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if defined(__WIN32__) || \
|
||||||
|
(defined(__MWERKS__) && !defined(__BEOS__)) || \
|
||||||
|
defined(__MACOS__) || defined(__MACOSX__) || \
|
||||||
|
defined(__SYMBIAN32__) || defined(QWS)
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define C_LINKAGE "C"
|
||||||
|
#else
|
||||||
|
#define C_LINKAGE
|
||||||
|
#endif /* __cplusplus */
|
||||||
|
|
||||||
|
/** The application's main() function must be called with C linkage,
|
||||||
|
* and should be declared like this:
|
||||||
|
* @code
|
||||||
|
* #ifdef __cplusplus
|
||||||
|
* extern "C"
|
||||||
|
* #endif
|
||||||
|
* int main(int argc, char *argv[])
|
||||||
|
* {
|
||||||
|
* }
|
||||||
|
* @endcode
|
||||||
|
*/
|
||||||
|
#define main SDL_main
|
||||||
|
|
||||||
|
/** The prototype for the application's main() function */
|
||||||
|
extern C_LINKAGE int SDL_main(int argc, char *argv[]);
|
||||||
|
|
||||||
|
|
||||||
|
/** @name From the SDL library code -- needed for registering the app on Win32 */
|
||||||
|
/*@{*/
|
||||||
|
#ifdef __WIN32__
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** This should be called from your WinMain() function, if any */
|
||||||
|
extern DECLSPEC void SDLCALL SDL_SetModuleHandle(void *hInst);
|
||||||
|
/** This can also be called, but is no longer necessary */
|
||||||
|
extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style, void *hInst);
|
||||||
|
/** This can also be called, but is no longer necessary (SDL_Quit calls it) */
|
||||||
|
extern DECLSPEC void SDLCALL SDL_UnregisterApp(void);
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
#endif
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name From the SDL library code -- needed for registering QuickDraw on MacOS */
|
||||||
|
/*@{*/
|
||||||
|
#if defined(__MACOS__)
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** Forward declaration so we don't need to include QuickDraw.h */
|
||||||
|
struct QDGlobals;
|
||||||
|
|
||||||
|
/** This should be called from your main() function, if any */
|
||||||
|
extern DECLSPEC void SDLCALL SDL_InitQuickDraw(struct QDGlobals *the_qd);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
#endif
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
#endif /* Need to redefine main()? */
|
||||||
|
|
||||||
|
#endif /* _SDL_main_h */
|
|
@ -0,0 +1,143 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_mouse.h
|
||||||
|
* Include file for SDL mouse event handling
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_mouse_h
|
||||||
|
#define _SDL_mouse_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
#include "SDL_video.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct WMcursor WMcursor; /**< Implementation dependent */
|
||||||
|
typedef struct SDL_Cursor {
|
||||||
|
SDL_Rect area; /**< The area of the mouse cursor */
|
||||||
|
Sint16 hot_x, hot_y; /**< The "tip" of the cursor */
|
||||||
|
Uint8 *data; /**< B/W cursor data */
|
||||||
|
Uint8 *mask; /**< B/W cursor mask */
|
||||||
|
Uint8 *save[2]; /**< Place to save cursor area */
|
||||||
|
WMcursor *wm_cursor; /**< Window-manager cursor */
|
||||||
|
} SDL_Cursor;
|
||||||
|
|
||||||
|
/* Function prototypes */
|
||||||
|
/**
|
||||||
|
* Retrieve the current state of the mouse.
|
||||||
|
* The current button state is returned as a button bitmask, which can
|
||||||
|
* be tested using the SDL_BUTTON(X) macros, and x and y are set to the
|
||||||
|
* current mouse cursor position. You can pass NULL for either x or y.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Uint8 SDLCALL SDL_GetMouseState(int *x, int *y);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the current state of the mouse.
|
||||||
|
* The current button state is returned as a button bitmask, which can
|
||||||
|
* be tested using the SDL_BUTTON(X) macros, and x and y are set to the
|
||||||
|
* mouse deltas since the last call to SDL_GetRelativeMouseState().
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Uint8 SDLCALL SDL_GetRelativeMouseState(int *x, int *y);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the position of the mouse cursor (generates a mouse motion event)
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_WarpMouse(Uint16 x, Uint16 y);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a cursor using the specified data and mask (in MSB format).
|
||||||
|
* The cursor width must be a multiple of 8 bits.
|
||||||
|
*
|
||||||
|
* The cursor is created in black and white according to the following:
|
||||||
|
* data mask resulting pixel on screen
|
||||||
|
* 0 1 White
|
||||||
|
* 1 1 Black
|
||||||
|
* 0 0 Transparent
|
||||||
|
* 1 0 Inverted color if possible, black if not.
|
||||||
|
*
|
||||||
|
* Cursors created with this function must be freed with SDL_FreeCursor().
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_Cursor * SDLCALL SDL_CreateCursor
|
||||||
|
(Uint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the currently active cursor to the specified one.
|
||||||
|
* If the cursor is currently visible, the change will be immediately
|
||||||
|
* represented on the display.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_SetCursor(SDL_Cursor *cursor);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the currently active cursor.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_Cursor * SDLCALL SDL_GetCursor(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Deallocates a cursor created with SDL_CreateCursor().
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor *cursor);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle whether or not the cursor is shown on the screen.
|
||||||
|
* The cursor start off displayed, but can be turned off.
|
||||||
|
* SDL_ShowCursor() returns 1 if the cursor was being displayed
|
||||||
|
* before the call, or 0 if it was not. You can query the current
|
||||||
|
* state by passing a 'toggle' value of -1.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle);
|
||||||
|
|
||||||
|
/*@{*/
|
||||||
|
/** Used as a mask when testing buttons in buttonstate
|
||||||
|
* Button 1: Left mouse button
|
||||||
|
* Button 2: Middle mouse button
|
||||||
|
* Button 3: Right mouse button
|
||||||
|
* Button 4: Mouse wheel up (may also be a real button)
|
||||||
|
* Button 5: Mouse wheel down (may also be a real button)
|
||||||
|
*/
|
||||||
|
#define SDL_BUTTON(X) (1 << ((X)-1))
|
||||||
|
#define SDL_BUTTON_LEFT 1
|
||||||
|
#define SDL_BUTTON_MIDDLE 2
|
||||||
|
#define SDL_BUTTON_RIGHT 3
|
||||||
|
#define SDL_BUTTON_WHEELUP 4
|
||||||
|
#define SDL_BUTTON_WHEELDOWN 5
|
||||||
|
#define SDL_BUTTON_X1 6
|
||||||
|
#define SDL_BUTTON_X2 7
|
||||||
|
#define SDL_BUTTON_LMASK SDL_BUTTON(SDL_BUTTON_LEFT)
|
||||||
|
#define SDL_BUTTON_MMASK SDL_BUTTON(SDL_BUTTON_MIDDLE)
|
||||||
|
#define SDL_BUTTON_RMASK SDL_BUTTON(SDL_BUTTON_RIGHT)
|
||||||
|
#define SDL_BUTTON_X1MASK SDL_BUTTON(SDL_BUTTON_X1)
|
||||||
|
#define SDL_BUTTON_X2MASK SDL_BUTTON(SDL_BUTTON_X2)
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_mouse_h */
|
|
@ -0,0 +1,177 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_mutex_h
|
||||||
|
#define _SDL_mutex_h
|
||||||
|
|
||||||
|
/** @file SDL_mutex.h
|
||||||
|
* Functions to provide thread synchronization primitives
|
||||||
|
*
|
||||||
|
* @note These are independent of the other SDL routines.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** Synchronization functions which can time out return this value
|
||||||
|
* if they time out.
|
||||||
|
*/
|
||||||
|
#define SDL_MUTEX_TIMEDOUT 1
|
||||||
|
|
||||||
|
/** This is the timeout value which corresponds to never time out */
|
||||||
|
#define SDL_MUTEX_MAXWAIT (~(Uint32)0)
|
||||||
|
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
/** @name Mutex functions */ /*@{*/
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/** The SDL mutex structure, defined in SDL_mutex.c */
|
||||||
|
struct SDL_mutex;
|
||||||
|
typedef struct SDL_mutex SDL_mutex;
|
||||||
|
|
||||||
|
/** Create a mutex, initialized unlocked */
|
||||||
|
extern DECLSPEC SDL_mutex * SDLCALL SDL_CreateMutex(void);
|
||||||
|
|
||||||
|
#define SDL_LockMutex(m) SDL_mutexP(m)
|
||||||
|
/** Lock the mutex
|
||||||
|
* @return 0, or -1 on error
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_mutexP(SDL_mutex *mutex);
|
||||||
|
|
||||||
|
#define SDL_UnlockMutex(m) SDL_mutexV(m)
|
||||||
|
/** Unlock the mutex
|
||||||
|
* @return 0, or -1 on error
|
||||||
|
*
|
||||||
|
* It is an error to unlock a mutex that has not been locked by
|
||||||
|
* the current thread, and doing so results in undefined behavior.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_mutexV(SDL_mutex *mutex);
|
||||||
|
|
||||||
|
/** Destroy a mutex */
|
||||||
|
extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_mutex *mutex);
|
||||||
|
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
/** @name Semaphore functions */ /*@{*/
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/** The SDL semaphore structure, defined in SDL_sem.c */
|
||||||
|
struct SDL_semaphore;
|
||||||
|
typedef struct SDL_semaphore SDL_sem;
|
||||||
|
|
||||||
|
/** Create a semaphore, initialized with value, returns NULL on failure. */
|
||||||
|
extern DECLSPEC SDL_sem * SDLCALL SDL_CreateSemaphore(Uint32 initial_value);
|
||||||
|
|
||||||
|
/** Destroy a semaphore */
|
||||||
|
extern DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_sem *sem);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function suspends the calling thread until the semaphore pointed
|
||||||
|
* to by sem has a positive count. It then atomically decreases the semaphore
|
||||||
|
* count.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SemWait(SDL_sem *sem);
|
||||||
|
|
||||||
|
/** Non-blocking variant of SDL_SemWait().
|
||||||
|
* @return 0 if the wait succeeds,
|
||||||
|
* SDL_MUTEX_TIMEDOUT if the wait would block, and -1 on error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem *sem);
|
||||||
|
|
||||||
|
/** Variant of SDL_SemWait() with a timeout in milliseconds, returns 0 if
|
||||||
|
* the wait succeeds, SDL_MUTEX_TIMEDOUT if the wait does not succeed in
|
||||||
|
* the allotted time, and -1 on error.
|
||||||
|
*
|
||||||
|
* On some platforms this function is implemented by looping with a delay
|
||||||
|
* of 1 ms, and so should be avoided if possible.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem *sem, Uint32 ms);
|
||||||
|
|
||||||
|
/** Atomically increases the semaphore's count (not blocking).
|
||||||
|
* @return 0, or -1 on error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SemPost(SDL_sem *sem);
|
||||||
|
|
||||||
|
/** Returns the current count of the semaphore */
|
||||||
|
extern DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem *sem);
|
||||||
|
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
/** @name Condition_variable_functions */ /*@{*/
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/*@{*/
|
||||||
|
/** The SDL condition variable structure, defined in SDL_cond.c */
|
||||||
|
struct SDL_cond;
|
||||||
|
typedef struct SDL_cond SDL_cond;
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** Create a condition variable */
|
||||||
|
extern DECLSPEC SDL_cond * SDLCALL SDL_CreateCond(void);
|
||||||
|
|
||||||
|
/** Destroy a condition variable */
|
||||||
|
extern DECLSPEC void SDLCALL SDL_DestroyCond(SDL_cond *cond);
|
||||||
|
|
||||||
|
/** Restart one of the threads that are waiting on the condition variable,
|
||||||
|
* @return 0 or -1 on error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_CondSignal(SDL_cond *cond);
|
||||||
|
|
||||||
|
/** Restart all threads that are waiting on the condition variable,
|
||||||
|
* @return 0 or -1 on error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond *cond);
|
||||||
|
|
||||||
|
/** Wait on the condition variable, unlocking the provided mutex.
|
||||||
|
* The mutex must be locked before entering this function!
|
||||||
|
* The mutex is re-locked once the condition variable is signaled.
|
||||||
|
* @return 0 when it is signaled, or -1 on error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond *cond, SDL_mutex *mut);
|
||||||
|
|
||||||
|
/** Waits for at most 'ms' milliseconds, and returns 0 if the condition
|
||||||
|
* variable is signaled, SDL_MUTEX_TIMEDOUT if the condition is not
|
||||||
|
* signaled in the allotted time, and -1 on error.
|
||||||
|
* On some platforms this function is implemented by looping with a delay
|
||||||
|
* of 1 ms, and so should be avoided if possible.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond *cond, SDL_mutex *mutex, Uint32 ms);
|
||||||
|
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_mutex_h */
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
|
||||||
|
#ifndef _SDLname_h_
|
||||||
|
#define _SDLname_h_
|
||||||
|
|
||||||
|
#if defined(__STDC__) || defined(__cplusplus)
|
||||||
|
#define NeedFunctionPrototypes 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SDL_NAME(X) SDL_##X
|
||||||
|
|
||||||
|
#endif /* _SDLname_h_ */
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,110 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_platform.h
|
||||||
|
* Try to get a standard set of platform defines
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_platform_h
|
||||||
|
#define _SDL_platform_h
|
||||||
|
|
||||||
|
#if defined(_AIX)
|
||||||
|
#undef __AIX__
|
||||||
|
#define __AIX__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(__BEOS__)
|
||||||
|
#undef __BEOS__
|
||||||
|
#define __BEOS__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(__HAIKU__)
|
||||||
|
#undef __HAIKU__
|
||||||
|
#define __HAIKU__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(bsdi) || defined(__bsdi) || defined(__bsdi__)
|
||||||
|
#undef __BSDI__
|
||||||
|
#define __BSDI__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(_arch_dreamcast)
|
||||||
|
#undef __DREAMCAST__
|
||||||
|
#define __DREAMCAST__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
|
||||||
|
#undef __FREEBSD__
|
||||||
|
#define __FREEBSD__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(__HAIKU__)
|
||||||
|
#undef __HAIKU__
|
||||||
|
#define __HAIKU__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(hpux) || defined(__hpux) || defined(__hpux__)
|
||||||
|
#undef __HPUX__
|
||||||
|
#define __HPUX__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(sgi) || defined(__sgi) || defined(__sgi__) || defined(_SGI_SOURCE)
|
||||||
|
#undef __IRIX__
|
||||||
|
#define __IRIX__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(linux) || defined(__linux) || defined(__linux__)
|
||||||
|
#undef __LINUX__
|
||||||
|
#define __LINUX__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(__APPLE__)
|
||||||
|
#undef __MACOSX__
|
||||||
|
#define __MACOSX__ 1
|
||||||
|
#elif defined(macintosh)
|
||||||
|
#undef __MACOS__
|
||||||
|
#define __MACOS__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(__NetBSD__)
|
||||||
|
#undef __NETBSD__
|
||||||
|
#define __NETBSD__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(__OpenBSD__)
|
||||||
|
#undef __OPENBSD__
|
||||||
|
#define __OPENBSD__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(__OS2__)
|
||||||
|
#undef __OS2__
|
||||||
|
#define __OS2__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(osf) || defined(__osf) || defined(__osf__) || defined(_OSF_SOURCE)
|
||||||
|
#undef __OSF__
|
||||||
|
#define __OSF__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(__QNXNTO__)
|
||||||
|
#undef __QNXNTO__
|
||||||
|
#define __QNXNTO__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(riscos) || defined(__riscos) || defined(__riscos__)
|
||||||
|
#undef __RISCOS__
|
||||||
|
#define __RISCOS__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(__SVR4)
|
||||||
|
#undef __SOLARIS__
|
||||||
|
#define __SOLARIS__ 1
|
||||||
|
#endif
|
||||||
|
#if defined(WIN32) || defined(_WIN32)
|
||||||
|
#undef __WIN32__
|
||||||
|
#define __WIN32__ 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _SDL_platform_h */
|
|
@ -0,0 +1,55 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_quit.h
|
||||||
|
* Include file for SDL quit event handling
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_quit_h
|
||||||
|
#define _SDL_quit_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
|
||||||
|
/** @file SDL_quit.h
|
||||||
|
* An SDL_QUITEVENT is generated when the user tries to close the application
|
||||||
|
* window. If it is ignored or filtered out, the window will remain open.
|
||||||
|
* If it is not ignored or filtered, it is queued normally and the window
|
||||||
|
* is allowed to close. When the window is closed, screen updates will
|
||||||
|
* complete, but have no effect.
|
||||||
|
*
|
||||||
|
* SDL_Init() installs signal handlers for SIGINT (keyboard interrupt)
|
||||||
|
* and SIGTERM (system termination request), if handlers do not already
|
||||||
|
* exist, that generate SDL_QUITEVENT events as well. There is no way
|
||||||
|
* to determine the cause of an SDL_QUITEVENT, but setting a signal
|
||||||
|
* handler in your application will override the default generation of
|
||||||
|
* quit events for that signal.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_quit.h
|
||||||
|
* There are no functions directly affecting the quit event
|
||||||
|
*/
|
||||||
|
|
||||||
|
#define SDL_QuitRequested() \
|
||||||
|
(SDL_PumpEvents(), SDL_PeepEvents(NULL,0,SDL_PEEKEVENT,SDL_QUITMASK))
|
||||||
|
|
||||||
|
#endif /* _SDL_quit_h */
|
|
@ -0,0 +1,155 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_rwops.h
|
||||||
|
* This file provides a general interface for SDL to read and write
|
||||||
|
* data sources. It can easily be extended to files, memory, etc.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_rwops_h
|
||||||
|
#define _SDL_rwops_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** This is the read/write operation structure -- very basic */
|
||||||
|
|
||||||
|
typedef struct SDL_RWops {
|
||||||
|
/** Seek to 'offset' relative to whence, one of stdio's whence values:
|
||||||
|
* SEEK_SET, SEEK_CUR, SEEK_END
|
||||||
|
* Returns the final offset in the data source.
|
||||||
|
*/
|
||||||
|
int (SDLCALL *seek)(struct SDL_RWops *context, int offset, int whence);
|
||||||
|
|
||||||
|
/** Read up to 'maxnum' objects each of size 'size' from the data
|
||||||
|
* source to the area pointed at by 'ptr'.
|
||||||
|
* Returns the number of objects read, or -1 if the read failed.
|
||||||
|
*/
|
||||||
|
int (SDLCALL *read)(struct SDL_RWops *context, void *ptr, int size, int maxnum);
|
||||||
|
|
||||||
|
/** Write exactly 'num' objects each of size 'objsize' from the area
|
||||||
|
* pointed at by 'ptr' to data source.
|
||||||
|
* Returns 'num', or -1 if the write failed.
|
||||||
|
*/
|
||||||
|
int (SDLCALL *write)(struct SDL_RWops *context, const void *ptr, int size, int num);
|
||||||
|
|
||||||
|
/** Close and free an allocated SDL_FSops structure */
|
||||||
|
int (SDLCALL *close)(struct SDL_RWops *context);
|
||||||
|
|
||||||
|
Uint32 type;
|
||||||
|
union {
|
||||||
|
#if defined(__WIN32__) && !defined(__SYMBIAN32__)
|
||||||
|
struct {
|
||||||
|
int append;
|
||||||
|
void *h;
|
||||||
|
struct {
|
||||||
|
void *data;
|
||||||
|
int size;
|
||||||
|
int left;
|
||||||
|
} buffer;
|
||||||
|
} win32io;
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STDIO_H
|
||||||
|
struct {
|
||||||
|
int autoclose;
|
||||||
|
FILE *fp;
|
||||||
|
} stdio;
|
||||||
|
#endif
|
||||||
|
struct {
|
||||||
|
Uint8 *base;
|
||||||
|
Uint8 *here;
|
||||||
|
Uint8 *stop;
|
||||||
|
} mem;
|
||||||
|
struct {
|
||||||
|
void *data1;
|
||||||
|
} unknown;
|
||||||
|
} hidden;
|
||||||
|
|
||||||
|
} SDL_RWops;
|
||||||
|
|
||||||
|
|
||||||
|
/** @name Functions to create SDL_RWops structures from various data sources */
|
||||||
|
/*@{*/
|
||||||
|
|
||||||
|
extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromFile(const char *file, const char *mode);
|
||||||
|
|
||||||
|
#ifdef HAVE_STDIO_H
|
||||||
|
extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromFP(FILE *fp, int autoclose);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromMem(void *mem, int size);
|
||||||
|
extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromConstMem(const void *mem, int size);
|
||||||
|
|
||||||
|
extern DECLSPEC SDL_RWops * SDLCALL SDL_AllocRW(void);
|
||||||
|
extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops *area);
|
||||||
|
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Seek Reference Points */
|
||||||
|
/*@{*/
|
||||||
|
#define RW_SEEK_SET 0 /**< Seek from the beginning of data */
|
||||||
|
#define RW_SEEK_CUR 1 /**< Seek relative to current read point */
|
||||||
|
#define RW_SEEK_END 2 /**< Seek relative to the end of data */
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Macros to easily read and write from an SDL_RWops structure */
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_RWseek(ctx, offset, whence) (ctx)->seek(ctx, offset, whence)
|
||||||
|
#define SDL_RWtell(ctx) (ctx)->seek(ctx, 0, RW_SEEK_CUR)
|
||||||
|
#define SDL_RWread(ctx, ptr, size, n) (ctx)->read(ctx, ptr, size, n)
|
||||||
|
#define SDL_RWwrite(ctx, ptr, size, n) (ctx)->write(ctx, ptr, size, n)
|
||||||
|
#define SDL_RWclose(ctx) (ctx)->close(ctx)
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Read an item of the specified endianness and return in native format */
|
||||||
|
/*@{*/
|
||||||
|
extern DECLSPEC Uint16 SDLCALL SDL_ReadLE16(SDL_RWops *src);
|
||||||
|
extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops *src);
|
||||||
|
extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops *src);
|
||||||
|
extern DECLSPEC Uint32 SDLCALL SDL_ReadBE32(SDL_RWops *src);
|
||||||
|
extern DECLSPEC Uint64 SDLCALL SDL_ReadLE64(SDL_RWops *src);
|
||||||
|
extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops *src);
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Write an item of native format to the specified endianness */
|
||||||
|
/*@{*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_WriteLE16(SDL_RWops *dst, Uint16 value);
|
||||||
|
extern DECLSPEC int SDLCALL SDL_WriteBE16(SDL_RWops *dst, Uint16 value);
|
||||||
|
extern DECLSPEC int SDLCALL SDL_WriteLE32(SDL_RWops *dst, Uint32 value);
|
||||||
|
extern DECLSPEC int SDLCALL SDL_WriteBE32(SDL_RWops *dst, Uint32 value);
|
||||||
|
extern DECLSPEC int SDLCALL SDL_WriteLE64(SDL_RWops *dst, Uint64 value);
|
||||||
|
extern DECLSPEC int SDLCALL SDL_WriteBE64(SDL_RWops *dst, Uint64 value);
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_rwops_h */
|
|
@ -0,0 +1,620 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_stdinc.h
|
||||||
|
* This is a general header that includes C language support
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_stdinc_h
|
||||||
|
#define _SDL_stdinc_h
|
||||||
|
|
||||||
|
#include "SDL_config.h"
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef HAVE_SYS_TYPES_H
|
||||||
|
#include <sys/types.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STDIO_H
|
||||||
|
#include <stdio.h>
|
||||||
|
#endif
|
||||||
|
#if defined(STDC_HEADERS)
|
||||||
|
# include <stdlib.h>
|
||||||
|
# include <stddef.h>
|
||||||
|
# include <stdarg.h>
|
||||||
|
#else
|
||||||
|
# if defined(HAVE_STDLIB_H)
|
||||||
|
# include <stdlib.h>
|
||||||
|
# elif defined(HAVE_MALLOC_H)
|
||||||
|
# include <malloc.h>
|
||||||
|
# endif
|
||||||
|
# if defined(HAVE_STDDEF_H)
|
||||||
|
# include <stddef.h>
|
||||||
|
# endif
|
||||||
|
# if defined(HAVE_STDARG_H)
|
||||||
|
# include <stdarg.h>
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STRING_H
|
||||||
|
# if !defined(STDC_HEADERS) && defined(HAVE_MEMORY_H)
|
||||||
|
# include <memory.h>
|
||||||
|
# endif
|
||||||
|
# include <string.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_STRINGS_H
|
||||||
|
# include <strings.h>
|
||||||
|
#endif
|
||||||
|
#if defined(HAVE_INTTYPES_H)
|
||||||
|
# include <inttypes.h>
|
||||||
|
#elif defined(HAVE_STDINT_H)
|
||||||
|
# include <stdint.h>
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_CTYPE_H
|
||||||
|
# include <ctype.h>
|
||||||
|
#endif
|
||||||
|
#if defined(HAVE_ICONV) && defined(HAVE_ICONV_H)
|
||||||
|
# include <iconv.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** The number of elements in an array */
|
||||||
|
#define SDL_arraysize(array) (sizeof(array)/sizeof(array[0]))
|
||||||
|
#define SDL_TABLESIZE(table) SDL_arraysize(table)
|
||||||
|
|
||||||
|
/* Use proper C++ casts when compiled as C++ to be compatible with the option
|
||||||
|
-Wold-style-cast of GCC (and -Werror=old-style-cast in GCC 4.2 and above. */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define SDL_reinterpret_cast(type, expression) reinterpret_cast<type>(expression)
|
||||||
|
#define SDL_static_cast(type, expression) static_cast<type>(expression)
|
||||||
|
#else
|
||||||
|
#define SDL_reinterpret_cast(type, expression) ((type)(expression))
|
||||||
|
#define SDL_static_cast(type, expression) ((type)(expression))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** @name Basic data types */
|
||||||
|
/*@{*/
|
||||||
|
typedef enum {
|
||||||
|
SDL_FALSE = 0,
|
||||||
|
SDL_TRUE = 1
|
||||||
|
} SDL_bool;
|
||||||
|
|
||||||
|
typedef int8_t Sint8;
|
||||||
|
typedef uint8_t Uint8;
|
||||||
|
typedef int16_t Sint16;
|
||||||
|
typedef uint16_t Uint16;
|
||||||
|
typedef int32_t Sint32;
|
||||||
|
typedef uint32_t Uint32;
|
||||||
|
|
||||||
|
#ifdef SDL_HAS_64BIT_TYPE
|
||||||
|
typedef int64_t Sint64;
|
||||||
|
#ifndef SYMBIAN32_GCCE
|
||||||
|
typedef uint64_t Uint64;
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
/* This is really just a hack to prevent the compiler from complaining */
|
||||||
|
typedef struct {
|
||||||
|
Uint32 hi;
|
||||||
|
Uint32 lo;
|
||||||
|
} Uint64, Sint64;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Make sure the types really have the right sizes */
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_COMPILE_TIME_ASSERT(name, x) \
|
||||||
|
typedef int SDL_dummy_ ## name[(x) * 2 - 1]
|
||||||
|
|
||||||
|
SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);
|
||||||
|
SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1);
|
||||||
|
SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2);
|
||||||
|
SDL_COMPILE_TIME_ASSERT(sint16, sizeof(Sint16) == 2);
|
||||||
|
SDL_COMPILE_TIME_ASSERT(uint32, sizeof(Uint32) == 4);
|
||||||
|
SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4);
|
||||||
|
SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8);
|
||||||
|
SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Enum Size Check
|
||||||
|
* Check to make sure enums are the size of ints, for structure packing.
|
||||||
|
* For both Watcom C/C++ and Borland C/C++ the compiler option that makes
|
||||||
|
* enums having the size of an int must be enabled.
|
||||||
|
* This is "-b" for Borland C/C++ and "-ei" for Watcom C/C++ (v11).
|
||||||
|
*/
|
||||||
|
/* Enable enums always int in CodeWarrior (for MPW use "-enum int") */
|
||||||
|
#ifdef __MWERKS__
|
||||||
|
#pragma enumsalwaysint on
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
DUMMY_ENUM_VALUE
|
||||||
|
} SDL_DUMMY_ENUM;
|
||||||
|
|
||||||
|
#ifndef __NDS__
|
||||||
|
SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int));
|
||||||
|
#endif
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_MALLOC
|
||||||
|
#define SDL_malloc malloc
|
||||||
|
#else
|
||||||
|
extern DECLSPEC void * SDLCALL SDL_malloc(size_t size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_CALLOC
|
||||||
|
#define SDL_calloc calloc
|
||||||
|
#else
|
||||||
|
extern DECLSPEC void * SDLCALL SDL_calloc(size_t nmemb, size_t size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_REALLOC
|
||||||
|
#define SDL_realloc realloc
|
||||||
|
#else
|
||||||
|
extern DECLSPEC void * SDLCALL SDL_realloc(void *mem, size_t size);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_FREE
|
||||||
|
#define SDL_free free
|
||||||
|
#else
|
||||||
|
extern DECLSPEC void SDLCALL SDL_free(void *mem);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_ALLOCA) && !defined(alloca)
|
||||||
|
# if defined(HAVE_ALLOCA_H)
|
||||||
|
# include <alloca.h>
|
||||||
|
# elif defined(__GNUC__)
|
||||||
|
# define alloca __builtin_alloca
|
||||||
|
# elif defined(_MSC_VER)
|
||||||
|
# include <malloc.h>
|
||||||
|
# define alloca _alloca
|
||||||
|
# elif defined(__WATCOMC__)
|
||||||
|
# include <malloc.h>
|
||||||
|
# elif defined(__BORLANDC__)
|
||||||
|
# include <malloc.h>
|
||||||
|
# elif defined(__DMC__)
|
||||||
|
# include <stdlib.h>
|
||||||
|
# elif defined(__AIX__)
|
||||||
|
#pragma alloca
|
||||||
|
# elif defined(__MRC__)
|
||||||
|
void *alloca (unsigned);
|
||||||
|
# else
|
||||||
|
char *alloca ();
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
#ifdef HAVE_ALLOCA
|
||||||
|
#define SDL_stack_alloc(type, count) (type*)alloca(sizeof(type)*(count))
|
||||||
|
#define SDL_stack_free(data)
|
||||||
|
#else
|
||||||
|
#define SDL_stack_alloc(type, count) (type*)SDL_malloc(sizeof(type)*(count))
|
||||||
|
#define SDL_stack_free(data) SDL_free(data)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_GETENV
|
||||||
|
#define SDL_getenv getenv
|
||||||
|
#else
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_getenv(const char *name);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_PUTENV
|
||||||
|
#define SDL_putenv putenv
|
||||||
|
#else
|
||||||
|
extern DECLSPEC int SDLCALL SDL_putenv(const char *variable);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_QSORT
|
||||||
|
#define SDL_qsort qsort
|
||||||
|
#else
|
||||||
|
extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size,
|
||||||
|
int (*compare)(const void *, const void *));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_ABS
|
||||||
|
#define SDL_abs abs
|
||||||
|
#else
|
||||||
|
#define SDL_abs(X) ((X) < 0 ? -(X) : (X))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define SDL_min(x, y) (((x) < (y)) ? (x) : (y))
|
||||||
|
#define SDL_max(x, y) (((x) > (y)) ? (x) : (y))
|
||||||
|
|
||||||
|
#ifdef HAVE_CTYPE_H
|
||||||
|
#define SDL_isdigit(X) isdigit(X)
|
||||||
|
#define SDL_isspace(X) isspace(X)
|
||||||
|
#define SDL_toupper(X) toupper(X)
|
||||||
|
#define SDL_tolower(X) tolower(X)
|
||||||
|
#else
|
||||||
|
#define SDL_isdigit(X) (((X) >= '0') && ((X) <= '9'))
|
||||||
|
#define SDL_isspace(X) (((X) == ' ') || ((X) == '\t') || ((X) == '\r') || ((X) == '\n'))
|
||||||
|
#define SDL_toupper(X) (((X) >= 'a') && ((X) <= 'z') ? ('A'+((X)-'a')) : (X))
|
||||||
|
#define SDL_tolower(X) (((X) >= 'A') && ((X) <= 'Z') ? ('a'+((X)-'A')) : (X))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_MEMSET
|
||||||
|
#define SDL_memset memset
|
||||||
|
#else
|
||||||
|
extern DECLSPEC void * SDLCALL SDL_memset(void *dst, int c, size_t len);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__GNUC__) && defined(i386)
|
||||||
|
#define SDL_memset4(dst, val, len) \
|
||||||
|
do { \
|
||||||
|
int u0, u1, u2; \
|
||||||
|
__asm__ __volatile__ ( \
|
||||||
|
"cld\n\t" \
|
||||||
|
"rep ; stosl\n\t" \
|
||||||
|
: "=&D" (u0), "=&a" (u1), "=&c" (u2) \
|
||||||
|
: "0" (dst), "1" (val), "2" (SDL_static_cast(Uint32, len)) \
|
||||||
|
: "memory" ); \
|
||||||
|
} while(0)
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_memset4
|
||||||
|
#define SDL_memset4(dst, val, len) \
|
||||||
|
do { \
|
||||||
|
unsigned _count = (len); \
|
||||||
|
unsigned _n = (_count + 3) / 4; \
|
||||||
|
Uint32 *_p = SDL_static_cast(Uint32 *, dst); \
|
||||||
|
Uint32 _val = (val); \
|
||||||
|
if (len == 0) break; \
|
||||||
|
switch (_count % 4) { \
|
||||||
|
case 0: do { *_p++ = _val; \
|
||||||
|
case 3: *_p++ = _val; \
|
||||||
|
case 2: *_p++ = _val; \
|
||||||
|
case 1: *_p++ = _val; \
|
||||||
|
} while ( --_n ); \
|
||||||
|
} \
|
||||||
|
} while(0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* We can count on memcpy existing on Mac OS X and being well-tuned. */
|
||||||
|
#if defined(__MACH__) && defined(__APPLE__)
|
||||||
|
#define SDL_memcpy(dst, src, len) memcpy(dst, src, len)
|
||||||
|
#elif defined(__GNUC__) && defined(i386)
|
||||||
|
#define SDL_memcpy(dst, src, len) \
|
||||||
|
do { \
|
||||||
|
int u0, u1, u2; \
|
||||||
|
__asm__ __volatile__ ( \
|
||||||
|
"cld\n\t" \
|
||||||
|
"rep ; movsl\n\t" \
|
||||||
|
"testb $2,%b4\n\t" \
|
||||||
|
"je 1f\n\t" \
|
||||||
|
"movsw\n" \
|
||||||
|
"1:\ttestb $1,%b4\n\t" \
|
||||||
|
"je 2f\n\t" \
|
||||||
|
"movsb\n" \
|
||||||
|
"2:" \
|
||||||
|
: "=&c" (u0), "=&D" (u1), "=&S" (u2) \
|
||||||
|
: "0" (SDL_static_cast(unsigned, len)/4), "q" (len), "1" (dst),"2" (src) \
|
||||||
|
: "memory" ); \
|
||||||
|
} while(0)
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_memcpy
|
||||||
|
#ifdef HAVE_MEMCPY
|
||||||
|
#define SDL_memcpy memcpy
|
||||||
|
#elif defined(HAVE_BCOPY)
|
||||||
|
#define SDL_memcpy(d, s, n) bcopy((s), (d), (n))
|
||||||
|
#else
|
||||||
|
extern DECLSPEC void * SDLCALL SDL_memcpy(void *dst, const void *src, size_t len);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* We can count on memcpy existing on Mac OS X and being well-tuned. */
|
||||||
|
#if defined(__MACH__) && defined(__APPLE__)
|
||||||
|
#define SDL_memcpy4(dst, src, len) memcpy(dst, src, (len)*4)
|
||||||
|
#elif defined(__GNUC__) && defined(i386)
|
||||||
|
#define SDL_memcpy4(dst, src, len) \
|
||||||
|
do { \
|
||||||
|
int ecx, edi, esi; \
|
||||||
|
__asm__ __volatile__ ( \
|
||||||
|
"cld\n\t" \
|
||||||
|
"rep ; movsl" \
|
||||||
|
: "=&c" (ecx), "=&D" (edi), "=&S" (esi) \
|
||||||
|
: "0" (SDL_static_cast(unsigned, len)), "1" (dst), "2" (src) \
|
||||||
|
: "memory" ); \
|
||||||
|
} while(0)
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_memcpy4
|
||||||
|
#define SDL_memcpy4(dst, src, len) SDL_memcpy(dst, src, (len) << 2)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__GNUC__) && defined(i386)
|
||||||
|
#define SDL_revcpy(dst, src, len) \
|
||||||
|
do { \
|
||||||
|
int u0, u1, u2; \
|
||||||
|
char *dstp = SDL_static_cast(char *, dst); \
|
||||||
|
char *srcp = SDL_static_cast(char *, src); \
|
||||||
|
int n = (len); \
|
||||||
|
if ( n >= 4 ) { \
|
||||||
|
__asm__ __volatile__ ( \
|
||||||
|
"std\n\t" \
|
||||||
|
"rep ; movsl\n\t" \
|
||||||
|
"cld\n\t" \
|
||||||
|
: "=&c" (u0), "=&D" (u1), "=&S" (u2) \
|
||||||
|
: "0" (n >> 2), \
|
||||||
|
"1" (dstp+(n-4)), "2" (srcp+(n-4)) \
|
||||||
|
: "memory" ); \
|
||||||
|
} \
|
||||||
|
switch (n & 3) { \
|
||||||
|
case 3: dstp[2] = srcp[2]; \
|
||||||
|
case 2: dstp[1] = srcp[1]; \
|
||||||
|
case 1: dstp[0] = srcp[0]; \
|
||||||
|
break; \
|
||||||
|
default: \
|
||||||
|
break; \
|
||||||
|
} \
|
||||||
|
} while(0)
|
||||||
|
#endif
|
||||||
|
#ifndef SDL_revcpy
|
||||||
|
extern DECLSPEC void * SDLCALL SDL_revcpy(void *dst, const void *src, size_t len);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_MEMMOVE
|
||||||
|
#define SDL_memmove memmove
|
||||||
|
#elif defined(HAVE_BCOPY)
|
||||||
|
#define SDL_memmove(d, s, n) bcopy((s), (d), (n))
|
||||||
|
#else
|
||||||
|
#define SDL_memmove(dst, src, len) \
|
||||||
|
do { \
|
||||||
|
if ( dst < src ) { \
|
||||||
|
SDL_memcpy(dst, src, len); \
|
||||||
|
} else { \
|
||||||
|
SDL_revcpy(dst, src, len); \
|
||||||
|
} \
|
||||||
|
} while(0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_MEMCMP
|
||||||
|
#define SDL_memcmp memcmp
|
||||||
|
#else
|
||||||
|
extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRLEN
|
||||||
|
#define SDL_strlen strlen
|
||||||
|
#else
|
||||||
|
extern DECLSPEC size_t SDLCALL SDL_strlen(const char *string);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRLCPY
|
||||||
|
#define SDL_strlcpy strlcpy
|
||||||
|
#else
|
||||||
|
extern DECLSPEC size_t SDLCALL SDL_strlcpy(char *dst, const char *src, size_t maxlen);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRLCAT
|
||||||
|
#define SDL_strlcat strlcat
|
||||||
|
#else
|
||||||
|
extern DECLSPEC size_t SDLCALL SDL_strlcat(char *dst, const char *src, size_t maxlen);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRDUP
|
||||||
|
#define SDL_strdup strdup
|
||||||
|
#else
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_strdup(const char *string);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE__STRREV
|
||||||
|
#define SDL_strrev _strrev
|
||||||
|
#else
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_strrev(char *string);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE__STRUPR
|
||||||
|
#define SDL_strupr _strupr
|
||||||
|
#else
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_strupr(char *string);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE__STRLWR
|
||||||
|
#define SDL_strlwr _strlwr
|
||||||
|
#else
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_strlwr(char *string);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRCHR
|
||||||
|
#define SDL_strchr strchr
|
||||||
|
#elif defined(HAVE_INDEX)
|
||||||
|
#define SDL_strchr index
|
||||||
|
#else
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_strchr(const char *string, int c);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRRCHR
|
||||||
|
#define SDL_strrchr strrchr
|
||||||
|
#elif defined(HAVE_RINDEX)
|
||||||
|
#define SDL_strrchr rindex
|
||||||
|
#else
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_strrchr(const char *string, int c);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRSTR
|
||||||
|
#define SDL_strstr strstr
|
||||||
|
#else
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_strstr(const char *haystack, const char *needle);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_ITOA
|
||||||
|
#define SDL_itoa itoa
|
||||||
|
#else
|
||||||
|
#define SDL_itoa(value, string, radix) SDL_ltoa((long)value, string, radix)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE__LTOA
|
||||||
|
#define SDL_ltoa _ltoa
|
||||||
|
#else
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_ltoa(long value, char *string, int radix);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE__UITOA
|
||||||
|
#define SDL_uitoa _uitoa
|
||||||
|
#else
|
||||||
|
#define SDL_uitoa(value, string, radix) SDL_ultoa((long)value, string, radix)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE__ULTOA
|
||||||
|
#define SDL_ultoa _ultoa
|
||||||
|
#else
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_ultoa(unsigned long value, char *string, int radix);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRTOL
|
||||||
|
#define SDL_strtol strtol
|
||||||
|
#else
|
||||||
|
extern DECLSPEC long SDLCALL SDL_strtol(const char *string, char **endp, int base);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRTOUL
|
||||||
|
#define SDL_strtoul strtoul
|
||||||
|
#else
|
||||||
|
extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *string, char **endp, int base);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SDL_HAS_64BIT_TYPE
|
||||||
|
|
||||||
|
#ifdef HAVE__I64TOA
|
||||||
|
#define SDL_lltoa _i64toa
|
||||||
|
#else
|
||||||
|
extern DECLSPEC char* SDLCALL SDL_lltoa(Sint64 value, char *string, int radix);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE__UI64TOA
|
||||||
|
#define SDL_ulltoa _ui64toa
|
||||||
|
#else
|
||||||
|
extern DECLSPEC char* SDLCALL SDL_ulltoa(Uint64 value, char *string, int radix);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRTOLL
|
||||||
|
#define SDL_strtoll strtoll
|
||||||
|
#else
|
||||||
|
extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *string, char **endp, int base);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRTOULL
|
||||||
|
#define SDL_strtoull strtoull
|
||||||
|
#else
|
||||||
|
extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *string, char **endp, int base);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* SDL_HAS_64BIT_TYPE */
|
||||||
|
|
||||||
|
#ifdef HAVE_STRTOD
|
||||||
|
#define SDL_strtod strtod
|
||||||
|
#else
|
||||||
|
extern DECLSPEC double SDLCALL SDL_strtod(const char *string, char **endp);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_ATOI
|
||||||
|
#define SDL_atoi atoi
|
||||||
|
#else
|
||||||
|
#define SDL_atoi(X) SDL_strtol(X, NULL, 0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_ATOF
|
||||||
|
#define SDL_atof atof
|
||||||
|
#else
|
||||||
|
#define SDL_atof(X) SDL_strtod(X, NULL)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRCMP
|
||||||
|
#define SDL_strcmp strcmp
|
||||||
|
#else
|
||||||
|
extern DECLSPEC int SDLCALL SDL_strcmp(const char *str1, const char *str2);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRNCMP
|
||||||
|
#define SDL_strncmp strncmp
|
||||||
|
#else
|
||||||
|
extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRCASECMP
|
||||||
|
#define SDL_strcasecmp strcasecmp
|
||||||
|
#elif defined(HAVE__STRICMP)
|
||||||
|
#define SDL_strcasecmp _stricmp
|
||||||
|
#else
|
||||||
|
extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_STRNCASECMP
|
||||||
|
#define SDL_strncasecmp strncasecmp
|
||||||
|
#elif defined(HAVE__STRNICMP)
|
||||||
|
#define SDL_strncasecmp _strnicmp
|
||||||
|
#else
|
||||||
|
extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t maxlen);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SSCANF
|
||||||
|
#define SDL_sscanf sscanf
|
||||||
|
#else
|
||||||
|
extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt, ...);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_SNPRINTF
|
||||||
|
#define SDL_snprintf snprintf
|
||||||
|
#else
|
||||||
|
extern DECLSPEC int SDLCALL SDL_snprintf(char *text, size_t maxlen, const char *fmt, ...);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef HAVE_VSNPRINTF
|
||||||
|
#define SDL_vsnprintf vsnprintf
|
||||||
|
#else
|
||||||
|
extern DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen, const char *fmt, va_list ap);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** @name SDL_ICONV Error Codes
|
||||||
|
* The SDL implementation of iconv() returns these error codes
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_ICONV_ERROR (size_t)-1
|
||||||
|
#define SDL_ICONV_E2BIG (size_t)-2
|
||||||
|
#define SDL_ICONV_EILSEQ (size_t)-3
|
||||||
|
#define SDL_ICONV_EINVAL (size_t)-4
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
#if defined(HAVE_ICONV) && defined(HAVE_ICONV_H)
|
||||||
|
#define SDL_iconv_t iconv_t
|
||||||
|
#define SDL_iconv_open iconv_open
|
||||||
|
#define SDL_iconv_close iconv_close
|
||||||
|
#else
|
||||||
|
typedef struct _SDL_iconv_t *SDL_iconv_t;
|
||||||
|
extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode, const char *fromcode);
|
||||||
|
extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd);
|
||||||
|
#endif
|
||||||
|
extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, const char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
|
||||||
|
/** This function converts a string between encodings in one pass, returning a
|
||||||
|
* string that must be freed with SDL_free() or NULL on error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC char * SDLCALL SDL_iconv_string(const char *tocode, const char *fromcode, const char *inbuf, size_t inbytesleft);
|
||||||
|
#define SDL_iconv_utf8_locale(S) SDL_iconv_string("", "UTF-8", S, SDL_strlen(S)+1)
|
||||||
|
#define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2", "UTF-8", S, SDL_strlen(S)+1)
|
||||||
|
#define SDL_iconv_utf8_ucs4(S) (Uint32 *)SDL_iconv_string("UCS-4", "UTF-8", S, SDL_strlen(S)+1)
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_stdinc_h */
|
|
@ -0,0 +1,225 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_syswm.h
|
||||||
|
* Include file for SDL custom system window manager hooks
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_syswm_h
|
||||||
|
#define _SDL_syswm_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
#include "SDL_version.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** @file SDL_syswm.h
|
||||||
|
* Your application has access to a special type of event 'SDL_SYSWMEVENT',
|
||||||
|
* which contains window-manager specific information and arrives whenever
|
||||||
|
* an unhandled window event occurs. This event is ignored by default, but
|
||||||
|
* you can enable it with SDL_EventState()
|
||||||
|
*/
|
||||||
|
#ifdef SDL_PROTOTYPES_ONLY
|
||||||
|
struct SDL_SysWMinfo;
|
||||||
|
typedef struct SDL_SysWMinfo SDL_SysWMinfo;
|
||||||
|
#else
|
||||||
|
|
||||||
|
/* This is the structure for custom window manager events */
|
||||||
|
#if defined(SDL_VIDEO_DRIVER_X11)
|
||||||
|
#if defined(__APPLE__) && defined(__MACH__)
|
||||||
|
/* conflicts with Quickdraw.h */
|
||||||
|
#define Cursor X11Cursor
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include <X11/Xlib.h>
|
||||||
|
#include <X11/Xatom.h>
|
||||||
|
|
||||||
|
#if defined(__APPLE__) && defined(__MACH__)
|
||||||
|
/* matches the re-define above */
|
||||||
|
#undef Cursor
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** These are the various supported subsystems under UNIX */
|
||||||
|
typedef enum {
|
||||||
|
SDL_SYSWM_X11
|
||||||
|
} SDL_SYSWM_TYPE;
|
||||||
|
|
||||||
|
/** The UNIX custom event structure */
|
||||||
|
struct SDL_SysWMmsg {
|
||||||
|
SDL_version version;
|
||||||
|
SDL_SYSWM_TYPE subsystem;
|
||||||
|
union {
|
||||||
|
XEvent xevent;
|
||||||
|
} event;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** The UNIX custom window manager information structure.
|
||||||
|
* When this structure is returned, it holds information about which
|
||||||
|
* low level system it is using, and will be one of SDL_SYSWM_TYPE.
|
||||||
|
*/
|
||||||
|
typedef struct SDL_SysWMinfo {
|
||||||
|
SDL_version version;
|
||||||
|
SDL_SYSWM_TYPE subsystem;
|
||||||
|
union {
|
||||||
|
struct {
|
||||||
|
Display *display; /**< The X11 display */
|
||||||
|
Window window; /**< The X11 display window */
|
||||||
|
/** These locking functions should be called around
|
||||||
|
* any X11 functions using the display variable,
|
||||||
|
* but not the gfxdisplay variable.
|
||||||
|
* They lock the event thread, so should not be
|
||||||
|
* called around event functions or from event filters.
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
void (*lock_func)(void);
|
||||||
|
void (*unlock_func)(void);
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Introduced in SDL 1.0.2 */
|
||||||
|
/*@{*/
|
||||||
|
Window fswindow; /**< The X11 fullscreen window */
|
||||||
|
Window wmwindow; /**< The X11 managed input window */
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Introduced in SDL 1.2.12 */
|
||||||
|
/*@{*/
|
||||||
|
Display *gfxdisplay; /**< The X11 display to which rendering is done */
|
||||||
|
/*@}*/
|
||||||
|
} x11;
|
||||||
|
} info;
|
||||||
|
} SDL_SysWMinfo;
|
||||||
|
|
||||||
|
#elif defined(SDL_VIDEO_DRIVER_NANOX)
|
||||||
|
#include <microwin/nano-X.h>
|
||||||
|
|
||||||
|
/** The generic custom event structure */
|
||||||
|
struct SDL_SysWMmsg {
|
||||||
|
SDL_version version;
|
||||||
|
int data;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** The windows custom window manager information structure */
|
||||||
|
typedef struct SDL_SysWMinfo {
|
||||||
|
SDL_version version ;
|
||||||
|
GR_WINDOW_ID window ; /* The display window */
|
||||||
|
} SDL_SysWMinfo;
|
||||||
|
|
||||||
|
#elif defined(SDL_VIDEO_DRIVER_WINDIB) || defined(SDL_VIDEO_DRIVER_DDRAW) || defined(SDL_VIDEO_DRIVER_GAPI)
|
||||||
|
#define WIN32_LEAN_AND_MEAN
|
||||||
|
#include <windows.h>
|
||||||
|
|
||||||
|
/** The windows custom event structure */
|
||||||
|
struct SDL_SysWMmsg {
|
||||||
|
SDL_version version;
|
||||||
|
HWND hwnd; /**< The window for the message */
|
||||||
|
UINT msg; /**< The type of message */
|
||||||
|
WPARAM wParam; /**< WORD message parameter */
|
||||||
|
LPARAM lParam; /**< LONG message parameter */
|
||||||
|
};
|
||||||
|
|
||||||
|
/** The windows custom window manager information structure */
|
||||||
|
typedef struct SDL_SysWMinfo {
|
||||||
|
SDL_version version;
|
||||||
|
HWND window; /**< The Win32 display window */
|
||||||
|
HGLRC hglrc; /**< The OpenGL context, if any */
|
||||||
|
} SDL_SysWMinfo;
|
||||||
|
|
||||||
|
#elif defined(SDL_VIDEO_DRIVER_RISCOS)
|
||||||
|
|
||||||
|
/** RISC OS custom event structure */
|
||||||
|
struct SDL_SysWMmsg {
|
||||||
|
SDL_version version;
|
||||||
|
int eventCode; /**< The window for the message */
|
||||||
|
int pollBlock[64];
|
||||||
|
};
|
||||||
|
|
||||||
|
/** The RISC OS custom window manager information structure */
|
||||||
|
typedef struct SDL_SysWMinfo {
|
||||||
|
SDL_version version;
|
||||||
|
int wimpVersion; /**< Wimp version running under */
|
||||||
|
int taskHandle; /**< The RISC OS task handle */
|
||||||
|
int window; /**< The RISC OS display window */
|
||||||
|
} SDL_SysWMinfo;
|
||||||
|
|
||||||
|
#elif defined(SDL_VIDEO_DRIVER_PHOTON)
|
||||||
|
#include <sys/neutrino.h>
|
||||||
|
#include <Ph.h>
|
||||||
|
|
||||||
|
/** The QNX custom event structure */
|
||||||
|
struct SDL_SysWMmsg {
|
||||||
|
SDL_version version;
|
||||||
|
int data;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** The QNX custom window manager information structure */
|
||||||
|
typedef struct SDL_SysWMinfo {
|
||||||
|
SDL_version version;
|
||||||
|
int data;
|
||||||
|
} SDL_SysWMinfo;
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
/** The generic custom event structure */
|
||||||
|
struct SDL_SysWMmsg {
|
||||||
|
SDL_version version;
|
||||||
|
int data;
|
||||||
|
};
|
||||||
|
|
||||||
|
/** The generic custom window manager information structure */
|
||||||
|
typedef struct SDL_SysWMinfo {
|
||||||
|
SDL_version version;
|
||||||
|
int data;
|
||||||
|
} SDL_SysWMinfo;
|
||||||
|
|
||||||
|
#endif /* video driver type */
|
||||||
|
|
||||||
|
#endif /* SDL_PROTOTYPES_ONLY */
|
||||||
|
|
||||||
|
/* Function prototypes */
|
||||||
|
/**
|
||||||
|
* This function gives you custom hooks into the window manager information.
|
||||||
|
* It fills the structure pointed to by 'info' with custom information and
|
||||||
|
* returns 1 if the function is implemented. If it's not implemented, or
|
||||||
|
* the version member of the 'info' structure is invalid, it returns 0.
|
||||||
|
*
|
||||||
|
* You typically use this function like this:
|
||||||
|
* @code
|
||||||
|
* SDL_SysWMInfo info;
|
||||||
|
* SDL_VERSION(&info.version);
|
||||||
|
* if ( SDL_GetWMInfo(&info) ) { ... }
|
||||||
|
* @endcode
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_GetWMInfo(SDL_SysWMinfo *info);
|
||||||
|
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_syswm_h */
|
|
@ -0,0 +1,120 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_thread_h
|
||||||
|
#define _SDL_thread_h
|
||||||
|
|
||||||
|
/** @file SDL_thread.h
|
||||||
|
* Header for the SDL thread management routines
|
||||||
|
*
|
||||||
|
* @note These are independent of the other SDL routines.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
|
||||||
|
/* Thread synchronization primitives */
|
||||||
|
#include "SDL_mutex.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** The SDL thread structure, defined in SDL_thread.c */
|
||||||
|
struct SDL_Thread;
|
||||||
|
typedef struct SDL_Thread SDL_Thread;
|
||||||
|
|
||||||
|
/** Create a thread */
|
||||||
|
#if ((defined(__WIN32__) && !defined(HAVE_LIBC)) || defined(__OS2__)) && !defined(__SYMBIAN32__)
|
||||||
|
/**
|
||||||
|
* We compile SDL into a DLL on OS/2. This means, that it's the DLL which
|
||||||
|
* creates a new thread for the calling process with the SDL_CreateThread()
|
||||||
|
* API. There is a problem with this, that only the RTL of the SDL.DLL will
|
||||||
|
* be initialized for those threads, and not the RTL of the calling application!
|
||||||
|
* To solve this, we make a little hack here.
|
||||||
|
* We'll always use the caller's _beginthread() and _endthread() APIs to
|
||||||
|
* start a new thread. This way, if it's the SDL.DLL which uses this API,
|
||||||
|
* then the RTL of SDL.DLL will be used to create the new thread, and if it's
|
||||||
|
* the application, then the RTL of the application will be used.
|
||||||
|
* So, in short:
|
||||||
|
* Always use the _beginthread() and _endthread() of the calling runtime library!
|
||||||
|
*/
|
||||||
|
#define SDL_PASSED_BEGINTHREAD_ENDTHREAD
|
||||||
|
#ifndef _WIN32_WCE
|
||||||
|
#include <process.h> /* This has _beginthread() and _endthread() defined! */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef __OS2__
|
||||||
|
typedef int (*pfnSDL_CurrentBeginThread)(void (*func)(void *), void *, unsigned, void *arg);
|
||||||
|
typedef void (*pfnSDL_CurrentEndThread)(void);
|
||||||
|
#elif __GNUC__
|
||||||
|
typedef unsigned long (__cdecl *pfnSDL_CurrentBeginThread) (void *, unsigned,
|
||||||
|
unsigned (__stdcall *func)(void *), void *arg,
|
||||||
|
unsigned, unsigned *threadID);
|
||||||
|
typedef void (__cdecl *pfnSDL_CurrentEndThread)(unsigned code);
|
||||||
|
#else
|
||||||
|
typedef uintptr_t (__cdecl *pfnSDL_CurrentBeginThread) (void *, unsigned,
|
||||||
|
unsigned (__stdcall *func)(void *), void *arg,
|
||||||
|
unsigned, unsigned *threadID);
|
||||||
|
typedef void (__cdecl *pfnSDL_CurrentEndThread)(unsigned code);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
extern DECLSPEC SDL_Thread * SDLCALL SDL_CreateThread(int (SDLCALL *fn)(void *), void *data, pfnSDL_CurrentBeginThread pfnBeginThread, pfnSDL_CurrentEndThread pfnEndThread);
|
||||||
|
|
||||||
|
#ifdef __OS2__
|
||||||
|
#define SDL_CreateThread(fn, data) SDL_CreateThread(fn, data, _beginthread, _endthread)
|
||||||
|
#elif defined(_WIN32_WCE)
|
||||||
|
#define SDL_CreateThread(fn, data) SDL_CreateThread(fn, data, NULL, NULL)
|
||||||
|
#else
|
||||||
|
#define SDL_CreateThread(fn, data) SDL_CreateThread(fn, data, _beginthreadex, _endthreadex)
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
extern DECLSPEC SDL_Thread * SDLCALL SDL_CreateThread(int (SDLCALL *fn)(void *), void *data);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** Get the 32-bit thread identifier for the current thread */
|
||||||
|
extern DECLSPEC Uint32 SDLCALL SDL_ThreadID(void);
|
||||||
|
|
||||||
|
/** Get the 32-bit thread identifier for the specified thread,
|
||||||
|
* equivalent to SDL_ThreadID() if the specified thread is NULL.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Uint32 SDLCALL SDL_GetThreadID(SDL_Thread *thread);
|
||||||
|
|
||||||
|
/** Wait for a thread to finish.
|
||||||
|
* The return code for the thread function is placed in the area
|
||||||
|
* pointed to by 'status', if 'status' is not NULL.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread *thread, int *status);
|
||||||
|
|
||||||
|
/** Forcefully kill a thread without worrying about its state */
|
||||||
|
extern DECLSPEC void SDLCALL SDL_KillThread(SDL_Thread *thread);
|
||||||
|
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_thread_h */
|
|
@ -0,0 +1,125 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_timer_h
|
||||||
|
#define _SDL_timer_h
|
||||||
|
|
||||||
|
/** @file SDL_timer.h
|
||||||
|
* Header for the SDL time management routines
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** This is the OS scheduler timeslice, in milliseconds */
|
||||||
|
#define SDL_TIMESLICE 10
|
||||||
|
|
||||||
|
/** This is the maximum resolution of the SDL timer on all platforms */
|
||||||
|
#define TIMER_RESOLUTION 10 /**< Experimentally determined */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the number of milliseconds since the SDL library initialization.
|
||||||
|
* Note that this value wraps if the program runs for more than ~49 days.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void);
|
||||||
|
|
||||||
|
/** Wait a specified number of milliseconds before returning */
|
||||||
|
extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms);
|
||||||
|
|
||||||
|
/** Function prototype for the timer callback function */
|
||||||
|
typedef Uint32 (SDLCALL *SDL_TimerCallback)(Uint32 interval);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set a callback to run after the specified number of milliseconds has
|
||||||
|
* elapsed. The callback function is passed the current timer interval
|
||||||
|
* and returns the next timer interval. If the returned value is the
|
||||||
|
* same as the one passed in, the periodic alarm continues, otherwise a
|
||||||
|
* new alarm is scheduled. If the callback returns 0, the periodic alarm
|
||||||
|
* is cancelled.
|
||||||
|
*
|
||||||
|
* To cancel a currently running timer, call SDL_SetTimer(0, NULL);
|
||||||
|
*
|
||||||
|
* The timer callback function may run in a different thread than your
|
||||||
|
* main code, and so shouldn't call any functions from within itself.
|
||||||
|
*
|
||||||
|
* The maximum resolution of this timer is 10 ms, which means that if
|
||||||
|
* you request a 16 ms timer, your callback will run approximately 20 ms
|
||||||
|
* later on an unloaded system. If you wanted to set a flag signaling
|
||||||
|
* a frame update at 30 frames per second (every 33 ms), you might set a
|
||||||
|
* timer for 30 ms:
|
||||||
|
* @code SDL_SetTimer((33/10)*10, flag_update); @endcode
|
||||||
|
*
|
||||||
|
* If you use this function, you need to pass SDL_INIT_TIMER to SDL_Init().
|
||||||
|
*
|
||||||
|
* Under UNIX, you should not use raise or use SIGALRM and this function
|
||||||
|
* in the same program, as it is implemented using setitimer(). You also
|
||||||
|
* should not use this function in multi-threaded applications as signals
|
||||||
|
* to multi-threaded apps have undefined behavior in some implementations.
|
||||||
|
*
|
||||||
|
* This function returns 0 if successful, or -1 if there was an error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SetTimer(Uint32 interval, SDL_TimerCallback callback);
|
||||||
|
|
||||||
|
/** @name New timer API
|
||||||
|
* New timer API, supports multiple timers
|
||||||
|
* Written by Stephane Peter <megastep@lokigames.com>
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function prototype for the new timer callback function.
|
||||||
|
* The callback function is passed the current timer interval and returns
|
||||||
|
* the next timer interval. If the returned value is the same as the one
|
||||||
|
* passed in, the periodic alarm continues, otherwise a new alarm is
|
||||||
|
* scheduled. If the callback returns 0, the periodic alarm is cancelled.
|
||||||
|
*/
|
||||||
|
typedef Uint32 (SDLCALL *SDL_NewTimerCallback)(Uint32 interval, void *param);
|
||||||
|
|
||||||
|
/** Definition of the timer ID type */
|
||||||
|
typedef struct _SDL_TimerID *SDL_TimerID;
|
||||||
|
|
||||||
|
/** Add a new timer to the pool of timers already running.
|
||||||
|
* Returns a timer ID, or NULL when an error occurs.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval, SDL_NewTimerCallback callback, void *param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove one of the multiple timers knowing its ID.
|
||||||
|
* Returns a boolean value indicating success.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_bool SDLCALL SDL_RemoveTimer(SDL_TimerID t);
|
||||||
|
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_timer_h */
|
|
@ -0,0 +1,28 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_types.h
|
||||||
|
* @deprecated Use SDL_stdinc.h instead.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* DEPRECATED */
|
||||||
|
#include "SDL_stdinc.h"
|
|
@ -0,0 +1,91 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_version.h
|
||||||
|
* This header defines the current SDL version
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_version_h
|
||||||
|
#define _SDL_version_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** @name Version Number
|
||||||
|
* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_MAJOR_VERSION 1
|
||||||
|
#define SDL_MINOR_VERSION 2
|
||||||
|
#define SDL_PATCHLEVEL 14
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
typedef struct SDL_version {
|
||||||
|
Uint8 major;
|
||||||
|
Uint8 minor;
|
||||||
|
Uint8 patch;
|
||||||
|
} SDL_version;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This macro can be used to fill a version structure with the compile-time
|
||||||
|
* version of the SDL library.
|
||||||
|
*/
|
||||||
|
#define SDL_VERSION(X) \
|
||||||
|
{ \
|
||||||
|
(X)->major = SDL_MAJOR_VERSION; \
|
||||||
|
(X)->minor = SDL_MINOR_VERSION; \
|
||||||
|
(X)->patch = SDL_PATCHLEVEL; \
|
||||||
|
}
|
||||||
|
|
||||||
|
/** This macro turns the version numbers into a numeric value:
|
||||||
|
* (1,2,3) -> (1203)
|
||||||
|
* This assumes that there will never be more than 100 patchlevels
|
||||||
|
*/
|
||||||
|
#define SDL_VERSIONNUM(X, Y, Z) \
|
||||||
|
((X)*1000 + (Y)*100 + (Z))
|
||||||
|
|
||||||
|
/** This is the version number macro for the current SDL version */
|
||||||
|
#define SDL_COMPILEDVERSION \
|
||||||
|
SDL_VERSIONNUM(SDL_MAJOR_VERSION, SDL_MINOR_VERSION, SDL_PATCHLEVEL)
|
||||||
|
|
||||||
|
/** This macro will evaluate to true if compiled with SDL at least X.Y.Z */
|
||||||
|
#define SDL_VERSION_ATLEAST(X, Y, Z) \
|
||||||
|
(SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z))
|
||||||
|
|
||||||
|
/** This function gets the version of the dynamically linked SDL library.
|
||||||
|
* it should NOT be used to fill a version structure, instead you should
|
||||||
|
* use the SDL_Version() macro.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC const SDL_version * SDLCALL SDL_Linked_Version(void);
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_version_h */
|
|
@ -0,0 +1,951 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** @file SDL_video.h
|
||||||
|
* Header file for access to the SDL raw framebuffer window
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef _SDL_video_h
|
||||||
|
#define _SDL_video_h
|
||||||
|
|
||||||
|
#include "SDL_stdinc.h"
|
||||||
|
#include "SDL_error.h"
|
||||||
|
#include "SDL_rwops.h"
|
||||||
|
|
||||||
|
#include "begin_code.h"
|
||||||
|
/* Set up for C function definitions, even when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** @name Transparency definitions
|
||||||
|
* These define alpha as the opacity of a surface
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_ALPHA_OPAQUE 255
|
||||||
|
#define SDL_ALPHA_TRANSPARENT 0
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @name Useful data types */
|
||||||
|
/*@{*/
|
||||||
|
typedef struct SDL_Rect {
|
||||||
|
Sint16 x, y;
|
||||||
|
Uint16 w, h;
|
||||||
|
} SDL_Rect;
|
||||||
|
|
||||||
|
typedef struct SDL_Color {
|
||||||
|
Uint8 r;
|
||||||
|
Uint8 g;
|
||||||
|
Uint8 b;
|
||||||
|
Uint8 unused;
|
||||||
|
} SDL_Color;
|
||||||
|
#define SDL_Colour SDL_Color
|
||||||
|
|
||||||
|
typedef struct SDL_Palette {
|
||||||
|
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;
|
||||||
|
|
||||||
|
/** 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;
|
||||||
|
|
||||||
|
/** @name SDL_Surface Flags
|
||||||
|
* 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))
|
||||||
|
|
||||||
|
/** typedef for private surface blitting functions */
|
||||||
|
typedef int (*SDL_blit)(struct SDL_Surface *src, SDL_Rect *srcrect,
|
||||||
|
struct SDL_Surface *dst, SDL_Rect *dstrect);
|
||||||
|
|
||||||
|
|
||||||
|
/** Useful for determining the video hardware capabilities */
|
||||||
|
typedef struct SDL_VideoInfo {
|
||||||
|
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 */
|
||||||
|
int current_w; /**< Value: The current video mode width */
|
||||||
|
int current_h; /**< Value: The current video mode height */
|
||||||
|
} SDL_VideoInfo;
|
||||||
|
|
||||||
|
|
||||||
|
/** @name Overlay Formats
|
||||||
|
* 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 */
|
||||||
|
|
||||||
|
/** @name Hardware-specific surface info */
|
||||||
|
/*@{*/
|
||||||
|
struct private_yuvhwfuncs *hwfuncs;
|
||||||
|
struct private_yuvhwdata *hwdata;
|
||||||
|
/*@{*/
|
||||||
|
|
||||||
|
/** @name 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_GL_MULTISAMPLEBUFFERS,
|
||||||
|
SDL_GL_MULTISAMPLESAMPLES,
|
||||||
|
SDL_GL_ACCELERATED_VISUAL,
|
||||||
|
SDL_GL_SWAP_CONTROL
|
||||||
|
} SDL_GLattr;
|
||||||
|
|
||||||
|
/** @name flags for SDL_SetPalette() */
|
||||||
|
/*@{*/
|
||||||
|
#define SDL_LOGPAL 0x01
|
||||||
|
#define SDL_PHYSPAL 0x02
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* Function prototypes */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @name Video Init and Quit
|
||||||
|
* 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().
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
/**
|
||||||
|
* 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.
|
||||||
|
*
|
||||||
|
* If SDL_HWSURFACE is set in 'flags', the video surface will be placed in
|
||||||
|
* video memory, if possible, and you may have to call SDL_LockSurface()
|
||||||
|
* in order to access the raw framebuffer. Otherwise, the video surface
|
||||||
|
* will be created in system memory.
|
||||||
|
*
|
||||||
|
* If SDL_ASYNCBLIT is set in 'flags', SDL will try to perform rectangle
|
||||||
|
* updates asynchronously, but you must always lock before accessing pixels.
|
||||||
|
* SDL will wait for updates to complete before returning from the lock.
|
||||||
|
*
|
||||||
|
* If SDL_HWPALETTE is set in 'flags', the SDL library will guarantee
|
||||||
|
* that the colors set by SDL_SetColors() will be the colors you get.
|
||||||
|
* Otherwise, in 8-bit mode, SDL_SetColors() may not be able to set all
|
||||||
|
* of the colors exactly the way they are requested, and you should look
|
||||||
|
* at the video surface structure to determine the actual palette.
|
||||||
|
* If SDL cannot guarantee that the colors you request can be set,
|
||||||
|
* i.e. if the colormap is shared, then the video surface may be created
|
||||||
|
* under emulation in system memory, overriding the SDL_HWSURFACE flag.
|
||||||
|
*
|
||||||
|
* If SDL_FULLSCREEN is set in 'flags', the SDL library will try to set
|
||||||
|
* a fullscreen video mode. The default is to create a windowed mode
|
||||||
|
* if the current graphics system has a window manager.
|
||||||
|
* If the SDL library is able to set a fullscreen video mode, this flag
|
||||||
|
* will be set in the surface that is returned.
|
||||||
|
*
|
||||||
|
* If SDL_DOUBLEBUF is set in 'flags', the SDL library will try to set up
|
||||||
|
* two surfaces in video memory and swap between them when you call
|
||||||
|
* SDL_Flip(). This is usually slower than the normal single-buffering
|
||||||
|
* scheme, but prevents "tearing" artifacts caused by modifying video
|
||||||
|
* memory while the monitor is refreshing. It should only be used by
|
||||||
|
* applications that redraw the entire screen on every update.
|
||||||
|
*
|
||||||
|
* If SDL_RESIZABLE is set in 'flags', the SDL library will allow the
|
||||||
|
* window manager, if any, to resize the window at runtime. When this
|
||||||
|
* occurs, SDL will send a SDL_VIDEORESIZE event to you application,
|
||||||
|
* and you must respond to the event by re-calling SDL_SetVideoMode()
|
||||||
|
* with the requested size (or another size that suits the application).
|
||||||
|
*
|
||||||
|
* If SDL_NOFRAME is set in 'flags', the SDL library will create a window
|
||||||
|
* without any title bar or frame decoration. Fullscreen video modes have
|
||||||
|
* this flag set automatically.
|
||||||
|
*
|
||||||
|
* This function returns the video framebuffer surface, or NULL if it fails.
|
||||||
|
*
|
||||||
|
* If you rely on functionality provided by certain video flags, check the
|
||||||
|
* flags of the returned surface to make sure that functionality is available.
|
||||||
|
* SDL will fall back to reduced functionality if the exact flags you wanted
|
||||||
|
* are not available.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_Surface * SDLCALL SDL_SetVideoMode
|
||||||
|
(int width, int height, int bpp, Uint32 flags);
|
||||||
|
|
||||||
|
/** @name SDL_Update Functions
|
||||||
|
* These functions should not be called while 'screen' is locked.
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
/**
|
||||||
|
* Makes sure the given list of rectangles is updated on the given screen.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_UpdateRects
|
||||||
|
(SDL_Surface *screen, int numrects, SDL_Rect *rects);
|
||||||
|
/**
|
||||||
|
* If 'x', 'y', 'w' and 'h' are all 0, SDL_UpdateRect will update the entire
|
||||||
|
* screen.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_UpdateRect
|
||||||
|
(SDL_Surface *screen, Sint32 x, Sint32 y, Uint32 w, Uint32 h);
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* On hardware that supports double-buffering, this function sets up a flip
|
||||||
|
* and returns. The hardware will wait for vertical retrace, and then swap
|
||||||
|
* video buffers before the next video surface blit or lock will return.
|
||||||
|
* On hardware that doesn not support double-buffering, this is equivalent
|
||||||
|
* to calling SDL_UpdateRect(screen, 0, 0, 0, 0);
|
||||||
|
* The SDL_DOUBLEBUF flag must have been passed to SDL_SetVideoMode() when
|
||||||
|
* setting the video mode for this function to perform hardware flipping.
|
||||||
|
* This function returns 0 if successful, or -1 if there was an error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_Flip(SDL_Surface *screen);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the gamma correction for each of the color channels.
|
||||||
|
* The gamma values range (approximately) between 0.1 and 10.0
|
||||||
|
*
|
||||||
|
* If this function isn't supported directly by the hardware, it will
|
||||||
|
* be emulated using gamma ramps, if available. If successful, this
|
||||||
|
* function returns 0, otherwise it returns -1.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SetGamma(float red, float green, float blue);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the gamma translation table for the red, green, and blue channels
|
||||||
|
* of the video hardware. Each table is an array of 256 16-bit quantities,
|
||||||
|
* representing a mapping between the input and output for that channel.
|
||||||
|
* The input is the index into the array, and the output is the 16-bit
|
||||||
|
* gamma value at that index, scaled to the output color precision.
|
||||||
|
*
|
||||||
|
* You may pass NULL for any of the channels to leave it unchanged.
|
||||||
|
* If the call succeeds, it will return 0. If the display driver or
|
||||||
|
* hardware does not support gamma translation, or otherwise fails,
|
||||||
|
* this function will return -1.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SetGammaRamp(const Uint16 *red, const Uint16 *green, const Uint16 *blue);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieve the current values of the gamma translation tables.
|
||||||
|
*
|
||||||
|
* You must pass in valid pointers to arrays of 256 16-bit quantities.
|
||||||
|
* Any of the pointers may be NULL to ignore that channel.
|
||||||
|
* If the call succeeds, it will return 0. If the display driver or
|
||||||
|
* hardware does not support gamma translation, or otherwise fails,
|
||||||
|
* this function will return -1.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_GetGammaRamp(Uint16 *red, Uint16 *green, Uint16 *blue);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets a portion of the colormap for the given 8-bit surface. If 'surface'
|
||||||
|
* is not a palettized surface, this function does nothing, returning 0.
|
||||||
|
* If all of the colors were set as passed to SDL_SetColors(), it will
|
||||||
|
* return 1. If not all the color entries were set exactly as given,
|
||||||
|
* it will return 0, and you should look at the surface palette to
|
||||||
|
* determine the actual color palette.
|
||||||
|
*
|
||||||
|
* When 'surface' is the surface associated with the current display, the
|
||||||
|
* display colormap will be updated with the requested colors. If
|
||||||
|
* SDL_HWPALETTE was set in SDL_SetVideoMode() flags, SDL_SetColors()
|
||||||
|
* will always return 1, and the palette is guaranteed to be set the way
|
||||||
|
* you desire, even if the window colormap has to be warped or run under
|
||||||
|
* emulation.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SetColors(SDL_Surface *surface,
|
||||||
|
SDL_Color *colors, int firstcolor, int ncolors);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets a portion of the colormap for a given 8-bit surface.
|
||||||
|
* 'flags' is one or both of:
|
||||||
|
* SDL_LOGPAL -- set logical palette, which controls how blits are mapped
|
||||||
|
* to/from the surface,
|
||||||
|
* SDL_PHYSPAL -- set physical palette, which controls how pixels look on
|
||||||
|
* the screen
|
||||||
|
* Only screens have physical palettes. Separate change of physical/logical
|
||||||
|
* palettes is only possible if the screen has SDL_HWPALETTE set.
|
||||||
|
*
|
||||||
|
* The return value is 1 if all colours could be set as requested, and 0
|
||||||
|
* otherwise.
|
||||||
|
*
|
||||||
|
* SDL_SetColors() is equivalent to calling this function with
|
||||||
|
* flags = (SDL_LOGPAL|SDL_PHYSPAL).
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SetPalette(SDL_Surface *surface, int flags,
|
||||||
|
SDL_Color *colors, int firstcolor,
|
||||||
|
int ncolors);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maps an RGB triple to an opaque pixel value for a given pixel format
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Uint32 SDLCALL SDL_MapRGB
|
||||||
|
(const SDL_PixelFormat * const format,
|
||||||
|
const Uint8 r, const Uint8 g, const Uint8 b);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maps an RGBA quadruple to a pixel value for a given pixel format
|
||||||
|
*/
|
||||||
|
extern DECLSPEC Uint32 SDLCALL SDL_MapRGBA
|
||||||
|
(const SDL_PixelFormat * const format,
|
||||||
|
const Uint8 r, const Uint8 g, const Uint8 b, const Uint8 a);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maps a pixel value into the RGB components for a given pixel format
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_GetRGB(Uint32 pixel,
|
||||||
|
const SDL_PixelFormat * const fmt,
|
||||||
|
Uint8 *r, Uint8 *g, Uint8 *b);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Maps a pixel value into the RGBA components for a given pixel format
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_GetRGBA(Uint32 pixel,
|
||||||
|
const SDL_PixelFormat * const fmt,
|
||||||
|
Uint8 *r, Uint8 *g, Uint8 *b, Uint8 *a);
|
||||||
|
|
||||||
|
/** @sa SDL_CreateRGBSurface */
|
||||||
|
#define SDL_AllocSurface SDL_CreateRGBSurface
|
||||||
|
/**
|
||||||
|
* Allocate and free an RGB surface (must be called after SDL_SetVideoMode)
|
||||||
|
* If the depth is 4 or 8 bits, an empty palette is allocated for the surface.
|
||||||
|
* If the depth is greater than 8 bits, the pixel format is set using the
|
||||||
|
* flags '[RGB]mask'.
|
||||||
|
* If the function runs out of memory, it will return NULL.
|
||||||
|
*
|
||||||
|
* The 'flags' tell what kind of surface to create.
|
||||||
|
* SDL_SWSURFACE means that the surface should be created in system memory.
|
||||||
|
* SDL_HWSURFACE means that the surface should be created in video memory,
|
||||||
|
* with the same format as the display surface. This is useful for surfaces
|
||||||
|
* that will not change much, to take advantage of hardware acceleration
|
||||||
|
* when being blitted to the display surface.
|
||||||
|
* SDL_ASYNCBLIT means that SDL will try to perform asynchronous blits with
|
||||||
|
* this surface, but you must always lock it before accessing the pixels.
|
||||||
|
* SDL will wait for current blits to finish before returning from the lock.
|
||||||
|
* SDL_SRCCOLORKEY indicates that the surface will be used for colorkey blits.
|
||||||
|
* If the hardware supports acceleration of colorkey blits between
|
||||||
|
* two surfaces in video memory, SDL will try to place the surface in
|
||||||
|
* video memory. If this isn't possible or if there is no hardware
|
||||||
|
* acceleration available, the surface will be placed in system memory.
|
||||||
|
* SDL_SRCALPHA means that the surface will be used for alpha blits and
|
||||||
|
* if the hardware supports hardware acceleration of alpha blits between
|
||||||
|
* two surfaces in video memory, to place the surface in video memory
|
||||||
|
* if possible, otherwise it will be placed in system memory.
|
||||||
|
* If the surface is created in video memory, blits will be _much_ faster,
|
||||||
|
* but the surface format must be identical to the video surface format,
|
||||||
|
* and the only way to access the pixels member of the surface is to use
|
||||||
|
* the SDL_LockSurface() and SDL_UnlockSurface() calls.
|
||||||
|
* If the requested surface actually resides in video memory, SDL_HWSURFACE
|
||||||
|
* will be set in the flags member of the returned surface. If for some
|
||||||
|
* reason the surface could not be placed in video memory, it will not have
|
||||||
|
* the SDL_HWSURFACE flag set, and will be created in system memory instead.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_Surface * SDLCALL SDL_CreateRGBSurface
|
||||||
|
(Uint32 flags, int width, int height, int depth,
|
||||||
|
Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask);
|
||||||
|
/** @sa SDL_CreateRGBSurface */
|
||||||
|
extern DECLSPEC SDL_Surface * SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels,
|
||||||
|
int width, int height, int depth, int pitch,
|
||||||
|
Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask);
|
||||||
|
extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface *surface);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SDL_LockSurface() sets up a surface for directly accessing the pixels.
|
||||||
|
* Between calls to SDL_LockSurface()/SDL_UnlockSurface(), you can write
|
||||||
|
* to and read from 'surface->pixels', using the pixel format stored in
|
||||||
|
* 'surface->format'. Once you are done accessing the surface, you should
|
||||||
|
* use SDL_UnlockSurface() to release it.
|
||||||
|
*
|
||||||
|
* Not all surfaces require locking. If SDL_MUSTLOCK(surface) evaluates
|
||||||
|
* to 0, then you can read and write to the surface at any time, and the
|
||||||
|
* pixel format of the surface will not change. In particular, if the
|
||||||
|
* SDL_HWSURFACE flag is not given when calling SDL_SetVideoMode(), you
|
||||||
|
* will not need to lock the display surface before accessing it.
|
||||||
|
*
|
||||||
|
* No operating system or library calls should be made between lock/unlock
|
||||||
|
* pairs, as critical system locks may be held during this time.
|
||||||
|
*
|
||||||
|
* SDL_LockSurface() returns 0, or -1 if the surface couldn't be locked.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_LockSurface(SDL_Surface *surface);
|
||||||
|
extern DECLSPEC void SDLCALL SDL_UnlockSurface(SDL_Surface *surface);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load a surface from a seekable SDL data source (memory or file.)
|
||||||
|
* If 'freesrc' is non-zero, the source will be closed after being read.
|
||||||
|
* Returns the new surface, or NULL if there was an error.
|
||||||
|
* The new surface should be freed with SDL_FreeSurface().
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_Surface * SDLCALL SDL_LoadBMP_RW(SDL_RWops *src, int freesrc);
|
||||||
|
|
||||||
|
/** Convenience macro -- load a surface from a file */
|
||||||
|
#define SDL_LoadBMP(file) SDL_LoadBMP_RW(SDL_RWFromFile(file, "rb"), 1)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Save a surface to a seekable SDL data source (memory or file.)
|
||||||
|
* If 'freedst' is non-zero, the source will be closed after being written.
|
||||||
|
* Returns 0 if successful or -1 if there was an error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SaveBMP_RW
|
||||||
|
(SDL_Surface *surface, SDL_RWops *dst, int freedst);
|
||||||
|
|
||||||
|
/** Convenience macro -- save a surface to a file */
|
||||||
|
#define SDL_SaveBMP(surface, file) \
|
||||||
|
SDL_SaveBMP_RW(surface, SDL_RWFromFile(file, "wb"), 1)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the color key (transparent pixel) in a blittable surface.
|
||||||
|
* If 'flag' is SDL_SRCCOLORKEY (optionally OR'd with SDL_RLEACCEL),
|
||||||
|
* 'key' will be the transparent pixel in the source image of a blit.
|
||||||
|
* SDL_RLEACCEL requests RLE acceleration for the surface if present,
|
||||||
|
* and removes RLE acceleration if absent.
|
||||||
|
* If 'flag' is 0, this function clears any current color key.
|
||||||
|
* This function returns 0, or -1 if there was an error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SetColorKey
|
||||||
|
(SDL_Surface *surface, Uint32 flag, Uint32 key);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function sets the alpha value for the entire surface, as opposed to
|
||||||
|
* using the alpha component of each pixel. This value measures the range
|
||||||
|
* of transparency of the surface, 0 being completely transparent to 255
|
||||||
|
* being completely opaque. An 'alpha' value of 255 causes blits to be
|
||||||
|
* opaque, the source pixels copied to the destination (the default). Note
|
||||||
|
* that per-surface alpha can be combined with colorkey transparency.
|
||||||
|
*
|
||||||
|
* If 'flag' is 0, alpha blending is disabled for the surface.
|
||||||
|
* If 'flag' is SDL_SRCALPHA, alpha blending is enabled for the surface.
|
||||||
|
* OR:ing the flag with SDL_RLEACCEL requests RLE acceleration for the
|
||||||
|
* surface; if SDL_RLEACCEL is not specified, the RLE accel will be removed.
|
||||||
|
*
|
||||||
|
* The 'alpha' parameter is ignored for surfaces that have an alpha channel.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SetAlpha(SDL_Surface *surface, Uint32 flag, Uint8 alpha);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the clipping rectangle for the destination surface in a blit.
|
||||||
|
*
|
||||||
|
* If the clip rectangle is NULL, clipping will be disabled.
|
||||||
|
* If the clip rectangle doesn't intersect the surface, the function will
|
||||||
|
* return SDL_FALSE and blits will be completely clipped. Otherwise the
|
||||||
|
* function returns SDL_TRUE and blits to the surface will be clipped to
|
||||||
|
* the intersection of the surface area and the clipping rectangle.
|
||||||
|
*
|
||||||
|
* Note that blits are automatically clipped to the edges of the source
|
||||||
|
* and destination surfaces.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_bool SDLCALL SDL_SetClipRect(SDL_Surface *surface, const SDL_Rect *rect);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the clipping rectangle for the destination surface in a blit.
|
||||||
|
* 'rect' must be a pointer to a valid rectangle which will be filled
|
||||||
|
* with the correct values.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface *surface, SDL_Rect *rect);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new surface of the specified format, and then copies and maps
|
||||||
|
* the given surface to it so the blit of the converted surface will be as
|
||||||
|
* fast as possible. If this function fails, it returns NULL.
|
||||||
|
*
|
||||||
|
* The 'flags' parameter is passed to SDL_CreateRGBSurface() and has those
|
||||||
|
* semantics. You can also pass SDL_RLEACCEL in the flags parameter and
|
||||||
|
* SDL will try to RLE accelerate colorkey and alpha blits in the resulting
|
||||||
|
* surface.
|
||||||
|
*
|
||||||
|
* This function is used internally by SDL_DisplayFormat().
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_Surface * SDLCALL SDL_ConvertSurface
|
||||||
|
(SDL_Surface *src, SDL_PixelFormat *fmt, Uint32 flags);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This performs a fast blit from the source surface to the destination
|
||||||
|
* surface. It assumes that the source and destination rectangles are
|
||||||
|
* the same size. If either 'srcrect' or 'dstrect' are NULL, the entire
|
||||||
|
* surface (src or dst) is copied. The final blit rectangles are saved
|
||||||
|
* in 'srcrect' and 'dstrect' after all clipping is performed.
|
||||||
|
* If the blit is successful, it returns 0, otherwise it returns -1.
|
||||||
|
*
|
||||||
|
* The blit function should not be called on a locked surface.
|
||||||
|
*
|
||||||
|
* The blit semantics for surfaces with and without alpha and colorkey
|
||||||
|
* are defined as follows:
|
||||||
|
*
|
||||||
|
* RGBA->RGB:
|
||||||
|
* SDL_SRCALPHA set:
|
||||||
|
* alpha-blend (using alpha-channel).
|
||||||
|
* SDL_SRCCOLORKEY ignored.
|
||||||
|
* SDL_SRCALPHA not set:
|
||||||
|
* copy RGB.
|
||||||
|
* if SDL_SRCCOLORKEY set, only copy the pixels matching the
|
||||||
|
* RGB values of the source colour key, ignoring alpha in the
|
||||||
|
* comparison.
|
||||||
|
*
|
||||||
|
* RGB->RGBA:
|
||||||
|
* SDL_SRCALPHA set:
|
||||||
|
* alpha-blend (using the source per-surface alpha value);
|
||||||
|
* set destination alpha to opaque.
|
||||||
|
* SDL_SRCALPHA not set:
|
||||||
|
* copy RGB, set destination alpha to source per-surface alpha value.
|
||||||
|
* both:
|
||||||
|
* if SDL_SRCCOLORKEY set, only copy the pixels matching the
|
||||||
|
* source colour key.
|
||||||
|
*
|
||||||
|
* RGBA->RGBA:
|
||||||
|
* SDL_SRCALPHA set:
|
||||||
|
* alpha-blend (using the source alpha channel) the RGB values;
|
||||||
|
* leave destination alpha untouched. [Note: is this correct?]
|
||||||
|
* SDL_SRCCOLORKEY ignored.
|
||||||
|
* SDL_SRCALPHA not set:
|
||||||
|
* copy all of RGBA to the destination.
|
||||||
|
* if SDL_SRCCOLORKEY set, only copy the pixels matching the
|
||||||
|
* RGB values of the source colour key, ignoring alpha in the
|
||||||
|
* comparison.
|
||||||
|
*
|
||||||
|
* RGB->RGB:
|
||||||
|
* SDL_SRCALPHA set:
|
||||||
|
* alpha-blend (using the source per-surface alpha value).
|
||||||
|
* SDL_SRCALPHA not set:
|
||||||
|
* copy RGB.
|
||||||
|
* both:
|
||||||
|
* if SDL_SRCCOLORKEY set, only copy the pixels matching the
|
||||||
|
* source colour key.
|
||||||
|
*
|
||||||
|
* If either of the surfaces were in video memory, and the blit returns -2,
|
||||||
|
* the video memory was lost, so it should be reloaded with artwork and
|
||||||
|
* re-blitted:
|
||||||
|
* @code
|
||||||
|
* while ( SDL_BlitSurface(image, imgrect, screen, dstrect) == -2 ) {
|
||||||
|
* while ( SDL_LockSurface(image) < 0 )
|
||||||
|
* Sleep(10);
|
||||||
|
* -- Write image pixels to image->pixels --
|
||||||
|
* SDL_UnlockSurface(image);
|
||||||
|
* }
|
||||||
|
* @endcode
|
||||||
|
*
|
||||||
|
* This happens under DirectX 5.0 when the system switches away from your
|
||||||
|
* fullscreen application. The lock will also fail until you have access
|
||||||
|
* to the video memory again.
|
||||||
|
*
|
||||||
|
* You should call SDL_BlitSurface() unless you know exactly how SDL
|
||||||
|
* blitting works internally and how to use the other blit functions.
|
||||||
|
*/
|
||||||
|
#define SDL_BlitSurface SDL_UpperBlit
|
||||||
|
|
||||||
|
/** This is the public blit function, SDL_BlitSurface(), and it performs
|
||||||
|
* rectangle validation and clipping before passing it to SDL_LowerBlit()
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_UpperBlit
|
||||||
|
(SDL_Surface *src, SDL_Rect *srcrect,
|
||||||
|
SDL_Surface *dst, SDL_Rect *dstrect);
|
||||||
|
/** This is a semi-private blit function and it performs low-level surface
|
||||||
|
* blitting only.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_LowerBlit
|
||||||
|
(SDL_Surface *src, SDL_Rect *srcrect,
|
||||||
|
SDL_Surface *dst, SDL_Rect *dstrect);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function performs a fast fill of the given rectangle with 'color'
|
||||||
|
* The given rectangle is clipped to the destination surface clip area
|
||||||
|
* and the final fill rectangle is saved in the passed in pointer.
|
||||||
|
* If 'dstrect' is NULL, the whole surface will be filled with 'color'
|
||||||
|
* The color should be a pixel of the format used by the surface, and
|
||||||
|
* can be generated by the SDL_MapRGB() function.
|
||||||
|
* This function returns 0 on success, or -1 on error.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_FillRect
|
||||||
|
(SDL_Surface *dst, SDL_Rect *dstrect, Uint32 color);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function takes a surface and copies it to a new surface of the
|
||||||
|
* pixel format and colors of the video framebuffer, suitable for fast
|
||||||
|
* blitting onto the display surface. It calls SDL_ConvertSurface()
|
||||||
|
*
|
||||||
|
* If you want to take advantage of hardware colorkey or alpha blit
|
||||||
|
* acceleration, you should set the colorkey and alpha value before
|
||||||
|
* calling this function.
|
||||||
|
*
|
||||||
|
* If the conversion fails or runs out of memory, it returns NULL
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_Surface * SDLCALL SDL_DisplayFormat(SDL_Surface *surface);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function takes a surface and copies it to a new surface of the
|
||||||
|
* pixel format and colors of the video framebuffer (if possible),
|
||||||
|
* suitable for fast alpha blitting onto the display surface.
|
||||||
|
* The new surface will always have an alpha channel.
|
||||||
|
*
|
||||||
|
* If you want to take advantage of hardware colorkey or alpha blit
|
||||||
|
* acceleration, you should set the colorkey and alpha value before
|
||||||
|
* calling this function.
|
||||||
|
*
|
||||||
|
* If the conversion fails or runs out of memory, it returns NULL
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_Surface * SDLCALL SDL_DisplayFormatAlpha(SDL_Surface *surface);
|
||||||
|
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
/** @name YUV video surface overlay functions */ /*@{*/
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/** This function creates a video output overlay
|
||||||
|
* Calling the returned surface an overlay is something of a misnomer because
|
||||||
|
* the contents of the display surface underneath the area where the overlay
|
||||||
|
* is shown is undefined - it may be overwritten with the converted YUV data.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_Overlay * SDLCALL SDL_CreateYUVOverlay(int width, int height,
|
||||||
|
Uint32 format, SDL_Surface *display);
|
||||||
|
|
||||||
|
/** Lock an overlay for direct access, and unlock it when you are done */
|
||||||
|
extern DECLSPEC int SDLCALL SDL_LockYUVOverlay(SDL_Overlay *overlay);
|
||||||
|
extern DECLSPEC void SDLCALL SDL_UnlockYUVOverlay(SDL_Overlay *overlay);
|
||||||
|
|
||||||
|
/** Blit a video overlay to the display surface.
|
||||||
|
* The contents of the video surface underneath the blit destination are
|
||||||
|
* not defined.
|
||||||
|
* The width and height of the destination rectangle may be different from
|
||||||
|
* that of the overlay, but currently only 2x scaling is supported.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_DisplayYUVOverlay(SDL_Overlay *overlay, SDL_Rect *dstrect);
|
||||||
|
|
||||||
|
/** Free a video overlay */
|
||||||
|
extern DECLSPEC void SDLCALL SDL_FreeYUVOverlay(SDL_Overlay *overlay);
|
||||||
|
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
/** @name OpenGL support functions. */ /*@{*/
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Dynamically load an OpenGL library, or the default one if path is NULL
|
||||||
|
*
|
||||||
|
* If you do this, you need to retrieve all of the GL functions used in
|
||||||
|
* your program from the dynamic library using SDL_GL_GetProcAddress().
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_GL_LoadLibrary(const char *path);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the address of a GL function
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void * SDLCALL SDL_GL_GetProcAddress(const char* proc);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set an attribute of the OpenGL subsystem before intialization.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_GL_SetAttribute(SDL_GLattr attr, int value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get an attribute of the OpenGL subsystem from the windowing
|
||||||
|
* interface, such as glX. This is of course different from getting
|
||||||
|
* the values from SDL's internal OpenGL subsystem, which only
|
||||||
|
* stores the values you request before initialization.
|
||||||
|
*
|
||||||
|
* Developers should track the values they pass into SDL_GL_SetAttribute
|
||||||
|
* themselves if they want to retrieve these values.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_GL_GetAttribute(SDL_GLattr attr, int* value);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Swap the OpenGL buffers, if double-buffering is supported.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_GL_SwapBuffers(void);
|
||||||
|
|
||||||
|
/** @name OpenGL Internal Functions
|
||||||
|
* Internal functions that should not be called unless you have read
|
||||||
|
* and understood the source code for these functions.
|
||||||
|
*/
|
||||||
|
/*@{*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_GL_UpdateRects(int numrects, SDL_Rect* rects);
|
||||||
|
extern DECLSPEC void SDLCALL SDL_GL_Lock(void);
|
||||||
|
extern DECLSPEC void SDLCALL SDL_GL_Unlock(void);
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
/** @name Window Manager Functions */
|
||||||
|
/** These functions allow interaction with the window manager, if any. */ /*@{*/
|
||||||
|
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the title and icon text of the display window (UTF-8 encoded)
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_WM_SetCaption(const char *title, const char *icon);
|
||||||
|
/**
|
||||||
|
* Gets the title and icon text of the display window (UTF-8 encoded)
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_WM_GetCaption(char **title, char **icon);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the icon for the display window.
|
||||||
|
* This function must be called before the first call to SDL_SetVideoMode().
|
||||||
|
* It takes an icon surface, and a mask in MSB format.
|
||||||
|
* If 'mask' is NULL, the entire icon surface will be used as the icon.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC void SDLCALL SDL_WM_SetIcon(SDL_Surface *icon, Uint8 *mask);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This function iconifies the window, and returns 1 if it succeeded.
|
||||||
|
* If the function succeeds, it generates an SDL_APPACTIVE loss event.
|
||||||
|
* This function is a noop and returns 0 in non-windowed environments.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_WM_IconifyWindow(void);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Toggle fullscreen mode without changing the contents of the screen.
|
||||||
|
* If the display surface does not require locking before accessing
|
||||||
|
* the pixel information, then the memory pointers will not change.
|
||||||
|
*
|
||||||
|
* If this function was able to toggle fullscreen mode (change from
|
||||||
|
* running in a window to fullscreen, or vice-versa), it will return 1.
|
||||||
|
* If it is not implemented, or fails, it returns 0.
|
||||||
|
*
|
||||||
|
* The next call to SDL_SetVideoMode() will set the mode fullscreen
|
||||||
|
* attribute based on the flags parameter - if SDL_FULLSCREEN is not
|
||||||
|
* set, then the display will be windowed by default where supported.
|
||||||
|
*
|
||||||
|
* This is currently only implemented in the X11 video driver.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC int SDLCALL SDL_WM_ToggleFullScreen(SDL_Surface *surface);
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
SDL_GRAB_QUERY = -1,
|
||||||
|
SDL_GRAB_OFF = 0,
|
||||||
|
SDL_GRAB_ON = 1,
|
||||||
|
SDL_GRAB_FULLSCREEN /**< Used internally */
|
||||||
|
} SDL_GrabMode;
|
||||||
|
/**
|
||||||
|
* This function allows you to set and query the input grab state of
|
||||||
|
* the application. It returns the new input grab state.
|
||||||
|
*
|
||||||
|
* Grabbing means that the mouse is confined to the application window,
|
||||||
|
* and nearly all keyboard input is passed directly to the application,
|
||||||
|
* and not interpreted by a window manager, if any.
|
||||||
|
*/
|
||||||
|
extern DECLSPEC SDL_GrabMode SDLCALL SDL_WM_GrabInput(SDL_GrabMode mode);
|
||||||
|
|
||||||
|
/*@}*/
|
||||||
|
|
||||||
|
/** @internal Not in public API at the moment - do not use! */
|
||||||
|
extern DECLSPEC int SDLCALL SDL_SoftStretch(SDL_Surface *src, SDL_Rect *srcrect,
|
||||||
|
SDL_Surface *dst, SDL_Rect *dstrect);
|
||||||
|
|
||||||
|
/* Ends C function definitions when using C++ */
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#include "close_code.h"
|
||||||
|
|
||||||
|
#endif /* _SDL_video_h */
|
|
@ -0,0 +1,191 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file begin_code.h
|
||||||
|
* This file sets things up for C dynamic library function definitions,
|
||||||
|
* static inlined functions, and structures aligned at 4-byte alignment.
|
||||||
|
* If you don't like ugly C preprocessor code, don't look at this file. :)
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file begin_code.h
|
||||||
|
* This shouldn't be nested -- included it around code only.
|
||||||
|
*/
|
||||||
|
#ifdef _begin_code_h
|
||||||
|
#error Nested inclusion of begin_code.h
|
||||||
|
#endif
|
||||||
|
#define _begin_code_h
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def DECLSPEC
|
||||||
|
* Some compilers use a special export keyword
|
||||||
|
*/
|
||||||
|
#ifndef DECLSPEC
|
||||||
|
# if defined(__BEOS__) || defined(__HAIKU__)
|
||||||
|
# if defined(__GNUC__)
|
||||||
|
# define DECLSPEC __declspec(dllexport)
|
||||||
|
# else
|
||||||
|
# define DECLSPEC __declspec(export)
|
||||||
|
# endif
|
||||||
|
# elif defined(__WIN32__)
|
||||||
|
# ifdef __BORLANDC__
|
||||||
|
# ifdef BUILD_SDL
|
||||||
|
# define DECLSPEC
|
||||||
|
# else
|
||||||
|
# define DECLSPEC __declspec(dllimport)
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define DECLSPEC __declspec(dllexport)
|
||||||
|
# endif
|
||||||
|
# elif defined(__OS2__)
|
||||||
|
# ifdef __WATCOMC__
|
||||||
|
# ifdef BUILD_SDL
|
||||||
|
# define DECLSPEC __declspec(dllexport)
|
||||||
|
# else
|
||||||
|
# define DECLSPEC
|
||||||
|
# endif
|
||||||
|
# elif defined (__GNUC__) && __GNUC__ < 4
|
||||||
|
# /* Added support for GCC-EMX <v4.x */
|
||||||
|
# /* this is needed for XFree86/OS2 developement */
|
||||||
|
# /* F. Ambacher(anakor@snafu.de) 05.2008 */
|
||||||
|
# ifdef BUILD_SDL
|
||||||
|
# define DECLSPEC __declspec(dllexport)
|
||||||
|
# else
|
||||||
|
# define DECLSPEC
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define DECLSPEC
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# if defined(__GNUC__) && __GNUC__ >= 4
|
||||||
|
# define DECLSPEC __attribute__ ((visibility("default")))
|
||||||
|
# else
|
||||||
|
# define DECLSPEC
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def SDLCALL
|
||||||
|
* By default SDL uses the C calling convention
|
||||||
|
*/
|
||||||
|
#ifndef SDLCALL
|
||||||
|
# if defined(__WIN32__) && !defined(__GNUC__)
|
||||||
|
# define SDLCALL __cdecl
|
||||||
|
# elif defined(__OS2__)
|
||||||
|
# if defined (__GNUC__) && __GNUC__ < 4
|
||||||
|
# /* Added support for GCC-EMX <v4.x */
|
||||||
|
# /* this is needed for XFree86/OS2 developement */
|
||||||
|
# /* F. Ambacher(anakor@snafu.de) 05.2008 */
|
||||||
|
# define SDLCALL _cdecl
|
||||||
|
# else
|
||||||
|
# /* On other compilers on OS/2, we use the _System calling convention */
|
||||||
|
# /* to be compatible with every compiler */
|
||||||
|
# define SDLCALL _System
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
# define SDLCALL
|
||||||
|
# endif
|
||||||
|
#endif /* SDLCALL */
|
||||||
|
|
||||||
|
#ifdef __SYMBIAN32__
|
||||||
|
#ifndef EKA2
|
||||||
|
#undef DECLSPEC
|
||||||
|
#define DECLSPEC
|
||||||
|
#elif !defined(__WINS__)
|
||||||
|
#undef DECLSPEC
|
||||||
|
#define DECLSPEC __declspec(dllexport)
|
||||||
|
#endif /* !EKA2 */
|
||||||
|
#endif /* __SYMBIAN32__ */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file begin_code.h
|
||||||
|
* Force structure packing at 4 byte alignment.
|
||||||
|
* This is necessary if the header is included in code which has structure
|
||||||
|
* packing set to an alternate value, say for loading structures from disk.
|
||||||
|
* The packing is reset to the previous value in close_code.h
|
||||||
|
*/
|
||||||
|
#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__BORLANDC__)
|
||||||
|
#ifdef _MSC_VER
|
||||||
|
#pragma warning(disable: 4103)
|
||||||
|
#endif
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
#pragma nopackwarning
|
||||||
|
#endif
|
||||||
|
#pragma pack(push,4)
|
||||||
|
#elif (defined(__MWERKS__) && defined(__MACOS__))
|
||||||
|
#pragma options align=mac68k4byte
|
||||||
|
#pragma enumsalwaysint on
|
||||||
|
#endif /* Compiler needs structure packing set */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def SDL_INLINE_OKAY
|
||||||
|
* Set up compiler-specific options for inlining functions
|
||||||
|
*/
|
||||||
|
#ifndef SDL_INLINE_OKAY
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#define SDL_INLINE_OKAY
|
||||||
|
#else
|
||||||
|
/* Add any special compiler-specific cases here */
|
||||||
|
#if defined(_MSC_VER) || defined(__BORLANDC__) || \
|
||||||
|
defined(__DMC__) || defined(__SC__) || \
|
||||||
|
defined(__WATCOMC__) || defined(__LCC__) || \
|
||||||
|
defined(__DECC) || defined(__EABI__)
|
||||||
|
#ifndef __inline__
|
||||||
|
#define __inline__ __inline
|
||||||
|
#endif
|
||||||
|
#define SDL_INLINE_OKAY
|
||||||
|
#else
|
||||||
|
#if !defined(__MRC__) && !defined(_SGI_SOURCE)
|
||||||
|
#ifndef __inline__
|
||||||
|
#define __inline__ inline
|
||||||
|
#endif
|
||||||
|
#define SDL_INLINE_OKAY
|
||||||
|
#endif /* Not a funky compiler */
|
||||||
|
#endif /* Visual C++ */
|
||||||
|
#endif /* GNU C */
|
||||||
|
#endif /* SDL_INLINE_OKAY */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def __inline__
|
||||||
|
* If inlining isn't supported, remove "__inline__", turning static
|
||||||
|
* inlined functions into static functions (resulting in code bloat
|
||||||
|
* in all files which include the offending header files)
|
||||||
|
*/
|
||||||
|
#ifndef SDL_INLINE_OKAY
|
||||||
|
#define __inline__
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @def NULL
|
||||||
|
* Apparently this is needed by several Windows compilers
|
||||||
|
*/
|
||||||
|
#if !defined(__MACH__)
|
||||||
|
#ifndef NULL
|
||||||
|
#ifdef __cplusplus
|
||||||
|
#define NULL 0
|
||||||
|
#else
|
||||||
|
#define NULL ((void *)0)
|
||||||
|
#endif
|
||||||
|
#endif /* NULL */
|
||||||
|
#endif /* ! Mac OS X - breaks precompiled headers */
|
|
@ -0,0 +1,46 @@
|
||||||
|
/*
|
||||||
|
SDL - Simple DirectMedia Layer
|
||||||
|
Copyright (C) 1997-2009 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
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file close_code.h
|
||||||
|
* This file reverses the effects of begin_code.h and should be included
|
||||||
|
* after you finish any function and structure declarations in your headers
|
||||||
|
*/
|
||||||
|
|
||||||
|
#undef _begin_code_h
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @file close_code.h
|
||||||
|
* Reset structure packing at previous byte alignment
|
||||||
|
*/
|
||||||
|
#if defined(_MSC_VER) || defined(__MWERKS__) || defined(__WATCOMC__) || defined(__BORLANDC__)
|
||||||
|
#ifdef __BORLANDC__
|
||||||
|
#pragma nopackwarning
|
||||||
|
#endif
|
||||||
|
#if (defined(__MWERKS__) && defined(__MACOS__))
|
||||||
|
#pragma options align=reset
|
||||||
|
#pragma enumsalwaysint reset
|
||||||
|
#else
|
||||||
|
#pragma pack(pop)
|
||||||
|
#endif
|
||||||
|
#endif /* Compiler needs structure packing set */
|
||||||
|
|
|
@ -0,0 +1,946 @@
|
||||||
|
# Doxyfile 1.2.16
|
||||||
|
|
||||||
|
# This file describes the settings to be used by the documentation system
|
||||||
|
# doxygen (www.doxygen.org) for a project
|
||||||
|
#
|
||||||
|
# All text after a hash (#) is considered a comment and will be ignored
|
||||||
|
# The format is:
|
||||||
|
# TAG = value [value, ...]
|
||||||
|
# For lists items can also be appended using:
|
||||||
|
# TAG += value [value, ...]
|
||||||
|
# Values that contain spaces should be placed between quotes (" ")
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# General configuration options
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
|
||||||
|
# by quotes) that should identify the project.
|
||||||
|
|
||||||
|
PROJECT_NAME = SDL
|
||||||
|
|
||||||
|
# The PROJECT_NUMBER tag can be used to enter a project or revision number.
|
||||||
|
# This could be handy for archiving the generated documentation or
|
||||||
|
# if some version control system is used.
|
||||||
|
|
||||||
|
PROJECT_NUMBER = 1.2.14
|
||||||
|
|
||||||
|
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
|
||||||
|
# base path where the generated documentation will be put.
|
||||||
|
# If a relative path is entered, it will be relative to the location
|
||||||
|
# where doxygen was started. If left blank the current directory will be used.
|
||||||
|
|
||||||
|
OUTPUT_DIRECTORY = docs
|
||||||
|
|
||||||
|
# The OUTPUT_LANGUAGE tag is used to specify the language in which all
|
||||||
|
# documentation generated by doxygen is written. Doxygen will use this
|
||||||
|
# information to generate all constant output in the proper language.
|
||||||
|
# The default language is English, other supported languages are:
|
||||||
|
# Brazilian, Chinese, Chinese-Traditional, Croatian, Czech, Danish, Dutch,
|
||||||
|
# Finnish, French, German, Greek, Hungarian, Italian, Japanese, Korean,
|
||||||
|
# Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovene,
|
||||||
|
# Spanish, Swedish and Ukrainian.
|
||||||
|
|
||||||
|
OUTPUT_LANGUAGE = English
|
||||||
|
|
||||||
|
# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
|
||||||
|
# documentation are documented, even if no documentation was available.
|
||||||
|
# Private class members and static file members will be hidden unless
|
||||||
|
# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
|
||||||
|
|
||||||
|
EXTRACT_ALL = NO
|
||||||
|
|
||||||
|
# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
|
||||||
|
# will be included in the documentation.
|
||||||
|
|
||||||
|
EXTRACT_PRIVATE = NO
|
||||||
|
|
||||||
|
# If the EXTRACT_STATIC tag is set to YES all static members of a file
|
||||||
|
# will be included in the documentation.
|
||||||
|
|
||||||
|
EXTRACT_STATIC = NO
|
||||||
|
|
||||||
|
# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
|
||||||
|
# defined locally in source files will be included in the documentation.
|
||||||
|
# If set to NO only classes defined in header files are included.
|
||||||
|
|
||||||
|
EXTRACT_LOCAL_CLASSES = NO
|
||||||
|
|
||||||
|
# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
|
||||||
|
# undocumented members of documented classes, files or namespaces.
|
||||||
|
# If set to NO (the default) these members will be included in the
|
||||||
|
# various overviews, but no documentation section is generated.
|
||||||
|
# This option has no effect if EXTRACT_ALL is enabled.
|
||||||
|
|
||||||
|
HIDE_UNDOC_MEMBERS = NO
|
||||||
|
|
||||||
|
# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
|
||||||
|
# undocumented classes that are normally visible in the class hierarchy.
|
||||||
|
# If set to NO (the default) these class will be included in the various
|
||||||
|
# overviews. This option has no effect if EXTRACT_ALL is enabled.
|
||||||
|
|
||||||
|
HIDE_UNDOC_CLASSES = NO
|
||||||
|
|
||||||
|
# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
|
||||||
|
# include brief member descriptions after the members that are listed in
|
||||||
|
# the file and class documentation (similar to JavaDoc).
|
||||||
|
# Set to NO to disable this.
|
||||||
|
|
||||||
|
BRIEF_MEMBER_DESC = YES
|
||||||
|
|
||||||
|
# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
|
||||||
|
# the brief description of a member or function before the detailed description.
|
||||||
|
# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
|
||||||
|
# brief descriptions will be completely suppressed.
|
||||||
|
|
||||||
|
REPEAT_BRIEF = YES
|
||||||
|
|
||||||
|
# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
|
||||||
|
# Doxygen will generate a detailed section even if there is only a brief
|
||||||
|
# description.
|
||||||
|
|
||||||
|
ALWAYS_DETAILED_SEC = NO
|
||||||
|
|
||||||
|
# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all inherited
|
||||||
|
# members of a class in the documentation of that class as if those members were
|
||||||
|
# ordinary class members. Constructors, destructors and assignment operators of
|
||||||
|
# the base classes will not be shown.
|
||||||
|
|
||||||
|
INLINE_INHERITED_MEMB = NO
|
||||||
|
|
||||||
|
# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
|
||||||
|
# path before files name in the file list and in the header files. If set
|
||||||
|
# to NO the shortest path that makes the file name unique will be used.
|
||||||
|
|
||||||
|
FULL_PATH_NAMES = NO
|
||||||
|
|
||||||
|
# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
|
||||||
|
# can be used to strip a user defined part of the path. Stripping is
|
||||||
|
# only done if one of the specified strings matches the left-hand part of
|
||||||
|
# the path. It is allowed to use relative paths in the argument list.
|
||||||
|
|
||||||
|
STRIP_FROM_PATH =
|
||||||
|
|
||||||
|
# The INTERNAL_DOCS tag determines if documentation
|
||||||
|
# that is typed after a \internal command is included. If the tag is set
|
||||||
|
# to NO (the default) then the documentation will be excluded.
|
||||||
|
# Set it to YES to include the internal documentation.
|
||||||
|
|
||||||
|
INTERNAL_DOCS = NO
|
||||||
|
|
||||||
|
# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
|
||||||
|
# doxygen to hide any special comment blocks from generated source code
|
||||||
|
# fragments. Normal C and C++ comments will always remain visible.
|
||||||
|
|
||||||
|
STRIP_CODE_COMMENTS = YES
|
||||||
|
|
||||||
|
# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
|
||||||
|
# file names in lower case letters. If set to YES upper case letters are also
|
||||||
|
# allowed. This is useful if you have classes or files whose names only differ
|
||||||
|
# in case and if your file system supports case sensitive file names. Windows
|
||||||
|
# users are adviced to set this option to NO.
|
||||||
|
|
||||||
|
CASE_SENSE_NAMES = YES
|
||||||
|
|
||||||
|
# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
|
||||||
|
# (but less readable) file names. This can be useful is your file systems
|
||||||
|
# doesn't support long names like on DOS, Mac, or CD-ROM.
|
||||||
|
|
||||||
|
SHORT_NAMES = NO
|
||||||
|
|
||||||
|
# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
|
||||||
|
# will show members with their full class and namespace scopes in the
|
||||||
|
# documentation. If set to YES the scope will be hidden.
|
||||||
|
|
||||||
|
HIDE_SCOPE_NAMES = NO
|
||||||
|
|
||||||
|
# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
|
||||||
|
# will generate a verbatim copy of the header file for each class for
|
||||||
|
# which an include is specified. Set to NO to disable this.
|
||||||
|
|
||||||
|
VERBATIM_HEADERS = YES
|
||||||
|
|
||||||
|
# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
|
||||||
|
# will put list of the files that are included by a file in the documentation
|
||||||
|
# of that file.
|
||||||
|
|
||||||
|
SHOW_INCLUDE_FILES = YES
|
||||||
|
|
||||||
|
# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
|
||||||
|
# will interpret the first line (until the first dot) of a JavaDoc-style
|
||||||
|
# comment as the brief description. If set to NO, the JavaDoc
|
||||||
|
# comments will behave just like the Qt-style comments (thus requiring an
|
||||||
|
# explict @brief command for a brief description.
|
||||||
|
|
||||||
|
JAVADOC_AUTOBRIEF = NO
|
||||||
|
|
||||||
|
# If the DETAILS_AT_TOP tag is set to YES then Doxygen
|
||||||
|
# will output the detailed description near the top, like JavaDoc.
|
||||||
|
# If set to NO, the detailed description appears after the member
|
||||||
|
# documentation.
|
||||||
|
|
||||||
|
DETAILS_AT_TOP = NO
|
||||||
|
|
||||||
|
# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
|
||||||
|
# member inherits the documentation from any documented member that it
|
||||||
|
# reimplements.
|
||||||
|
|
||||||
|
INHERIT_DOCS = YES
|
||||||
|
|
||||||
|
# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
|
||||||
|
# is inserted in the documentation for inline members.
|
||||||
|
|
||||||
|
INLINE_INFO = YES
|
||||||
|
|
||||||
|
# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
|
||||||
|
# will sort the (detailed) documentation of file and class members
|
||||||
|
# alphabetically by member name. If set to NO the members will appear in
|
||||||
|
# declaration order.
|
||||||
|
|
||||||
|
SORT_MEMBER_DOCS = YES
|
||||||
|
|
||||||
|
# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
|
||||||
|
# tag is set to YES, then doxygen will reuse the documentation of the first
|
||||||
|
# member in the group (if any) for the other members of the group. By default
|
||||||
|
# all members of a group must be documented explicitly.
|
||||||
|
|
||||||
|
DISTRIBUTE_GROUP_DOC = NO
|
||||||
|
|
||||||
|
# The TAB_SIZE tag can be used to set the number of spaces in a tab.
|
||||||
|
# Doxygen uses this value to replace tabs by spaces in code fragments.
|
||||||
|
|
||||||
|
TAB_SIZE = 4
|
||||||
|
|
||||||
|
# The GENERATE_TODOLIST tag can be used to enable (YES) or
|
||||||
|
# disable (NO) the todo list. This list is created by putting \todo
|
||||||
|
# commands in the documentation.
|
||||||
|
|
||||||
|
GENERATE_TODOLIST = YES
|
||||||
|
|
||||||
|
# The GENERATE_TESTLIST tag can be used to enable (YES) or
|
||||||
|
# disable (NO) the test list. This list is created by putting \test
|
||||||
|
# commands in the documentation.
|
||||||
|
|
||||||
|
GENERATE_TESTLIST = YES
|
||||||
|
|
||||||
|
# The GENERATE_BUGLIST tag can be used to enable (YES) or
|
||||||
|
# disable (NO) the bug list. This list is created by putting \bug
|
||||||
|
# commands in the documentation.
|
||||||
|
|
||||||
|
GENERATE_BUGLIST = YES
|
||||||
|
|
||||||
|
# This tag can be used to specify a number of aliases that acts
|
||||||
|
# as commands in the documentation. An alias has the form "name=value".
|
||||||
|
# For example adding "sideeffect=\par Side Effects:\n" will allow you to
|
||||||
|
# put the command \sideeffect (or @sideeffect) in the documentation, which
|
||||||
|
# will result in a user defined paragraph with heading "Side Effects:".
|
||||||
|
# You can put \n's in the value part of an alias to insert newlines.
|
||||||
|
|
||||||
|
ALIASES =
|
||||||
|
|
||||||
|
# The ENABLED_SECTIONS tag can be used to enable conditional
|
||||||
|
# documentation sections, marked by \if sectionname ... \endif.
|
||||||
|
|
||||||
|
ENABLED_SECTIONS =
|
||||||
|
|
||||||
|
# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
|
||||||
|
# the initial value of a variable or define consist of for it to appear in
|
||||||
|
# the documentation. If the initializer consists of more lines than specified
|
||||||
|
# here it will be hidden. Use a value of 0 to hide initializers completely.
|
||||||
|
# The appearance of the initializer of individual variables and defines in the
|
||||||
|
# documentation can be controlled using \showinitializer or \hideinitializer
|
||||||
|
# command in the documentation regardless of this setting.
|
||||||
|
|
||||||
|
MAX_INITIALIZER_LINES = 30
|
||||||
|
|
||||||
|
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
|
||||||
|
# only. Doxygen will then generate output that is more tailored for C.
|
||||||
|
# For instance some of the names that are used will be different. The list
|
||||||
|
# of all members will be omitted, etc.
|
||||||
|
|
||||||
|
OPTIMIZE_OUTPUT_FOR_C = YES
|
||||||
|
|
||||||
|
# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java sources
|
||||||
|
# only. Doxygen will then generate output that is more tailored for Java.
|
||||||
|
# For instance namespaces will be presented as packages, qualified scopes
|
||||||
|
# will look different, etc.
|
||||||
|
|
||||||
|
OPTIMIZE_OUTPUT_JAVA = NO
|
||||||
|
|
||||||
|
# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
|
||||||
|
# at the bottom of the documentation of classes and structs. If set to YES the
|
||||||
|
# list will mention the files that were used to generate the documentation.
|
||||||
|
|
||||||
|
SHOW_USED_FILES = YES
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to warning and progress messages
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# The QUIET tag can be used to turn on/off the messages that are generated
|
||||||
|
# by doxygen. Possible values are YES and NO. If left blank NO is used.
|
||||||
|
|
||||||
|
QUIET = NO
|
||||||
|
|
||||||
|
# The WARNINGS tag can be used to turn on/off the warning messages that are
|
||||||
|
# generated by doxygen. Possible values are YES and NO. If left blank
|
||||||
|
# NO is used.
|
||||||
|
|
||||||
|
WARNINGS = YES
|
||||||
|
|
||||||
|
# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
|
||||||
|
# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
|
||||||
|
# automatically be disabled.
|
||||||
|
|
||||||
|
WARN_IF_UNDOCUMENTED = YES
|
||||||
|
|
||||||
|
# The WARN_FORMAT tag determines the format of the warning messages that
|
||||||
|
# doxygen can produce. The string should contain the $file, $line, and $text
|
||||||
|
# tags, which will be replaced by the file and line number from which the
|
||||||
|
# warning originated and the warning text.
|
||||||
|
|
||||||
|
WARN_FORMAT = "$file:$line: $text"
|
||||||
|
|
||||||
|
# The WARN_LOGFILE tag can be used to specify a file to which warning
|
||||||
|
# and error messages should be written. If left blank the output is written
|
||||||
|
# to stderr.
|
||||||
|
|
||||||
|
WARN_LOGFILE =
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the input files
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# The INPUT tag can be used to specify the files and/or directories that contain
|
||||||
|
# documented source files. You may enter file names like "myfile.cpp" or
|
||||||
|
# directories like "/usr/src/myproject". Separate the files or directories
|
||||||
|
# with spaces.
|
||||||
|
|
||||||
|
INPUT = include
|
||||||
|
|
||||||
|
# If the value of the INPUT tag contains directories, you can use the
|
||||||
|
# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
|
||||||
|
# and *.h) to filter out the source-files in the directories. If left
|
||||||
|
# blank the following patterns are tested:
|
||||||
|
# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx *.hpp
|
||||||
|
# *.h++ *.idl *.odl
|
||||||
|
|
||||||
|
FILE_PATTERNS = *.h
|
||||||
|
|
||||||
|
# The RECURSIVE tag can be used to turn specify whether or not subdirectories
|
||||||
|
# should be searched for input files as well. Possible values are YES and NO.
|
||||||
|
# If left blank NO is used.
|
||||||
|
|
||||||
|
RECURSIVE = NO
|
||||||
|
|
||||||
|
# The EXCLUDE tag can be used to specify files and/or directories that should
|
||||||
|
# excluded from the INPUT source files. This way you can easily exclude a
|
||||||
|
# subdirectory from a directory tree whose root is specified with the INPUT tag.
|
||||||
|
|
||||||
|
EXCLUDE =
|
||||||
|
|
||||||
|
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories
|
||||||
|
# that are symbolic links (a Unix filesystem feature) are excluded from the input.
|
||||||
|
|
||||||
|
EXCLUDE_SYMLINKS = NO
|
||||||
|
|
||||||
|
# If the value of the INPUT tag contains directories, you can use the
|
||||||
|
# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
|
||||||
|
# certain files from those directories.
|
||||||
|
|
||||||
|
EXCLUDE_PATTERNS =
|
||||||
|
|
||||||
|
# The EXAMPLE_PATH tag can be used to specify one or more files or
|
||||||
|
# directories that contain example code fragments that are included (see
|
||||||
|
# the \include command).
|
||||||
|
|
||||||
|
EXAMPLE_PATH =
|
||||||
|
|
||||||
|
# If the value of the EXAMPLE_PATH tag contains directories, you can use the
|
||||||
|
# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
|
||||||
|
# and *.h) to filter out the source-files in the directories. If left
|
||||||
|
# blank all files are included.
|
||||||
|
|
||||||
|
EXAMPLE_PATTERNS =
|
||||||
|
|
||||||
|
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
|
||||||
|
# searched for input files to be used with the \include or \dontinclude
|
||||||
|
# commands irrespective of the value of the RECURSIVE tag.
|
||||||
|
# Possible values are YES and NO. If left blank NO is used.
|
||||||
|
|
||||||
|
EXAMPLE_RECURSIVE = NO
|
||||||
|
|
||||||
|
# The IMAGE_PATH tag can be used to specify one or more files or
|
||||||
|
# directories that contain image that are included in the documentation (see
|
||||||
|
# the \image command).
|
||||||
|
|
||||||
|
IMAGE_PATH =
|
||||||
|
|
||||||
|
# The INPUT_FILTER tag can be used to specify a program that doxygen should
|
||||||
|
# invoke to filter for each input file. Doxygen will invoke the filter program
|
||||||
|
# by executing (via popen()) the command <filter> <input-file>, where <filter>
|
||||||
|
# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
|
||||||
|
# input file. Doxygen will then use the output that the filter program writes
|
||||||
|
# to standard output.
|
||||||
|
|
||||||
|
INPUT_FILTER =
|
||||||
|
|
||||||
|
# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
|
||||||
|
# INPUT_FILTER) will be used to filter the input files when producing source
|
||||||
|
# files to browse.
|
||||||
|
|
||||||
|
FILTER_SOURCE_FILES = NO
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to source browsing
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# If the SOURCE_BROWSER tag is set to YES then a list of source files will
|
||||||
|
# be generated. Documented entities will be cross-referenced with these sources.
|
||||||
|
|
||||||
|
SOURCE_BROWSER = NO
|
||||||
|
|
||||||
|
# Setting the INLINE_SOURCES tag to YES will include the body
|
||||||
|
# of functions and classes directly in the documentation.
|
||||||
|
|
||||||
|
INLINE_SOURCES = NO
|
||||||
|
|
||||||
|
# If the REFERENCED_BY_RELATION tag is set to YES (the default)
|
||||||
|
# then for each documented function all documented
|
||||||
|
# functions referencing it will be listed.
|
||||||
|
|
||||||
|
REFERENCED_BY_RELATION = YES
|
||||||
|
|
||||||
|
# If the REFERENCES_RELATION tag is set to YES (the default)
|
||||||
|
# then for each documented function all documented entities
|
||||||
|
# called/used by that function will be listed.
|
||||||
|
|
||||||
|
REFERENCES_RELATION = YES
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the alphabetical class index
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
|
||||||
|
# of all compounds will be generated. Enable this if the project
|
||||||
|
# contains a lot of classes, structs, unions or interfaces.
|
||||||
|
|
||||||
|
ALPHABETICAL_INDEX = NO
|
||||||
|
|
||||||
|
# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
|
||||||
|
# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
|
||||||
|
# in which this list will be split (can be a number in the range [1..20])
|
||||||
|
|
||||||
|
COLS_IN_ALPHA_INDEX = 5
|
||||||
|
|
||||||
|
# In case all classes in a project start with a common prefix, all
|
||||||
|
# classes will be put under the same header in the alphabetical index.
|
||||||
|
# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
|
||||||
|
# should be ignored while generating the index headers.
|
||||||
|
|
||||||
|
IGNORE_PREFIX =
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the HTML output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
|
||||||
|
# generate HTML output.
|
||||||
|
|
||||||
|
GENERATE_HTML = YES
|
||||||
|
|
||||||
|
# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
|
||||||
|
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||||
|
# put in front of it. If left blank `html' will be used as the default path.
|
||||||
|
|
||||||
|
HTML_OUTPUT = html
|
||||||
|
|
||||||
|
# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
|
||||||
|
# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
|
||||||
|
# doxygen will generate files with .html extension.
|
||||||
|
|
||||||
|
HTML_FILE_EXTENSION = .html
|
||||||
|
|
||||||
|
# The HTML_HEADER tag can be used to specify a personal HTML header for
|
||||||
|
# each generated HTML page. If it is left blank doxygen will generate a
|
||||||
|
# standard header.
|
||||||
|
|
||||||
|
HTML_HEADER =
|
||||||
|
|
||||||
|
# The HTML_FOOTER tag can be used to specify a personal HTML footer for
|
||||||
|
# each generated HTML page. If it is left blank doxygen will generate a
|
||||||
|
# standard footer.
|
||||||
|
|
||||||
|
HTML_FOOTER =
|
||||||
|
|
||||||
|
# The HTML_STYLESHEET tag can be used to specify a user defined cascading
|
||||||
|
# style sheet that is used by each HTML page. It can be used to
|
||||||
|
# fine-tune the look of the HTML output. If the tag is left blank doxygen
|
||||||
|
# will generate a default style sheet
|
||||||
|
|
||||||
|
HTML_STYLESHEET =
|
||||||
|
|
||||||
|
# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
|
||||||
|
# files or namespaces will be aligned in HTML using tables. If set to
|
||||||
|
# NO a bullet list will be used.
|
||||||
|
|
||||||
|
HTML_ALIGN_MEMBERS = YES
|
||||||
|
|
||||||
|
# If the GENERATE_HTMLHELP tag is set to YES, additional index files
|
||||||
|
# will be generated that can be used as input for tools like the
|
||||||
|
# Microsoft HTML help workshop to generate a compressed HTML help file (.chm)
|
||||||
|
# of the generated HTML documentation.
|
||||||
|
|
||||||
|
GENERATE_HTMLHELP = NO
|
||||||
|
|
||||||
|
# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
|
||||||
|
# controls if a separate .chi index file is generated (YES) or that
|
||||||
|
# it should be included in the master .chm file (NO).
|
||||||
|
|
||||||
|
GENERATE_CHI = NO
|
||||||
|
|
||||||
|
# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
|
||||||
|
# controls whether a binary table of contents is generated (YES) or a
|
||||||
|
# normal table of contents (NO) in the .chm file.
|
||||||
|
|
||||||
|
BINARY_TOC = NO
|
||||||
|
|
||||||
|
# The TOC_EXPAND flag can be set to YES to add extra items for group members
|
||||||
|
# to the contents of the Html help documentation and to the tree view.
|
||||||
|
|
||||||
|
TOC_EXPAND = NO
|
||||||
|
|
||||||
|
# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
|
||||||
|
# top of each HTML page. The value NO (the default) enables the index and
|
||||||
|
# the value YES disables it.
|
||||||
|
|
||||||
|
DISABLE_INDEX = NO
|
||||||
|
|
||||||
|
# This tag can be used to set the number of enum values (range [1..20])
|
||||||
|
# that doxygen will group on one line in the generated HTML documentation.
|
||||||
|
|
||||||
|
ENUM_VALUES_PER_LINE = 4
|
||||||
|
|
||||||
|
# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
|
||||||
|
# generated containing a tree-like index structure (just like the one that
|
||||||
|
# is generated for HTML Help). For this to work a browser that supports
|
||||||
|
# JavaScript and frames is required (for instance Mozilla, Netscape 4.0+,
|
||||||
|
# or Internet explorer 4.0+). Note that for large projects the tree generation
|
||||||
|
# can take a very long time. In such cases it is better to disable this feature.
|
||||||
|
# Windows users are probably better off using the HTML help feature.
|
||||||
|
|
||||||
|
GENERATE_TREEVIEW = NO
|
||||||
|
|
||||||
|
# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
|
||||||
|
# used to set the initial width (in pixels) of the frame in which the tree
|
||||||
|
# is shown.
|
||||||
|
|
||||||
|
TREEVIEW_WIDTH = 250
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the LaTeX output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
|
||||||
|
# generate Latex output.
|
||||||
|
|
||||||
|
GENERATE_LATEX = NO
|
||||||
|
|
||||||
|
# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
|
||||||
|
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||||
|
# put in front of it. If left blank `latex' will be used as the default path.
|
||||||
|
|
||||||
|
LATEX_OUTPUT = latex
|
||||||
|
|
||||||
|
# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be invoked. If left blank `latex' will be used as the default command name.
|
||||||
|
|
||||||
|
LATEX_CMD_NAME = latex
|
||||||
|
|
||||||
|
# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
|
||||||
|
# generate index for LaTeX. If left blank `makeindex' will be used as the
|
||||||
|
# default command name.
|
||||||
|
|
||||||
|
MAKEINDEX_CMD_NAME = makeindex
|
||||||
|
|
||||||
|
# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
|
||||||
|
# LaTeX documents. This may be useful for small projects and may help to
|
||||||
|
# save some trees in general.
|
||||||
|
|
||||||
|
COMPACT_LATEX = NO
|
||||||
|
|
||||||
|
# The PAPER_TYPE tag can be used to set the paper type that is used
|
||||||
|
# by the printer. Possible values are: a4, a4wide, letter, legal and
|
||||||
|
# executive. If left blank a4wide will be used.
|
||||||
|
|
||||||
|
PAPER_TYPE = a4wide
|
||||||
|
|
||||||
|
# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
|
||||||
|
# packages that should be included in the LaTeX output.
|
||||||
|
|
||||||
|
EXTRA_PACKAGES =
|
||||||
|
|
||||||
|
# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
|
||||||
|
# the generated latex document. The header should contain everything until
|
||||||
|
# the first chapter. If it is left blank doxygen will generate a
|
||||||
|
# standard header. Notice: only use this tag if you know what you are doing!
|
||||||
|
|
||||||
|
LATEX_HEADER =
|
||||||
|
|
||||||
|
# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
|
||||||
|
# is prepared for conversion to pdf (using ps2pdf). The pdf file will
|
||||||
|
# contain links (just like the HTML output) instead of page references
|
||||||
|
# This makes the output suitable for online browsing using a pdf viewer.
|
||||||
|
|
||||||
|
PDF_HYPERLINKS = NO
|
||||||
|
|
||||||
|
# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
|
||||||
|
# plain latex in the generated Makefile. Set this option to YES to get a
|
||||||
|
# higher quality PDF documentation.
|
||||||
|
|
||||||
|
USE_PDFLATEX = NO
|
||||||
|
|
||||||
|
# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
|
||||||
|
# command to the generated LaTeX files. This will instruct LaTeX to keep
|
||||||
|
# running if errors occur, instead of asking the user for help.
|
||||||
|
# This option is also used when generating formulas in HTML.
|
||||||
|
|
||||||
|
LATEX_BATCHMODE = NO
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the RTF output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
|
||||||
|
# The RTF output is optimised for Word 97 and may not look very pretty with
|
||||||
|
# other RTF readers or editors.
|
||||||
|
|
||||||
|
GENERATE_RTF = YES
|
||||||
|
|
||||||
|
# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
|
||||||
|
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||||
|
# put in front of it. If left blank `rtf' will be used as the default path.
|
||||||
|
|
||||||
|
RTF_OUTPUT = rtf
|
||||||
|
|
||||||
|
# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
|
||||||
|
# RTF documents. This may be useful for small projects and may help to
|
||||||
|
# save some trees in general.
|
||||||
|
|
||||||
|
COMPACT_RTF = NO
|
||||||
|
|
||||||
|
# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
|
||||||
|
# will contain hyperlink fields. The RTF file will
|
||||||
|
# contain links (just like the HTML output) instead of page references.
|
||||||
|
# This makes the output suitable for online browsing using WORD or other
|
||||||
|
# programs which support those fields.
|
||||||
|
# Note: wordpad (write) and others do not support links.
|
||||||
|
|
||||||
|
RTF_HYPERLINKS = NO
|
||||||
|
|
||||||
|
# Load stylesheet definitions from file. Syntax is similar to doxygen's
|
||||||
|
# config file, i.e. a series of assigments. You only have to provide
|
||||||
|
# replacements, missing definitions are set to their default value.
|
||||||
|
|
||||||
|
RTF_STYLESHEET_FILE =
|
||||||
|
|
||||||
|
# Set optional variables used in the generation of an rtf document.
|
||||||
|
# Syntax is similar to doxygen's config file.
|
||||||
|
|
||||||
|
RTF_EXTENSIONS_FILE =
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the man page output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
|
||||||
|
# generate man pages
|
||||||
|
|
||||||
|
GENERATE_MAN = YES
|
||||||
|
|
||||||
|
# The MAN_OUTPUT tag is used to specify where the man pages will be put.
|
||||||
|
# If a relative path is entered the value of OUTPUT_DIRECTORY will be
|
||||||
|
# put in front of it. If left blank `man' will be used as the default path.
|
||||||
|
|
||||||
|
MAN_OUTPUT = man
|
||||||
|
|
||||||
|
# The MAN_EXTENSION tag determines the extension that is added to
|
||||||
|
# the generated man pages (default is the subroutine's section .3)
|
||||||
|
|
||||||
|
MAN_EXTENSION = .3
|
||||||
|
|
||||||
|
# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
|
||||||
|
# then it will generate one additional man file for each entity
|
||||||
|
# documented in the real man page(s). These additional files
|
||||||
|
# only source the real man page, but without them the man command
|
||||||
|
# would be unable to find the correct page. The default is NO.
|
||||||
|
|
||||||
|
MAN_LINKS = YES
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options related to the XML output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# If the GENERATE_XML tag is set to YES Doxygen will
|
||||||
|
# generate an XML file that captures the structure of
|
||||||
|
# the code including all documentation. Note that this
|
||||||
|
# feature is still experimental and incomplete at the
|
||||||
|
# moment.
|
||||||
|
|
||||||
|
GENERATE_XML = NO
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# configuration options for the AutoGen Definitions output
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
|
||||||
|
# generate an AutoGen Definitions (see autogen.sf.net) file
|
||||||
|
# that captures the structure of the code including all
|
||||||
|
# documentation. Note that this feature is still experimental
|
||||||
|
# and incomplete at the moment.
|
||||||
|
|
||||||
|
GENERATE_AUTOGEN_DEF = NO
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# Configuration options related to the preprocessor
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
|
||||||
|
# evaluate all C-preprocessor directives found in the sources and include
|
||||||
|
# files.
|
||||||
|
|
||||||
|
ENABLE_PREPROCESSING = YES
|
||||||
|
|
||||||
|
# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
|
||||||
|
# names in the source code. If set to NO (the default) only conditional
|
||||||
|
# compilation will be performed. Macro expansion can be done in a controlled
|
||||||
|
# way by setting EXPAND_ONLY_PREDEF to YES.
|
||||||
|
|
||||||
|
MACRO_EXPANSION = YES
|
||||||
|
|
||||||
|
# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
|
||||||
|
# then the macro expansion is limited to the macros specified with the
|
||||||
|
# PREDEFINED and EXPAND_AS_PREDEFINED tags.
|
||||||
|
|
||||||
|
EXPAND_ONLY_PREDEF = YES
|
||||||
|
|
||||||
|
# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
|
||||||
|
# in the INCLUDE_PATH (see below) will be search if a #include is found.
|
||||||
|
|
||||||
|
SEARCH_INCLUDES = YES
|
||||||
|
|
||||||
|
# The INCLUDE_PATH tag can be used to specify one or more directories that
|
||||||
|
# contain include files that are not input files but should be processed by
|
||||||
|
# the preprocessor.
|
||||||
|
|
||||||
|
INCLUDE_PATH =
|
||||||
|
|
||||||
|
# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
|
||||||
|
# patterns (like *.h and *.hpp) to filter out the header-files in the
|
||||||
|
# directories. If left blank, the patterns specified with FILE_PATTERNS will
|
||||||
|
# be used.
|
||||||
|
|
||||||
|
INCLUDE_FILE_PATTERNS =
|
||||||
|
|
||||||
|
# The PREDEFINED tag can be used to specify one or more macro names that
|
||||||
|
# are defined before the preprocessor is started (similar to the -D option of
|
||||||
|
# gcc). The argument of the tag is a list of macros of the form: name
|
||||||
|
# or name=definition (no spaces). If the definition and the = are
|
||||||
|
# omitted =1 is assumed.
|
||||||
|
|
||||||
|
PREDEFINED = DOXYGEN_SHOULD_IGNORE_THIS=1 SDLCALL= SNDDECLSPEC=
|
||||||
|
|
||||||
|
# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then
|
||||||
|
# this tag can be used to specify a list of macro names that should be expanded.
|
||||||
|
# The macro definition that is found in the sources will be used.
|
||||||
|
# Use the PREDEFINED tag if you want to use a different macro definition.
|
||||||
|
|
||||||
|
EXPAND_AS_DEFINED =
|
||||||
|
|
||||||
|
# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
|
||||||
|
# doxygen's preprocessor will remove all function-like macros that are alone
|
||||||
|
# on a line and do not end with a semicolon. Such function macros are typically
|
||||||
|
# used for boiler-plate code, and will confuse the parser if not removed.
|
||||||
|
|
||||||
|
SKIP_FUNCTION_MACROS = YES
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# Configuration::addtions related to external references
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# The TAGFILES tag can be used to specify one or more tagfiles.
|
||||||
|
|
||||||
|
TAGFILES =
|
||||||
|
|
||||||
|
# When a file name is specified after GENERATE_TAGFILE, doxygen will create
|
||||||
|
# a tag file that is based on the input files it reads.
|
||||||
|
|
||||||
|
GENERATE_TAGFILE =
|
||||||
|
|
||||||
|
# If the ALLEXTERNALS tag is set to YES all external classes will be listed
|
||||||
|
# in the class index. If set to NO only the inherited external classes
|
||||||
|
# will be listed.
|
||||||
|
|
||||||
|
ALLEXTERNALS = NO
|
||||||
|
|
||||||
|
# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
|
||||||
|
# in the modules index. If set to NO, only the current project's groups will
|
||||||
|
# be listed.
|
||||||
|
|
||||||
|
EXTERNAL_GROUPS = YES
|
||||||
|
|
||||||
|
# The PERL_PATH should be the absolute path and name of the perl script
|
||||||
|
# interpreter (i.e. the result of `which perl').
|
||||||
|
|
||||||
|
PERL_PATH = /usr/bin/perl
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# Configuration options related to the dot tool
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
|
||||||
|
# generate a inheritance diagram (in Html, RTF and LaTeX) for classes with base or
|
||||||
|
# super classes. Setting the tag to NO turns the diagrams off. Note that this
|
||||||
|
# option is superceded by the HAVE_DOT option below. This is only a fallback. It is
|
||||||
|
# recommended to install and use dot, since it yields more powerful graphs.
|
||||||
|
|
||||||
|
CLASS_DIAGRAMS = NO
|
||||||
|
|
||||||
|
# If set to YES, the inheritance and collaboration graphs will hide
|
||||||
|
# inheritance and usage relations if the target is undocumented
|
||||||
|
# or is not a class.
|
||||||
|
|
||||||
|
HIDE_UNDOC_RELATIONS = YES
|
||||||
|
|
||||||
|
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
|
||||||
|
# available from the path. This tool is part of Graphviz, a graph visualization
|
||||||
|
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
|
||||||
|
# have no effect if this option is set to NO (the default)
|
||||||
|
|
||||||
|
HAVE_DOT = NO
|
||||||
|
|
||||||
|
# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
|
||||||
|
# will generate a graph for each documented class showing the direct and
|
||||||
|
# indirect inheritance relations. Setting this tag to YES will force the
|
||||||
|
# the CLASS_DIAGRAMS tag to NO.
|
||||||
|
|
||||||
|
CLASS_GRAPH = NO
|
||||||
|
|
||||||
|
# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
|
||||||
|
# will generate a graph for each documented class showing the direct and
|
||||||
|
# indirect implementation dependencies (inheritance, containment, and
|
||||||
|
# class references variables) of the class with other documented classes.
|
||||||
|
|
||||||
|
COLLABORATION_GRAPH = NO
|
||||||
|
|
||||||
|
# If set to YES, the inheritance and collaboration graphs will show the
|
||||||
|
# relations between templates and their instances.
|
||||||
|
|
||||||
|
TEMPLATE_RELATIONS = NO
|
||||||
|
|
||||||
|
# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
|
||||||
|
# tags are set to YES then doxygen will generate a graph for each documented
|
||||||
|
# file showing the direct and indirect include dependencies of the file with
|
||||||
|
# other documented files.
|
||||||
|
|
||||||
|
INCLUDE_GRAPH = NO
|
||||||
|
|
||||||
|
# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
|
||||||
|
# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
|
||||||
|
# documented header file showing the documented files that directly or
|
||||||
|
# indirectly include this file.
|
||||||
|
|
||||||
|
INCLUDED_BY_GRAPH = YES
|
||||||
|
|
||||||
|
# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
|
||||||
|
# will graphical hierarchy of all classes instead of a textual one.
|
||||||
|
|
||||||
|
GRAPHICAL_HIERARCHY = YES
|
||||||
|
|
||||||
|
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
|
||||||
|
# generated by dot. Possible values are png, jpg, or gif
|
||||||
|
# If left blank png will be used.
|
||||||
|
|
||||||
|
DOT_IMAGE_FORMAT = png
|
||||||
|
|
||||||
|
# The tag DOT_PATH can be used to specify the path where the dot tool can be
|
||||||
|
# found. If left blank, it is assumed the dot tool can be found on the path.
|
||||||
|
|
||||||
|
DOT_PATH =
|
||||||
|
|
||||||
|
# The DOTFILE_DIRS tag can be used to specify one or more directories that
|
||||||
|
# contain dot files that are included in the documentation (see the
|
||||||
|
# \dotfile command).
|
||||||
|
|
||||||
|
DOTFILE_DIRS =
|
||||||
|
|
||||||
|
# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width
|
||||||
|
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
|
||||||
|
# this value, doxygen will try to truncate the graph, so that it fits within
|
||||||
|
# the specified constraint. Beware that most browsers cannot cope with very
|
||||||
|
# large images.
|
||||||
|
|
||||||
|
MAX_DOT_GRAPH_WIDTH = 1024
|
||||||
|
|
||||||
|
# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height
|
||||||
|
# (in pixels) of the graphs generated by dot. If a graph becomes larger than
|
||||||
|
# this value, doxygen will try to truncate the graph, so that it fits within
|
||||||
|
# the specified constraint. Beware that most browsers cannot cope with very
|
||||||
|
# large images.
|
||||||
|
|
||||||
|
MAX_DOT_GRAPH_HEIGHT = 1024
|
||||||
|
|
||||||
|
# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
|
||||||
|
# generate a legend page explaining the meaning of the various boxes and
|
||||||
|
# arrows in the dot generated graphs.
|
||||||
|
|
||||||
|
GENERATE_LEGEND = YES
|
||||||
|
|
||||||
|
# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
|
||||||
|
# remove the intermedate dot files that are used to generate
|
||||||
|
# the various graphs.
|
||||||
|
|
||||||
|
DOT_CLEANUP = YES
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
# Configuration::addtions related to the search engine
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
# The SEARCHENGINE tag specifies whether or not a search engine should be
|
||||||
|
# used. If set to NO the values of all tags below this one will be ignored.
|
||||||
|
|
||||||
|
SEARCHENGINE = NO
|
||||||
|
|
||||||
|
# The CGI_NAME tag should be the name of the CGI script that
|
||||||
|
# starts the search engine (doxysearch) with the correct parameters.
|
||||||
|
# A script with this name will be generated by doxygen.
|
||||||
|
|
||||||
|
CGI_NAME = search.cgi
|
||||||
|
|
||||||
|
# The CGI_URL tag should be the absolute URL to the directory where the
|
||||||
|
# cgi binaries are located. See the documentation of your http daemon for
|
||||||
|
# details.
|
||||||
|
|
||||||
|
CGI_URL =
|
||||||
|
|
||||||
|
# The DOC_URL tag should be the absolute URL to the directory where the
|
||||||
|
# documentation is located. If left blank the absolute path to the
|
||||||
|
# documentation, with file:// prepended to it, will be used.
|
||||||
|
|
||||||
|
DOC_URL =
|
||||||
|
|
||||||
|
# The DOC_ABSPATH tag should be the absolute path to the directory where the
|
||||||
|
# documentation is located. If left blank the directory on the local machine
|
||||||
|
# will be used.
|
||||||
|
|
||||||
|
DOC_ABSPATH =
|
||||||
|
|
||||||
|
# The BIN_ABSPATH tag must point to the directory where the doxysearch binary
|
||||||
|
# is installed.
|
||||||
|
|
||||||
|
BIN_ABSPATH = /usr/local/bin/
|
||||||
|
|
||||||
|
# The EXT_DOC_PATHS tag can be used to specify one or more paths to
|
||||||
|
# documentation generated for other projects. This allows doxysearch to search
|
||||||
|
# the documentation for these projects as well.
|
||||||
|
|
||||||
|
EXT_DOC_PATHS =
|
|
@ -1,7 +1,7 @@
|
||||||
<?xml version="1.0" encoding="Windows-1252"?>
|
<?xml version="1.0" encoding="Windows-1252"?>
|
||||||
<VisualStudioProject
|
<VisualStudioProject
|
||||||
ProjectType="Visual C++"
|
ProjectType="Visual C++"
|
||||||
Version="9.00"
|
Version="9,00"
|
||||||
Name="wxDeSmuME_VS2008"
|
Name="wxDeSmuME_VS2008"
|
||||||
ProjectGUID="{9F5F72A1-D3A5-4918-B460-E076B16D10A9}"
|
ProjectGUID="{9F5F72A1-D3A5-4918-B460-E076B16D10A9}"
|
||||||
RootNamespace="DeSmuME"
|
RootNamespace="DeSmuME"
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
FavorSizeOrSpeed="0"
|
FavorSizeOrSpeed="0"
|
||||||
EnableFiberSafeOptimizations="false"
|
EnableFiberSafeOptimizations="false"
|
||||||
WholeProgramOptimization="false"
|
WholeProgramOptimization="false"
|
||||||
AdditionalIncludeDirectories=".;..;..\windows\lua\include;"..\windows\glib-2.20.1\build";"..\windows\glib-2.20.1\build\glib";..\windows\zlib123;..\windows\zziplib;..\windows\winpcap;..\windows\7z;..\windows\agg\include;..\windows\examples;..\windows\wx\include;..\windows"
|
AdditionalIncludeDirectories=".;..;..\windows\lua\include;"..\windows\glib-2.20.1\build";"..\windows\glib-2.20.1\build\glib";..\windows\zlib123;..\windows\zziplib;..\windows\winpcap;..\windows\7z;..\windows\agg\include;..\windows\examples;..\windows\wx\include;..\windows;..\windows\sdl\include"
|
||||||
PreprocessorDefinitions="DEBUG;_CRT_SECURE_NO_DEPRECATE;GLIB_STATIC_COMPILATION;WIN32;BETA_VERSION;NOMINMAX;HAVE_LIBZ;WXPORT"
|
PreprocessorDefinitions="DEBUG;_CRT_SECURE_NO_DEPRECATE;GLIB_STATIC_COMPILATION;WIN32;BETA_VERSION;NOMINMAX;HAVE_LIBZ;WXPORT"
|
||||||
ExceptionHandling="1"
|
ExceptionHandling="1"
|
||||||
BasicRuntimeChecks="3"
|
BasicRuntimeChecks="3"
|
||||||
|
@ -79,7 +79,7 @@
|
||||||
/>
|
/>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCLinkerTool"
|
Name="VCLinkerTool"
|
||||||
AdditionalDependencies="Rpcrt4.lib directx-win32-ddraw-dinput8-dsound-dxerr8-dxguid.lib lua-vc8-Win32-debug.lib glib-vc8-Win32.lib 7z-vc8-Win32.lib zlib-vc8-Win32.lib agg-2.5.lib vfw32.lib winmm.lib opengl32.lib glu32.lib ws2_32.lib user32.lib gdi32.lib shell32.lib comdlg32.lib shlwapi.lib comctl32.lib wxbase28d.lib wxmsw28d_core.lib"
|
AdditionalDependencies="Rpcrt4.lib directx-win32-ddraw-dinput8-dsound-dxerr8-dxguid.lib lua-vc8-Win32-debug.lib glib-vc8-Win32.lib 7z-vc8-Win32.lib zlib-vc8-Win32.lib agg-2.5.lib vfw32.lib winmm.lib opengl32.lib glu32.lib ws2_32.lib user32.lib gdi32.lib shell32.lib comdlg32.lib shlwapi.lib comctl32.lib wxbase28d.lib wxmsw28d_core.lib sdl.lib"
|
||||||
OutputFile="$(OutDir)\$(ProjectName)_debug.exe"
|
OutputFile="$(OutDir)\$(ProjectName)_debug.exe"
|
||||||
AdditionalLibraryDirectories="..\windows\zlib123;..\windows\agg;.libs"
|
AdditionalLibraryDirectories="..\windows\zlib123;..\windows\agg;.libs"
|
||||||
DelayLoadDLLs=""
|
DelayLoadDLLs=""
|
||||||
|
@ -111,6 +111,195 @@
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Release|Win32"
|
||||||
|
OutputDirectory="$(SolutionDir)\__bins"
|
||||||
|
IntermediateDirectory="$(SolutionDir)\.VS2008\$(ConfigurationName)\$(PlatformName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||||
|
WholeProgramOptimization="1"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
CommandLine=""
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="MASM"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
AdditionalOptions="/MP"
|
||||||
|
Optimization="2"
|
||||||
|
InlineFunctionExpansion="2"
|
||||||
|
EnableIntrinsicFunctions="true"
|
||||||
|
FavorSizeOrSpeed="1"
|
||||||
|
OmitFramePointers="true"
|
||||||
|
EnableFiberSafeOptimizations="true"
|
||||||
|
WholeProgramOptimization="true"
|
||||||
|
AdditionalIncludeDirectories=".;..;..\windows\lua\include;"..\windows\glib-2.20.1\build";"..\windows\glib-2.20.1\build\glib";..\windows\zlib123;..\windows\zziplib;..\windows\winpcap;..\windows\7z;..\windows\agg\include;..\windows\examples;..\windows\wx\include;..\windows;..\windows\sdl\include"
|
||||||
|
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;GLIB_STATIC_COMPILATION;WIN32;HAVE_LIBZ;NOMINMAX;RELEASE;NDEBUG;WXPORT"
|
||||||
|
StringPooling="true"
|
||||||
|
ExceptionHandling="1"
|
||||||
|
StructMemberAlignment="0"
|
||||||
|
BufferSecurityCheck="false"
|
||||||
|
EnableEnhancedInstructionSet="2"
|
||||||
|
FloatingPointModel="2"
|
||||||
|
WarningLevel="1"
|
||||||
|
DebugInformationFormat="3"
|
||||||
|
CallingConvention="0"
|
||||||
|
CompileAs="0"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
AdditionalDependencies="Rpcrt4.lib directx-win32-ddraw-dinput8-dsound-dxerr8-dxguid.lib lua-vc8-Win32.lib glib-vc8-Win32.lib 7z-vc8-Win32.lib zlib-vc8-Win32.lib agg-2.5.lib vfw32.lib winmm.lib opengl32.lib glu32.lib ws2_32.lib user32.lib gdi32.lib shell32.lib comdlg32.lib shlwapi.lib comctl32.lib wxbase28.lib wxmsw28_core.lib sdl.lib"
|
||||||
|
OutputFile="$(OutDir)\$(ProjectName)_release.exe"
|
||||||
|
AdditionalLibraryDirectories="..\windows\zlib123;..\windows\agg;.libs"
|
||||||
|
DelayLoadDLLs=""
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
OptimizeReferences="2"
|
||||||
|
RandomizedBaseAddress="1"
|
||||||
|
DataExecutionPrevention="0"
|
||||||
|
Profile="false"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
AdditionalManifestFiles="DeSmuME_x86.manifest"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
|
<Configuration
|
||||||
|
Name="Dev+|Win32"
|
||||||
|
OutputDirectory="$(SolutionDir)\__bins"
|
||||||
|
IntermediateDirectory="$(SolutionDir)\.VS2008\$(ConfigurationName)\$(PlatformName)"
|
||||||
|
ConfigurationType="1"
|
||||||
|
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
||||||
|
WholeProgramOptimization="0"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreBuildEventTool"
|
||||||
|
CommandLine=""
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="MASM"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXMLDataGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCWebServiceProxyGeneratorTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCMIDLTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCCLCompilerTool"
|
||||||
|
AdditionalOptions="/MP"
|
||||||
|
Optimization="3"
|
||||||
|
InlineFunctionExpansion="2"
|
||||||
|
EnableIntrinsicFunctions="true"
|
||||||
|
FavorSizeOrSpeed="1"
|
||||||
|
OmitFramePointers="true"
|
||||||
|
EnableFiberSafeOptimizations="true"
|
||||||
|
WholeProgramOptimization="false"
|
||||||
|
AdditionalIncludeDirectories=".;..;..\windows\lua\include;"..\windows\glib-2.20.1\build";"..\windows\glib-2.20.1\build\glib";..\windows\zlib123;..\windows\zziplib;..\windows\winpcap;..\windows\7z;..\windows\agg\include;..\windows\examples;..\windows\wx\include;..\windows;..\windows\sdl\include"
|
||||||
|
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;GLIB_STATIC_COMPILATION;WIN32;HAVE_LIBZ;NOMINMAX;RELEASE;NDEBUG;FASTBUILD;DEVELOPER;EXPERIMENTAL_WIFI_COMM;WXPORT"
|
||||||
|
StringPooling="true"
|
||||||
|
ExceptionHandling="1"
|
||||||
|
StructMemberAlignment="0"
|
||||||
|
BufferSecurityCheck="false"
|
||||||
|
EnableEnhancedInstructionSet="2"
|
||||||
|
FloatingPointModel="2"
|
||||||
|
WarningLevel="1"
|
||||||
|
DebugInformationFormat="3"
|
||||||
|
CallingConvention="0"
|
||||||
|
CompileAs="0"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManagedResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCResourceCompilerTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPreLinkEventTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCLinkerTool"
|
||||||
|
AdditionalDependencies="Rpcrt4.lib directx-win32-ddraw-dinput8-dsound-dxerr8-dxguid.lib lua-vc8-Win32.lib glib-vc8-Win32.lib 7z-vc8-Win32.lib zlib-vc8-Win32.lib agg-2.5.lib vfw32.lib winmm.lib opengl32.lib glu32.lib ws2_32.lib user32.lib gdi32.lib shell32.lib comdlg32.lib shlwapi.lib comctl32.lib wxbase28.lib wxmsw28_core.lib sdl.lib"
|
||||||
|
OutputFile="$(OutDir)\$(ProjectName)_dev+.exe"
|
||||||
|
AdditionalLibraryDirectories="..\windows\zlib123;..\windows\agg;.libs"
|
||||||
|
DelayLoadDLLs=""
|
||||||
|
GenerateDebugInformation="true"
|
||||||
|
OptimizeReferences="2"
|
||||||
|
LinkTimeCodeGeneration="0"
|
||||||
|
RandomizedBaseAddress="1"
|
||||||
|
DataExecutionPrevention="0"
|
||||||
|
Profile="false"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCALinkTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCManifestTool"
|
||||||
|
AdditionalManifestFiles="DeSmuME_x86.manifest"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCXDCMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCBscMakeTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCFxCopTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCAppVerifierTool"
|
||||||
|
/>
|
||||||
|
<Tool
|
||||||
|
Name="VCPostBuildEventTool"
|
||||||
|
/>
|
||||||
|
</Configuration>
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Debug|x64"
|
Name="Debug|x64"
|
||||||
OutputDirectory="$(SolutionDir)\__bins"
|
OutputDirectory="$(SolutionDir)\__bins"
|
||||||
|
@ -202,100 +391,6 @@
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
|
||||||
Name="Release|Win32"
|
|
||||||
OutputDirectory="$(SolutionDir)\__bins"
|
|
||||||
IntermediateDirectory="$(SolutionDir)\.VS2008\$(ConfigurationName)\$(PlatformName)"
|
|
||||||
ConfigurationType="1"
|
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
|
||||||
WholeProgramOptimization="1"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"
|
|
||||||
CommandLine=""
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="MASM"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="2"
|
|
||||||
InlineFunctionExpansion="2"
|
|
||||||
EnableIntrinsicFunctions="true"
|
|
||||||
FavorSizeOrSpeed="1"
|
|
||||||
OmitFramePointers="true"
|
|
||||||
EnableFiberSafeOptimizations="true"
|
|
||||||
WholeProgramOptimization="true"
|
|
||||||
AdditionalIncludeDirectories=".;..;..\windows\lua\include;"..\windows\glib-2.20.1\build";"..\windows\glib-2.20.1\build\glib";..\windows\zlib123;..\windows\zziplib;..\windows\winpcap;..\windows\7z;..\windows\agg\include;..\windows\examples;..\windows\wx\include;..\windows"
|
|
||||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;GLIB_STATIC_COMPILATION;WIN32;HAVE_LIBZ;NOMINMAX;RELEASE;NDEBUG;WXPORT"
|
|
||||||
StringPooling="true"
|
|
||||||
ExceptionHandling="1"
|
|
||||||
StructMemberAlignment="0"
|
|
||||||
BufferSecurityCheck="false"
|
|
||||||
EnableEnhancedInstructionSet="2"
|
|
||||||
FloatingPointModel="2"
|
|
||||||
WarningLevel="1"
|
|
||||||
DebugInformationFormat="3"
|
|
||||||
CallingConvention="0"
|
|
||||||
CompileAs="0"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalDependencies="Rpcrt4.lib directx-win32-ddraw-dinput8-dsound-dxerr8-dxguid.lib lua-vc8-Win32.lib glib-vc8-Win32.lib 7z-vc8-Win32.lib zlib-vc8-Win32.lib agg-2.5.lib vfw32.lib winmm.lib opengl32.lib glu32.lib ws2_32.lib user32.lib gdi32.lib shell32.lib comdlg32.lib shlwapi.lib comctl32.lib wxbase28.lib wxmsw28_core.lib"
|
|
||||||
OutputFile="$(OutDir)\$(ProjectName)_release.exe"
|
|
||||||
AdditionalLibraryDirectories="..\windows\zlib123;..\windows\agg;.libs"
|
|
||||||
DelayLoadDLLs=""
|
|
||||||
GenerateDebugInformation="true"
|
|
||||||
OptimizeReferences="2"
|
|
||||||
RandomizedBaseAddress="1"
|
|
||||||
DataExecutionPrevention="0"
|
|
||||||
Profile="false"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCALinkTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManifestTool"
|
|
||||||
AdditionalManifestFiles="DeSmuME_x86.manifest"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXDCMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCFxCopTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAppVerifierTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"
|
|
||||||
/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Release|x64"
|
Name="Release|x64"
|
||||||
OutputDirectory="$(SolutionDir)\__bins"
|
OutputDirectory="$(SolutionDir)\__bins"
|
||||||
|
@ -391,101 +486,6 @@
|
||||||
Name="VCPostBuildEventTool"
|
Name="VCPostBuildEventTool"
|
||||||
/>
|
/>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
<Configuration
|
|
||||||
Name="Dev+|Win32"
|
|
||||||
OutputDirectory="$(SolutionDir)\__bins"
|
|
||||||
IntermediateDirectory="$(SolutionDir)\.VS2008\$(ConfigurationName)\$(PlatformName)"
|
|
||||||
ConfigurationType="1"
|
|
||||||
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
|
|
||||||
WholeProgramOptimization="0"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreBuildEventTool"
|
|
||||||
CommandLine=""
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="MASM"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXMLDataGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCWebServiceProxyGeneratorTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCMIDLTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCCLCompilerTool"
|
|
||||||
AdditionalOptions="/MP"
|
|
||||||
Optimization="3"
|
|
||||||
InlineFunctionExpansion="2"
|
|
||||||
EnableIntrinsicFunctions="true"
|
|
||||||
FavorSizeOrSpeed="1"
|
|
||||||
OmitFramePointers="true"
|
|
||||||
EnableFiberSafeOptimizations="true"
|
|
||||||
WholeProgramOptimization="false"
|
|
||||||
AdditionalIncludeDirectories=".;..;..\windows\lua\include;"..\windows\glib-2.20.1\build";"..\windows\glib-2.20.1\build\glib";..\windows\zlib123;..\windows\zziplib;..\windows\winpcap;..\windows\7z;..\windows\agg\include;..\windows\examples;..\windows\wx\include;..\windows"
|
|
||||||
PreprocessorDefinitions="_CRT_SECURE_NO_DEPRECATE;GLIB_STATIC_COMPILATION;WIN32;HAVE_LIBZ;NOMINMAX;RELEASE;NDEBUG;FASTBUILD;DEVELOPER;EXPERIMENTAL_WIFI_COMM;WXPORT"
|
|
||||||
StringPooling="true"
|
|
||||||
ExceptionHandling="1"
|
|
||||||
StructMemberAlignment="0"
|
|
||||||
BufferSecurityCheck="false"
|
|
||||||
EnableEnhancedInstructionSet="2"
|
|
||||||
FloatingPointModel="2"
|
|
||||||
WarningLevel="1"
|
|
||||||
DebugInformationFormat="3"
|
|
||||||
CallingConvention="0"
|
|
||||||
CompileAs="0"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManagedResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCResourceCompilerTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPreLinkEventTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCLinkerTool"
|
|
||||||
AdditionalDependencies="Rpcrt4.lib directx-win32-ddraw-dinput8-dsound-dxerr8-dxguid.lib lua-vc8-Win32.lib glib-vc8-Win32.lib 7z-vc8-Win32.lib zlib-vc8-Win32.lib agg-2.5.lib vfw32.lib winmm.lib opengl32.lib glu32.lib ws2_32.lib user32.lib gdi32.lib shell32.lib comdlg32.lib shlwapi.lib comctl32.lib wxbase28.lib wxmsw28_core.lib"
|
|
||||||
OutputFile="$(OutDir)\$(ProjectName)_dev+.exe"
|
|
||||||
AdditionalLibraryDirectories="..\windows\zlib123;..\windows\agg;.libs"
|
|
||||||
DelayLoadDLLs=""
|
|
||||||
GenerateDebugInformation="true"
|
|
||||||
OptimizeReferences="2"
|
|
||||||
LinkTimeCodeGeneration="0"
|
|
||||||
RandomizedBaseAddress="1"
|
|
||||||
DataExecutionPrevention="0"
|
|
||||||
Profile="false"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCALinkTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCManifestTool"
|
|
||||||
AdditionalManifestFiles="DeSmuME_x86.manifest"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCXDCMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCBscMakeTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCFxCopTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCAppVerifierTool"
|
|
||||||
/>
|
|
||||||
<Tool
|
|
||||||
Name="VCPostBuildEventTool"
|
|
||||||
/>
|
|
||||||
</Configuration>
|
|
||||||
<Configuration
|
<Configuration
|
||||||
Name="Dev+|x64"
|
Name="Dev+|x64"
|
||||||
OutputDirectory="$(SolutionDir)\__bins"
|
OutputDirectory="$(SolutionDir)\__bins"
|
||||||
|
@ -649,7 +649,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|x64"
|
Name="Dev+|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -657,7 +657,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Dev+|Win32"
|
Name="Release|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCLCompilerTool"
|
Name="VCCLCompilerTool"
|
||||||
|
@ -1274,6 +1274,14 @@
|
||||||
RelativePath=".\LuaWindow.h"
|
RelativePath=".\LuaWindow.h"
|
||||||
>
|
>
|
||||||
</File>
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\sndsdl.cpp"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath="..\sndsdl.h"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\StringUtil.cpp"
|
RelativePath=".\StringUtil.cpp"
|
||||||
>
|
>
|
||||||
|
@ -1355,16 +1363,6 @@
|
||||||
Outputs=".libs\7z.tag"
|
Outputs=".libs\7z.tag"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
CommandLine="un7z_and_touch.bat ..\windows\7z\7z.7z .libs\7z*
"
|
|
||||||
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
|
||||||
Outputs=".libs\7z.tag"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
>
|
>
|
||||||
|
@ -1376,7 +1374,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|x64"
|
Name="Dev+|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -1386,7 +1384,17 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Dev+|Win32"
|
Name="Debug|x64"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
CommandLine="un7z_and_touch.bat ..\windows\7z\7z.7z .libs\7z*
"
|
||||||
|
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
||||||
|
Outputs=".libs\7z.tag"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Release|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -1419,16 +1427,6 @@
|
||||||
Outputs=".libs\directx.tag"
|
Outputs=".libs\directx.tag"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
CommandLine="un7z_and_touch.bat ..\windows\directx\directx.7z .libs\directx*
"
|
|
||||||
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
|
||||||
Outputs=".libs\directx.tag"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
>
|
>
|
||||||
|
@ -1440,7 +1438,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|x64"
|
Name="Dev+|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -1450,7 +1448,17 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Dev+|Win32"
|
Name="Debug|x64"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
CommandLine="un7z_and_touch.bat ..\windows\directx\directx.7z .libs\directx*
"
|
||||||
|
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
||||||
|
Outputs=".libs\directx.tag"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Release|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -1483,16 +1491,6 @@
|
||||||
Outputs=".libs\glib-vc8.tag"
|
Outputs=".libs\glib-vc8.tag"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
CommandLine="un7z_and_touch.bat ..\windows\glib-2.20.1\glib-2.20.1.7z .libs\glib*
"
|
|
||||||
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
|
||||||
Outputs=".libs\glib-vc8.tag"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
>
|
>
|
||||||
|
@ -1504,7 +1502,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|x64"
|
Name="Dev+|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -1514,7 +1512,17 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Dev+|Win32"
|
Name="Debug|x64"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
CommandLine="un7z_and_touch.bat ..\windows\glib-2.20.1\glib-2.20.1.7z .libs\glib*
"
|
||||||
|
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
||||||
|
Outputs=".libs\glib-vc8.tag"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Release|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -1547,16 +1555,6 @@
|
||||||
Outputs=".libs\lua.tag"
|
Outputs=".libs\lua.tag"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
|
||||||
Name="Debug|x64"
|
|
||||||
>
|
|
||||||
<Tool
|
|
||||||
Name="VCCustomBuildTool"
|
|
||||||
CommandLine="un7z_and_touch.bat ..\windows\lua\lua.7z .libs\lua*
"
|
|
||||||
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
|
||||||
Outputs=".libs\lua.tag"
|
|
||||||
/>
|
|
||||||
</FileConfiguration>
|
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|Win32"
|
Name="Release|Win32"
|
||||||
>
|
>
|
||||||
|
@ -1568,7 +1566,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|x64"
|
Name="Dev+|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -1578,7 +1576,17 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Dev+|Win32"
|
Name="Debug|x64"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
CommandLine="un7z_and_touch.bat ..\windows\lua\lua.7z .libs\lua*
"
|
||||||
|
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
||||||
|
Outputs=".libs\lua.tag"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Release|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -1599,20 +1607,44 @@
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
</File>
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath=".\wx\wx.7z"
|
RelativePath="..\windows\sdl\SDL.7z"
|
||||||
>
|
>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Debug|Win32"
|
Name="Debug|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
CommandLine="un7z_and_touch.bat ..\windows\wx\wx.7z .libs\wx*
"
|
CommandLine="un7z_and_touch.bat ..\windows\sdl\sdl.7z .libs\sdl*"
|
||||||
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
||||||
Outputs=".libs\wx.tag"
|
Outputs=".libs\sdl.tag"
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Debug|x64"
|
Name="Release|Win32"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
CommandLine="un7z_and_touch.bat ..\windows\sdl\sdl.7z .libs\sdl*"
|
||||||
|
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
||||||
|
Outputs=".libs\sdl.tag"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Dev+|Win32"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
CommandLine="un7z_and_touch.bat ..\windows\sdl\sdl.7z .libs\sdl*"
|
||||||
|
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
||||||
|
Outputs=".libs\sdl.tag"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
</File>
|
||||||
|
<File
|
||||||
|
RelativePath=".\wx\wx.7z"
|
||||||
|
>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Debug|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -1632,7 +1664,7 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Release|x64"
|
Name="Dev+|Win32"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
@ -1642,7 +1674,17 @@
|
||||||
/>
|
/>
|
||||||
</FileConfiguration>
|
</FileConfiguration>
|
||||||
<FileConfiguration
|
<FileConfiguration
|
||||||
Name="Dev+|Win32"
|
Name="Debug|x64"
|
||||||
|
>
|
||||||
|
<Tool
|
||||||
|
Name="VCCustomBuildTool"
|
||||||
|
CommandLine="un7z_and_touch.bat ..\windows\wx\wx.7z .libs\wx*
"
|
||||||
|
AdditionalDependencies="7z.exe;un7z_and_touch.bat"
|
||||||
|
Outputs=".libs\wx.tag"
|
||||||
|
/>
|
||||||
|
</FileConfiguration>
|
||||||
|
<FileConfiguration
|
||||||
|
Name="Release|x64"
|
||||||
>
|
>
|
||||||
<Tool
|
<Tool
|
||||||
Name="VCCustomBuildTool"
|
Name="VCCustomBuildTool"
|
||||||
|
|
|
@ -16,10 +16,6 @@
|
||||||
#define lstrlen(a) strlen((a))
|
#define lstrlen(a) strlen((a))
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WIN32
|
|
||||||
#include "snddx.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#include <wx/stdpaths.h>
|
#include <wx/stdpaths.h>
|
||||||
|
|
||||||
#include "LuaWindow.h"
|
#include "LuaWindow.h"
|
||||||
|
@ -45,11 +41,7 @@ static bool Touch = false;
|
||||||
|
|
||||||
SoundInterface_struct *SNDCoreList[] = {
|
SoundInterface_struct *SNDCoreList[] = {
|
||||||
&SNDDummy,
|
&SNDDummy,
|
||||||
#ifdef WIN32
|
|
||||||
// &SNDDIRECTX,
|
|
||||||
#else
|
|
||||||
&SNDSDL,
|
&SNDSDL,
|
||||||
#endif
|
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -671,9 +663,7 @@ void DesmumeFrame::NDSInitialize() {
|
||||||
#else
|
#else
|
||||||
NDS_Init();
|
NDS_Init();
|
||||||
#endif
|
#endif
|
||||||
#ifndef WIN32
|
|
||||||
SPU_ChangeSoundCore(SNDCORE_SDL, 735 * 4);
|
SPU_ChangeSoundCore(SNDCORE_SDL, 735 * 4);
|
||||||
#endif
|
|
||||||
NDS_3D_ChangeCore(0);
|
NDS_3D_ChangeCore(0);
|
||||||
NDS_CreateDummyFirmware( &fw_config);
|
NDS_CreateDummyFirmware( &fw_config);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue