start 380 project5
changes to 380 project 4 changes to 350 project 2 Signed-off-by: Amrit Panesar <apanesar@4195tech.com>
This commit is contained in:
1 parent
40ac78074b
commit
39ee821f54
174 files changed
+13356
-80
No files matched your search
@@ -0,0 +1,732 @@
|
||||
#ifndef AL_AL_H
|
||||
#define AL_AL_H
|
||||
|
||||
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(_XBOX)
|
||||
/* _OPENAL32LIB is deprecated */
|
||||
#if defined(AL_BUILD_LIBRARY) || defined (_OPENAL32LIB)
|
||||
#define AL_API __declspec(dllexport)
|
||||
#else
|
||||
#define AL_API __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#define AL_API extern
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define AL_APIENTRY __cdecl
|
||||
#else
|
||||
#define AL_APIENTRY
|
||||
#endif
|
||||
|
||||
#if TARGET_OS_MAC
|
||||
#pragma export on
|
||||
#endif
|
||||
|
||||
/* The OPENAL, ALAPI, and ALAPIENTRY macros are deprecated, but are included for applications porting code
|
||||
from AL 1.0 */
|
||||
#define OPENAL
|
||||
#define ALAPI AL_API
|
||||
#define ALAPIENTRY AL_APIENTRY
|
||||
|
||||
#define AL_VERSION_1_0
|
||||
#define AL_VERSION_1_1
|
||||
|
||||
|
||||
/** 8-bit boolean */
|
||||
typedef char ALboolean;
|
||||
|
||||
/** character */
|
||||
typedef char ALchar;
|
||||
|
||||
/** signed 8-bit 2's complement integer */
|
||||
typedef char ALbyte;
|
||||
|
||||
/** unsigned 8-bit integer */
|
||||
typedef unsigned char ALubyte;
|
||||
|
||||
/** signed 16-bit 2's complement integer */
|
||||
typedef short ALshort;
|
||||
|
||||
/** unsigned 16-bit integer */
|
||||
typedef unsigned short ALushort;
|
||||
|
||||
/** signed 32-bit 2's complement integer */
|
||||
typedef int ALint;
|
||||
|
||||
/** unsigned 32-bit integer */
|
||||
typedef unsigned int ALuint;
|
||||
|
||||
/** non-negative 32-bit binary integer size */
|
||||
typedef int ALsizei;
|
||||
|
||||
/** enumerated 32-bit value */
|
||||
typedef int ALenum;
|
||||
|
||||
/** 32-bit IEEE754 floating-point */
|
||||
typedef float ALfloat;
|
||||
|
||||
/** 64-bit IEEE754 floating-point */
|
||||
typedef double ALdouble;
|
||||
|
||||
/** void type (for opaque pointers only) */
|
||||
typedef void ALvoid;
|
||||
|
||||
|
||||
/* Enumerant values begin at column 50. No tabs. */
|
||||
|
||||
/* bad value */
|
||||
#define AL_INVALID -1
|
||||
|
||||
#define AL_NONE 0
|
||||
|
||||
/* Boolean False. */
|
||||
#define AL_FALSE 0
|
||||
|
||||
/** Boolean True. */
|
||||
#define AL_TRUE 1
|
||||
|
||||
/** Indicate Source has relative coordinates. */
|
||||
#define AL_SOURCE_RELATIVE 0x202
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Directional source, inner cone angle, in degrees.
|
||||
* Range: [0-360]
|
||||
* Default: 360
|
||||
*/
|
||||
#define AL_CONE_INNER_ANGLE 0x1001
|
||||
|
||||
/**
|
||||
* Directional source, outer cone angle, in degrees.
|
||||
* Range: [0-360]
|
||||
* Default: 360
|
||||
*/
|
||||
#define AL_CONE_OUTER_ANGLE 0x1002
|
||||
|
||||
/**
|
||||
* Specify the pitch to be applied, either at source,
|
||||
* or on mixer results, at listener.
|
||||
* Range: [0.5-2.0]
|
||||
* Default: 1.0
|
||||
*/
|
||||
#define AL_PITCH 0x1003
|
||||
|
||||
/**
|
||||
* Specify the current location in three dimensional space.
|
||||
* OpenAL, like OpenGL, uses a right handed coordinate system,
|
||||
* where in a frontal default view X (thumb) points right,
|
||||
* Y points up (index finger), and Z points towards the
|
||||
* viewer/camera (middle finger).
|
||||
* To switch from a left handed coordinate system, flip the
|
||||
* sign on the Z coordinate.
|
||||
* Listener position is always in the world coordinate system.
|
||||
*/
|
||||
#define AL_POSITION 0x1004
|
||||
|
||||
/** Specify the current direction. */
|
||||
#define AL_DIRECTION 0x1005
|
||||
|
||||
/** Specify the current velocity in three dimensional space. */
|
||||
#define AL_VELOCITY 0x1006
|
||||
|
||||
/**
|
||||
* Indicate whether source is looping.
|
||||
* Type: ALboolean?
|
||||
* Range: [AL_TRUE, AL_FALSE]
|
||||
* Default: FALSE.
|
||||
*/
|
||||
#define AL_LOOPING 0x1007
|
||||
|
||||
/**
|
||||
* Indicate the buffer to provide sound samples.
|
||||
* Type: ALuint.
|
||||
* Range: any valid Buffer id.
|
||||
*/
|
||||
#define AL_BUFFER 0x1009
|
||||
|
||||
/**
|
||||
* Indicate the gain (volume amplification) applied.
|
||||
* Type: ALfloat.
|
||||
* Range: ]0.0- ]
|
||||
* A value of 1.0 means un-attenuated/unchanged.
|
||||
* Each division by 2 equals an attenuation of -6dB.
|
||||
* Each multiplicaton with 2 equals an amplification of +6dB.
|
||||
* A value of 0.0 is meaningless with respect to a logarithmic
|
||||
* scale; it is interpreted as zero volume - the channel
|
||||
* is effectively disabled.
|
||||
*/
|
||||
#define AL_GAIN 0x100A
|
||||
|
||||
/*
|
||||
* Indicate minimum source attenuation
|
||||
* Type: ALfloat
|
||||
* Range: [0.0 - 1.0]
|
||||
*
|
||||
* Logarthmic
|
||||
*/
|
||||
#define AL_MIN_GAIN 0x100D
|
||||
|
||||
/**
|
||||
* Indicate maximum source attenuation
|
||||
* Type: ALfloat
|
||||
* Range: [0.0 - 1.0]
|
||||
*
|
||||
* Logarthmic
|
||||
*/
|
||||
#define AL_MAX_GAIN 0x100E
|
||||
|
||||
/**
|
||||
* Indicate listener orientation.
|
||||
*
|
||||
* at/up
|
||||
*/
|
||||
#define AL_ORIENTATION 0x100F
|
||||
|
||||
/**
|
||||
* Specify the channel mask. (Creative)
|
||||
* Type: ALuint
|
||||
* Range: [0 - 255]
|
||||
*/
|
||||
#define AL_CHANNEL_MASK 0x3000
|
||||
|
||||
|
||||
/**
|
||||
* Source state information.
|
||||
*/
|
||||
#define AL_SOURCE_STATE 0x1010
|
||||
#define AL_INITIAL 0x1011
|
||||
#define AL_PLAYING 0x1012
|
||||
#define AL_PAUSED 0x1013
|
||||
#define AL_STOPPED 0x1014
|
||||
|
||||
/**
|
||||
* Buffer Queue params
|
||||
*/
|
||||
#define AL_BUFFERS_QUEUED 0x1015
|
||||
#define AL_BUFFERS_PROCESSED 0x1016
|
||||
|
||||
/**
|
||||
* Source buffer position information
|
||||
*/
|
||||
#define AL_SEC_OFFSET 0x1024
|
||||
#define AL_SAMPLE_OFFSET 0x1025
|
||||
#define AL_BYTE_OFFSET 0x1026
|
||||
|
||||
/*
|
||||
* Source type (Static, Streaming or undetermined)
|
||||
* Source is Static if a Buffer has been attached using AL_BUFFER
|
||||
* Source is Streaming if one or more Buffers have been attached using alSourceQueueBuffers
|
||||
* Source is undetermined when it has the NULL buffer attached
|
||||
*/
|
||||
#define AL_SOURCE_TYPE 0x1027
|
||||
#define AL_STATIC 0x1028
|
||||
#define AL_STREAMING 0x1029
|
||||
#define AL_UNDETERMINED 0x1030
|
||||
|
||||
/** Sound samples: format specifier. */
|
||||
#define AL_FORMAT_MONO8 0x1100
|
||||
#define AL_FORMAT_MONO16 0x1101
|
||||
#define AL_FORMAT_STEREO8 0x1102
|
||||
#define AL_FORMAT_STEREO16 0x1103
|
||||
|
||||
/**
|
||||
* source specific reference distance
|
||||
* Type: ALfloat
|
||||
* Range: 0.0 - +inf
|
||||
*
|
||||
* At 0.0, no distance attenuation occurs. Default is
|
||||
* 1.0.
|
||||
*/
|
||||
#define AL_REFERENCE_DISTANCE 0x1020
|
||||
|
||||
/**
|
||||
* source specific rolloff factor
|
||||
* Type: ALfloat
|
||||
* Range: 0.0 - +inf
|
||||
*
|
||||
*/
|
||||
#define AL_ROLLOFF_FACTOR 0x1021
|
||||
|
||||
/**
|
||||
* Directional source, outer cone gain.
|
||||
*
|
||||
* Default: 0.0
|
||||
* Range: [0.0 - 1.0]
|
||||
* Logarithmic
|
||||
*/
|
||||
#define AL_CONE_OUTER_GAIN 0x1022
|
||||
|
||||
/**
|
||||
* Indicate distance above which sources are not
|
||||
* attenuated using the inverse clamped distance model.
|
||||
*
|
||||
* Default: +inf
|
||||
* Type: ALfloat
|
||||
* Range: 0.0 - +inf
|
||||
*/
|
||||
#define AL_MAX_DISTANCE 0x1023
|
||||
|
||||
/**
|
||||
* Sound samples: frequency, in units of Hertz [Hz].
|
||||
* This is the number of samples per second. Half of the
|
||||
* sample frequency marks the maximum significant
|
||||
* frequency component.
|
||||
*/
|
||||
#define AL_FREQUENCY 0x2001
|
||||
#define AL_BITS 0x2002
|
||||
#define AL_CHANNELS 0x2003
|
||||
#define AL_SIZE 0x2004
|
||||
|
||||
/**
|
||||
* Buffer state.
|
||||
*
|
||||
* Not supported for public use (yet).
|
||||
*/
|
||||
#define AL_UNUSED 0x2010
|
||||
#define AL_PENDING 0x2011
|
||||
#define AL_PROCESSED 0x2012
|
||||
|
||||
|
||||
/** Errors: No Error. */
|
||||
#define AL_NO_ERROR AL_FALSE
|
||||
|
||||
/**
|
||||
* Invalid Name paramater passed to AL call.
|
||||
*/
|
||||
#define AL_INVALID_NAME 0xA001
|
||||
|
||||
/**
|
||||
* Invalid parameter passed to AL call.
|
||||
*/
|
||||
#define AL_ILLEGAL_ENUM 0xA002
|
||||
#define AL_INVALID_ENUM 0xA002
|
||||
|
||||
/**
|
||||
* Invalid enum parameter value.
|
||||
*/
|
||||
#define AL_INVALID_VALUE 0xA003
|
||||
|
||||
/**
|
||||
* Illegal call.
|
||||
*/
|
||||
#define AL_ILLEGAL_COMMAND 0xA004
|
||||
#define AL_INVALID_OPERATION 0xA004
|
||||
|
||||
|
||||
/**
|
||||
* No mojo.
|
||||
*/
|
||||
#define AL_OUT_OF_MEMORY 0xA005
|
||||
|
||||
|
||||
/** Context strings: Vendor Name. */
|
||||
#define AL_VENDOR 0xB001
|
||||
#define AL_VERSION 0xB002
|
||||
#define AL_RENDERER 0xB003
|
||||
#define AL_EXTENSIONS 0xB004
|
||||
|
||||
/** Global tweakage. */
|
||||
|
||||
/**
|
||||
* Doppler scale. Default 1.0
|
||||
*/
|
||||
#define AL_DOPPLER_FACTOR 0xC000
|
||||
|
||||
/**
|
||||
* Tweaks speed of propagation.
|
||||
*/
|
||||
#define AL_DOPPLER_VELOCITY 0xC001
|
||||
|
||||
/**
|
||||
* Speed of Sound in units per second
|
||||
*/
|
||||
#define AL_SPEED_OF_SOUND 0xC003
|
||||
|
||||
/**
|
||||
* Distance models
|
||||
*
|
||||
* used in conjunction with DistanceModel
|
||||
*
|
||||
* implicit: NONE, which disances distance attenuation.
|
||||
*/
|
||||
#define AL_DISTANCE_MODEL 0xD000
|
||||
#define AL_INVERSE_DISTANCE 0xD001
|
||||
#define AL_INVERSE_DISTANCE_CLAMPED 0xD002
|
||||
#define AL_LINEAR_DISTANCE 0xD003
|
||||
#define AL_LINEAR_DISTANCE_CLAMPED 0xD004
|
||||
#define AL_EXPONENT_DISTANCE 0xD005
|
||||
#define AL_EXPONENT_DISTANCE_CLAMPED 0xD006
|
||||
|
||||
|
||||
#if !defined(AL_NO_PROTOTYPES)
|
||||
|
||||
/*
|
||||
* Renderer State management
|
||||
*/
|
||||
AL_API void AL_APIENTRY alEnable( ALenum capability );
|
||||
|
||||
AL_API void AL_APIENTRY alDisable( ALenum capability );
|
||||
|
||||
AL_API ALboolean AL_APIENTRY alIsEnabled( ALenum capability );
|
||||
|
||||
|
||||
/*
|
||||
* State retrieval
|
||||
*/
|
||||
AL_API const ALchar* AL_APIENTRY alGetString( ALenum param );
|
||||
|
||||
AL_API void AL_APIENTRY alGetBooleanv( ALenum param, ALboolean* data );
|
||||
|
||||
AL_API void AL_APIENTRY alGetIntegerv( ALenum param, ALint* data );
|
||||
|
||||
AL_API void AL_APIENTRY alGetFloatv( ALenum param, ALfloat* data );
|
||||
|
||||
AL_API void AL_APIENTRY alGetDoublev( ALenum param, ALdouble* data );
|
||||
|
||||
AL_API ALboolean AL_APIENTRY alGetBoolean( ALenum param );
|
||||
|
||||
AL_API ALint AL_APIENTRY alGetInteger( ALenum param );
|
||||
|
||||
AL_API ALfloat AL_APIENTRY alGetFloat( ALenum param );
|
||||
|
||||
AL_API ALdouble AL_APIENTRY alGetDouble( ALenum param );
|
||||
|
||||
|
||||
/*
|
||||
* Error support.
|
||||
* Obtain the most recent error generated in the AL state machine.
|
||||
*/
|
||||
AL_API ALenum AL_APIENTRY alGetError( void );
|
||||
|
||||
|
||||
/*
|
||||
* Extension support.
|
||||
* Query for the presence of an extension, and obtain any appropriate
|
||||
* function pointers and enum values.
|
||||
*/
|
||||
AL_API ALboolean AL_APIENTRY alIsExtensionPresent( const ALchar* extname );
|
||||
|
||||
AL_API void* AL_APIENTRY alGetProcAddress( const ALchar* fname );
|
||||
|
||||
AL_API ALenum AL_APIENTRY alGetEnumValue( const ALchar* ename );
|
||||
|
||||
|
||||
/*
|
||||
* LISTENER
|
||||
* Listener represents the location and orientation of the
|
||||
* 'user' in 3D-space.
|
||||
*
|
||||
* Properties include: -
|
||||
*
|
||||
* Gain AL_GAIN ALfloat
|
||||
* Position AL_POSITION ALfloat[3]
|
||||
* Velocity AL_VELOCITY ALfloat[3]
|
||||
* Orientation AL_ORIENTATION ALfloat[6] (Forward then Up vectors)
|
||||
*/
|
||||
|
||||
/*
|
||||
* Set Listener parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alListenerf( ALenum param, ALfloat value );
|
||||
|
||||
AL_API void AL_APIENTRY alListener3f( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alListenerfv( ALenum param, const ALfloat* values );
|
||||
|
||||
AL_API void AL_APIENTRY alListeneri( ALenum param, ALint value );
|
||||
|
||||
AL_API void AL_APIENTRY alListener3i( ALenum param, ALint value1, ALint value2, ALint value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alListeneriv( ALenum param, const ALint* values );
|
||||
|
||||
/*
|
||||
* Get Listener parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alGetListenerf( ALenum param, ALfloat* value );
|
||||
|
||||
AL_API void AL_APIENTRY alGetListener3f( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alGetListenerfv( ALenum param, ALfloat* values );
|
||||
|
||||
AL_API void AL_APIENTRY alGetListeneri( ALenum param, ALint* value );
|
||||
|
||||
AL_API void AL_APIENTRY alGetListener3i( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alGetListeneriv( ALenum param, ALint* values );
|
||||
|
||||
|
||||
/**
|
||||
* SOURCE
|
||||
* Sources represent individual sound objects in 3D-space.
|
||||
* Sources take the PCM data provided in the specified Buffer,
|
||||
* apply Source-specific modifications, and then
|
||||
* submit them to be mixed according to spatial arrangement etc.
|
||||
*
|
||||
* Properties include: -
|
||||
*
|
||||
* Gain AL_GAIN ALfloat
|
||||
* Min Gain AL_MIN_GAIN ALfloat
|
||||
* Max Gain AL_MAX_GAIN ALfloat
|
||||
* Position AL_POSITION ALfloat[3]
|
||||
* Velocity AL_VELOCITY ALfloat[3]
|
||||
* Direction AL_DIRECTION ALfloat[3]
|
||||
* Head Relative Mode AL_SOURCE_RELATIVE ALint (AL_TRUE or AL_FALSE)
|
||||
* Reference Distance AL_REFERENCE_DISTANCE ALfloat
|
||||
* Max Distance AL_MAX_DISTANCE ALfloat
|
||||
* RollOff Factor AL_ROLLOFF_FACTOR ALfloat
|
||||
* Inner Angle AL_CONE_INNER_ANGLE ALint or ALfloat
|
||||
* Outer Angle AL_CONE_OUTER_ANGLE ALint or ALfloat
|
||||
* Cone Outer Gain AL_CONE_OUTER_GAIN ALint or ALfloat
|
||||
* Pitch AL_PITCH ALfloat
|
||||
* Looping AL_LOOPING ALint (AL_TRUE or AL_FALSE)
|
||||
* MS Offset AL_MSEC_OFFSET ALint or ALfloat
|
||||
* Byte Offset AL_BYTE_OFFSET ALint or ALfloat
|
||||
* Sample Offset AL_SAMPLE_OFFSET ALint or ALfloat
|
||||
* Attached Buffer AL_BUFFER ALint
|
||||
* State (Query only) AL_SOURCE_STATE ALint
|
||||
* Buffers Queued (Query only) AL_BUFFERS_QUEUED ALint
|
||||
* Buffers Processed (Query only) AL_BUFFERS_PROCESSED ALint
|
||||
*/
|
||||
|
||||
/* Create Source objects */
|
||||
AL_API void AL_APIENTRY alGenSources( ALsizei n, ALuint* sources );
|
||||
|
||||
/* Delete Source objects */
|
||||
AL_API void AL_APIENTRY alDeleteSources( ALsizei n, const ALuint* sources );
|
||||
|
||||
/* Verify a handle is a valid Source */
|
||||
AL_API ALboolean AL_APIENTRY alIsSource( ALuint sid );
|
||||
|
||||
/*
|
||||
* Set Source parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alSourcef( ALuint sid, ALenum param, ALfloat value );
|
||||
|
||||
AL_API void AL_APIENTRY alSource3f( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alSourcefv( ALuint sid, ALenum param, const ALfloat* values );
|
||||
|
||||
AL_API void AL_APIENTRY alSourcei( ALuint sid, ALenum param, ALint value );
|
||||
|
||||
AL_API void AL_APIENTRY alSource3i( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alSourceiv( ALuint sid, ALenum param, const ALint* values );
|
||||
|
||||
/*
|
||||
* Get Source parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alGetSourcef( ALuint sid, ALenum param, ALfloat* value );
|
||||
|
||||
AL_API void AL_APIENTRY alGetSource3f( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
|
||||
|
||||
AL_API void AL_APIENTRY alGetSourcefv( ALuint sid, ALenum param, ALfloat* values );
|
||||
|
||||
AL_API void AL_APIENTRY alGetSourcei( ALuint sid, ALenum param, ALint* value );
|
||||
|
||||
AL_API void AL_APIENTRY alGetSource3i( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
|
||||
|
||||
AL_API void AL_APIENTRY alGetSourceiv( ALuint sid, ALenum param, ALint* values );
|
||||
|
||||
|
||||
/*
|
||||
* Source vector based playback calls
|
||||
*/
|
||||
|
||||
/* Play, replay, or resume (if paused) a list of Sources */
|
||||
AL_API void AL_APIENTRY alSourcePlayv( ALsizei ns, const ALuint *sids );
|
||||
|
||||
/* Stop a list of Sources */
|
||||
AL_API void AL_APIENTRY alSourceStopv( ALsizei ns, const ALuint *sids );
|
||||
|
||||
/* Rewind a list of Sources */
|
||||
AL_API void AL_APIENTRY alSourceRewindv( ALsizei ns, const ALuint *sids );
|
||||
|
||||
/* Pause a list of Sources */
|
||||
AL_API void AL_APIENTRY alSourcePausev( ALsizei ns, const ALuint *sids );
|
||||
|
||||
/*
|
||||
* Source based playback calls
|
||||
*/
|
||||
|
||||
/* Play, replay, or resume a Source */
|
||||
AL_API void AL_APIENTRY alSourcePlay( ALuint sid );
|
||||
|
||||
/* Stop a Source */
|
||||
AL_API void AL_APIENTRY alSourceStop( ALuint sid );
|
||||
|
||||
/* Rewind a Source (set playback postiton to beginning) */
|
||||
AL_API void AL_APIENTRY alSourceRewind( ALuint sid );
|
||||
|
||||
/* Pause a Source */
|
||||
AL_API void AL_APIENTRY alSourcePause( ALuint sid );
|
||||
|
||||
/*
|
||||
* Source Queuing
|
||||
*/
|
||||
AL_API void AL_APIENTRY alSourceQueueBuffers( ALuint sid, ALsizei numEntries, const ALuint *bids );
|
||||
|
||||
AL_API void AL_APIENTRY alSourceUnqueueBuffers( ALuint sid, ALsizei numEntries, ALuint *bids );
|
||||
|
||||
|
||||
/**
|
||||
* BUFFER
|
||||
* Buffer objects are storage space for sample data.
|
||||
* Buffers are referred to by Sources. One Buffer can be used
|
||||
* by multiple Sources.
|
||||
*
|
||||
* Properties include: -
|
||||
*
|
||||
* Frequency (Query only) AL_FREQUENCY ALint
|
||||
* Size (Query only) AL_SIZE ALint
|
||||
* Bits (Query only) AL_BITS ALint
|
||||
* Channels (Query only) AL_CHANNELS ALint
|
||||
*/
|
||||
|
||||
/* Create Buffer objects */
|
||||
AL_API void AL_APIENTRY alGenBuffers( ALsizei n, ALuint* buffers );
|
||||
|
||||
/* Delete Buffer objects */
|
||||
AL_API void AL_APIENTRY alDeleteBuffers( ALsizei n, const ALuint* buffers );
|
||||
|
||||
/* Verify a handle is a valid Buffer */
|
||||
AL_API ALboolean AL_APIENTRY alIsBuffer( ALuint bid );
|
||||
|
||||
/* Specify the data to be copied into a buffer */
|
||||
AL_API void AL_APIENTRY alBufferData( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
|
||||
|
||||
/*
|
||||
* Set Buffer parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alBufferf( ALuint bid, ALenum param, ALfloat value );
|
||||
|
||||
AL_API void AL_APIENTRY alBuffer3f( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alBufferfv( ALuint bid, ALenum param, const ALfloat* values );
|
||||
|
||||
AL_API void AL_APIENTRY alBufferi( ALuint bid, ALenum param, ALint value );
|
||||
|
||||
AL_API void AL_APIENTRY alBuffer3i( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
|
||||
|
||||
AL_API void AL_APIENTRY alBufferiv( ALuint bid, ALenum param, const ALint* values );
|
||||
|
||||
/*
|
||||
* Get Buffer parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alGetBufferf( ALuint bid, ALenum param, ALfloat* value );
|
||||
|
||||
AL_API void AL_APIENTRY alGetBuffer3f( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
|
||||
|
||||
AL_API void AL_APIENTRY alGetBufferfv( ALuint bid, ALenum param, ALfloat* values );
|
||||
|
||||
AL_API void AL_APIENTRY alGetBufferi( ALuint bid, ALenum param, ALint* value );
|
||||
|
||||
AL_API void AL_APIENTRY alGetBuffer3i( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
|
||||
|
||||
AL_API void AL_APIENTRY alGetBufferiv( ALuint bid, ALenum param, ALint* values );
|
||||
|
||||
|
||||
/*
|
||||
* Global Parameters
|
||||
*/
|
||||
AL_API void AL_APIENTRY alDopplerFactor( ALfloat value );
|
||||
|
||||
AL_API void AL_APIENTRY alDopplerVelocity( ALfloat value );
|
||||
|
||||
AL_API void AL_APIENTRY alSpeedOfSound( ALfloat value );
|
||||
|
||||
AL_API void AL_APIENTRY alDistanceModel( ALenum distanceModel );
|
||||
|
||||
#else /* AL_NO_PROTOTYPES */
|
||||
|
||||
typedef void (AL_APIENTRY *LPALENABLE)( ALenum capability );
|
||||
typedef void (AL_APIENTRY *LPALDISABLE)( ALenum capability );
|
||||
typedef ALboolean (AL_APIENTRY *LPALISENABLED)( ALenum capability );
|
||||
typedef const ALchar* (AL_APIENTRY *LPALGETSTRING)( ALenum param );
|
||||
typedef void (AL_APIENTRY *LPALGETBOOLEANV)( ALenum param, ALboolean* data );
|
||||
typedef void (AL_APIENTRY *LPALGETINTEGERV)( ALenum param, ALint* data );
|
||||
typedef void (AL_APIENTRY *LPALGETFLOATV)( ALenum param, ALfloat* data );
|
||||
typedef void (AL_APIENTRY *LPALGETDOUBLEV)( ALenum param, ALdouble* data );
|
||||
typedef ALboolean (AL_APIENTRY *LPALGETBOOLEAN)( ALenum param );
|
||||
typedef ALint (AL_APIENTRY *LPALGETINTEGER)( ALenum param );
|
||||
typedef ALfloat (AL_APIENTRY *LPALGETFLOAT)( ALenum param );
|
||||
typedef ALdouble (AL_APIENTRY *LPALGETDOUBLE)( ALenum param );
|
||||
typedef ALenum (AL_APIENTRY *LPALGETERROR)( void );
|
||||
typedef ALboolean (AL_APIENTRY *LPALISEXTENSIONPRESENT)(const ALchar* extname );
|
||||
typedef void* (AL_APIENTRY *LPALGETPROCADDRESS)( const ALchar* fname );
|
||||
typedef ALenum (AL_APIENTRY *LPALGETENUMVALUE)( const ALchar* ename );
|
||||
typedef void (AL_APIENTRY *LPALLISTENERF)( ALenum param, ALfloat value );
|
||||
typedef void (AL_APIENTRY *LPALLISTENER3F)( ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
|
||||
typedef void (AL_APIENTRY *LPALLISTENERFV)( ALenum param, const ALfloat* values );
|
||||
typedef void (AL_APIENTRY *LPALLISTENERI)( ALenum param, ALint value );
|
||||
typedef void (AL_APIENTRY *LPALLISTENER3I)( ALenum param, ALint value1, ALint value2, ALint value3 );
|
||||
typedef void (AL_APIENTRY *LPALLISTENERIV)( ALenum param, const ALint* values );
|
||||
typedef void (AL_APIENTRY *LPALGETLISTENERF)( ALenum param, ALfloat* value );
|
||||
typedef void (AL_APIENTRY *LPALGETLISTENER3F)( ALenum param, ALfloat *value1, ALfloat *value2, ALfloat *value3 );
|
||||
typedef void (AL_APIENTRY *LPALGETLISTENERFV)( ALenum param, ALfloat* values );
|
||||
typedef void (AL_APIENTRY *LPALGETLISTENERI)( ALenum param, ALint* value );
|
||||
typedef void (AL_APIENTRY *LPALGETLISTENER3I)( ALenum param, ALint *value1, ALint *value2, ALint *value3 );
|
||||
typedef void (AL_APIENTRY *LPALGETLISTENERIV)( ALenum param, ALint* values );
|
||||
typedef void (AL_APIENTRY *LPALGENSOURCES)( ALsizei n, ALuint* sources );
|
||||
typedef void (AL_APIENTRY *LPALDELETESOURCES)( ALsizei n, const ALuint* sources );
|
||||
typedef ALboolean (AL_APIENTRY *LPALISSOURCE)( ALuint sid );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEF)( ALuint sid, ALenum param, ALfloat value);
|
||||
typedef void (AL_APIENTRY *LPALSOURCE3F)( ALuint sid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEFV)( ALuint sid, ALenum param, const ALfloat* values );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEI)( ALuint sid, ALenum param, ALint value);
|
||||
typedef void (AL_APIENTRY *LPALSOURCE3I)( ALuint sid, ALenum param, ALint value1, ALint value2, ALint value3 );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEIV)( ALuint sid, ALenum param, const ALint* values );
|
||||
typedef void (AL_APIENTRY *LPALGETSOURCEF)( ALuint sid, ALenum param, ALfloat* value );
|
||||
typedef void (AL_APIENTRY *LPALGETSOURCE3F)( ALuint sid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
|
||||
typedef void (AL_APIENTRY *LPALGETSOURCEFV)( ALuint sid, ALenum param, ALfloat* values );
|
||||
typedef void (AL_APIENTRY *LPALGETSOURCEI)( ALuint sid, ALenum param, ALint* value );
|
||||
typedef void (AL_APIENTRY *LPALGETSOURCE3I)( ALuint sid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
|
||||
typedef void (AL_APIENTRY *LPALGETSOURCEIV)( ALuint sid, ALenum param, ALint* values );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEPLAYV)( ALsizei ns, const ALuint *sids );
|
||||
typedef void (AL_APIENTRY *LPALSOURCESTOPV)( ALsizei ns, const ALuint *sids );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEREWINDV)( ALsizei ns, const ALuint *sids );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEPAUSEV)( ALsizei ns, const ALuint *sids );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEPLAY)( ALuint sid );
|
||||
typedef void (AL_APIENTRY *LPALSOURCESTOP)( ALuint sid );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEREWIND)( ALuint sid );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEPAUSE)( ALuint sid );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, const ALuint *bids );
|
||||
typedef void (AL_APIENTRY *LPALSOURCEUNQUEUEBUFFERS)(ALuint sid, ALsizei numEntries, ALuint *bids );
|
||||
typedef void (AL_APIENTRY *LPALGENBUFFERS)( ALsizei n, ALuint* buffers );
|
||||
typedef void (AL_APIENTRY *LPALDELETEBUFFERS)( ALsizei n, const ALuint* buffers );
|
||||
typedef ALboolean (AL_APIENTRY *LPALISBUFFER)( ALuint bid );
|
||||
typedef void (AL_APIENTRY *LPALBUFFERDATA)( ALuint bid, ALenum format, const ALvoid* data, ALsizei size, ALsizei freq );
|
||||
typedef void (AL_APIENTRY *LPALBUFFERF)( ALuint bid, ALenum param, ALfloat value);
|
||||
typedef void (AL_APIENTRY *LPALBUFFER3F)( ALuint bid, ALenum param, ALfloat value1, ALfloat value2, ALfloat value3 );
|
||||
typedef void (AL_APIENTRY *LPALBUFFERFV)( ALuint bid, ALenum param, const ALfloat* values );
|
||||
typedef void (AL_APIENTRY *LPALBUFFERI)( ALuint bid, ALenum param, ALint value);
|
||||
typedef void (AL_APIENTRY *LPALBUFFER3I)( ALuint bid, ALenum param, ALint value1, ALint value2, ALint value3 );
|
||||
typedef void (AL_APIENTRY *LPALBUFFERIV)( ALuint bid, ALenum param, const ALint* values );
|
||||
typedef void (AL_APIENTRY *LPALGETBUFFERF)( ALuint bid, ALenum param, ALfloat* value );
|
||||
typedef void (AL_APIENTRY *LPALGETBUFFER3F)( ALuint bid, ALenum param, ALfloat* value1, ALfloat* value2, ALfloat* value3);
|
||||
typedef void (AL_APIENTRY *LPALGETBUFFERFV)( ALuint bid, ALenum param, ALfloat* values );
|
||||
typedef void (AL_APIENTRY *LPALGETBUFFERI)( ALuint bid, ALenum param, ALint* value );
|
||||
typedef void (AL_APIENTRY *LPALGETBUFFER3I)( ALuint bid, ALenum param, ALint* value1, ALint* value2, ALint* value3);
|
||||
typedef void (AL_APIENTRY *LPALGETBUFFERIV)( ALuint bid, ALenum param, ALint* values );
|
||||
typedef void (AL_APIENTRY *LPALDOPPLERFACTOR)( ALfloat value );
|
||||
typedef void (AL_APIENTRY *LPALDOPPLERVELOCITY)( ALfloat value );
|
||||
typedef void (AL_APIENTRY *LPALSPEEDOFSOUND)( ALfloat value );
|
||||
typedef void (AL_APIENTRY *LPALDISTANCEMODEL)( ALenum distanceModel );
|
||||
|
||||
#endif /* AL_NO_PROTOTYPES */
|
||||
|
||||
#if TARGET_OS_MAC
|
||||
#pragma export off
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* AL_AL_H */
|
||||
@@ -0,0 +1,281 @@
|
||||
#ifndef AL_ALC_H
|
||||
#define AL_ALC_H
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(_XBOX)
|
||||
/* _OPENAL32LIB is deprecated */
|
||||
#if defined(AL_BUILD_LIBRARY) || defined (_OPENAL32LIB)
|
||||
#define ALC_API __declspec(dllexport)
|
||||
#else
|
||||
#define ALC_API __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#if defined(AL_BUILD_LIBRARY) && defined(HAVE_GCC_VISIBILITY)
|
||||
#define ALC_API __attribute__((visibility("default")))
|
||||
#else
|
||||
#define ALC_API extern
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define ALC_APIENTRY __cdecl
|
||||
#else
|
||||
#define ALC_APIENTRY
|
||||
#endif
|
||||
|
||||
#if defined(TARGET_OS_MAC) && TARGET_OS_MAC
|
||||
#pragma export on
|
||||
#endif
|
||||
|
||||
/*
|
||||
* The ALCAPI, ALCAPIENTRY, and ALC_INVALID macros are deprecated, but are
|
||||
* included for applications porting code from AL 1.0
|
||||
*/
|
||||
#define ALCAPI ALC_API
|
||||
#define ALCAPIENTRY ALC_APIENTRY
|
||||
#define ALC_INVALID 0
|
||||
|
||||
|
||||
#define ALC_VERSION_0_1 1
|
||||
|
||||
typedef struct ALCdevice_struct ALCdevice;
|
||||
typedef struct ALCcontext_struct ALCcontext;
|
||||
|
||||
|
||||
/** 8-bit boolean */
|
||||
typedef char ALCboolean;
|
||||
|
||||
/** character */
|
||||
typedef char ALCchar;
|
||||
|
||||
/** signed 8-bit 2's complement integer */
|
||||
typedef char ALCbyte;
|
||||
|
||||
/** unsigned 8-bit integer */
|
||||
typedef unsigned char ALCubyte;
|
||||
|
||||
/** signed 16-bit 2's complement integer */
|
||||
typedef short ALCshort;
|
||||
|
||||
/** unsigned 16-bit integer */
|
||||
typedef unsigned short ALCushort;
|
||||
|
||||
/** signed 32-bit 2's complement integer */
|
||||
typedef int ALCint;
|
||||
|
||||
/** unsigned 32-bit integer */
|
||||
typedef unsigned int ALCuint;
|
||||
|
||||
/** non-negative 32-bit binary integer size */
|
||||
typedef int ALCsizei;
|
||||
|
||||
/** enumerated 32-bit value */
|
||||
typedef int ALCenum;
|
||||
|
||||
/** 32-bit IEEE754 floating-point */
|
||||
typedef float ALCfloat;
|
||||
|
||||
/** 64-bit IEEE754 floating-point */
|
||||
typedef double ALCdouble;
|
||||
|
||||
/** void type (for opaque pointers only) */
|
||||
typedef void ALCvoid;
|
||||
|
||||
|
||||
/* Enumerant values begin at column 50. No tabs. */
|
||||
|
||||
/* Boolean False. */
|
||||
#define ALC_FALSE 0
|
||||
|
||||
/* Boolean True. */
|
||||
#define ALC_TRUE 1
|
||||
|
||||
/**
|
||||
* followed by <int> Hz
|
||||
*/
|
||||
#define ALC_FREQUENCY 0x1007
|
||||
|
||||
/**
|
||||
* followed by <int> Hz
|
||||
*/
|
||||
#define ALC_REFRESH 0x1008
|
||||
|
||||
/**
|
||||
* followed by AL_TRUE, AL_FALSE
|
||||
*/
|
||||
#define ALC_SYNC 0x1009
|
||||
|
||||
/**
|
||||
* followed by <int> Num of requested Mono (3D) Sources
|
||||
*/
|
||||
#define ALC_MONO_SOURCES 0x1010
|
||||
|
||||
/**
|
||||
* followed by <int> Num of requested Stereo Sources
|
||||
*/
|
||||
#define ALC_STEREO_SOURCES 0x1011
|
||||
|
||||
/**
|
||||
* errors
|
||||
*/
|
||||
|
||||
/**
|
||||
* No error
|
||||
*/
|
||||
#define ALC_NO_ERROR ALC_FALSE
|
||||
|
||||
/**
|
||||
* No device
|
||||
*/
|
||||
#define ALC_INVALID_DEVICE 0xA001
|
||||
|
||||
/**
|
||||
* invalid context ID
|
||||
*/
|
||||
#define ALC_INVALID_CONTEXT 0xA002
|
||||
|
||||
/**
|
||||
* bad enum
|
||||
*/
|
||||
#define ALC_INVALID_ENUM 0xA003
|
||||
|
||||
/**
|
||||
* bad value
|
||||
*/
|
||||
#define ALC_INVALID_VALUE 0xA004
|
||||
|
||||
/**
|
||||
* Out of memory.
|
||||
*/
|
||||
#define ALC_OUT_OF_MEMORY 0xA005
|
||||
|
||||
|
||||
/**
|
||||
* The Specifier string for default device
|
||||
*/
|
||||
#define ALC_DEFAULT_DEVICE_SPECIFIER 0x1004
|
||||
#define ALC_DEVICE_SPECIFIER 0x1005
|
||||
#define ALC_EXTENSIONS 0x1006
|
||||
|
||||
#define ALC_MAJOR_VERSION 0x1000
|
||||
#define ALC_MINOR_VERSION 0x1001
|
||||
|
||||
#define ALC_ATTRIBUTES_SIZE 0x1002
|
||||
#define ALC_ALL_ATTRIBUTES 0x1003
|
||||
|
||||
/**
|
||||
* ALC_ENUMERATE_ALL_EXT enums
|
||||
*/
|
||||
#define ALC_DEFAULT_ALL_DEVICES_SPECIFIER 0x1012
|
||||
#define ALC_ALL_DEVICES_SPECIFIER 0x1013
|
||||
|
||||
/**
|
||||
* Capture extension
|
||||
*/
|
||||
#define ALC_CAPTURE_DEVICE_SPECIFIER 0x310
|
||||
#define ALC_CAPTURE_DEFAULT_DEVICE_SPECIFIER 0x311
|
||||
#define ALC_CAPTURE_SAMPLES 0x312
|
||||
|
||||
|
||||
/*
|
||||
* Context Management
|
||||
*/
|
||||
ALC_API ALCcontext * ALC_APIENTRY alcCreateContext( ALCdevice *device, const ALCint* attrlist );
|
||||
|
||||
ALC_API ALCboolean ALC_APIENTRY alcMakeContextCurrent( ALCcontext *context );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcProcessContext( ALCcontext *context );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcSuspendContext( ALCcontext *context );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcDestroyContext( ALCcontext *context );
|
||||
|
||||
ALC_API ALCcontext * ALC_APIENTRY alcGetCurrentContext( void );
|
||||
|
||||
ALC_API ALCdevice* ALC_APIENTRY alcGetContextsDevice( ALCcontext *context );
|
||||
|
||||
|
||||
/*
|
||||
* Device Management
|
||||
*/
|
||||
ALC_API ALCdevice * ALC_APIENTRY alcOpenDevice( const ALCchar *devicename );
|
||||
|
||||
ALC_API ALCboolean ALC_APIENTRY alcCloseDevice( ALCdevice *device );
|
||||
|
||||
|
||||
/*
|
||||
* Error support.
|
||||
* Obtain the most recent Context error
|
||||
*/
|
||||
ALC_API ALCenum ALC_APIENTRY alcGetError( ALCdevice *device );
|
||||
|
||||
|
||||
/*
|
||||
* Extension support.
|
||||
* Query for the presence of an extension, and obtain any appropriate
|
||||
* function pointers and enum values.
|
||||
*/
|
||||
ALC_API ALCboolean ALC_APIENTRY alcIsExtensionPresent( ALCdevice *device, const ALCchar *extname );
|
||||
|
||||
ALC_API void * ALC_APIENTRY alcGetProcAddress( ALCdevice *device, const ALCchar *funcname );
|
||||
|
||||
ALC_API ALCenum ALC_APIENTRY alcGetEnumValue( ALCdevice *device, const ALCchar *enumname );
|
||||
|
||||
|
||||
/*
|
||||
* Query functions
|
||||
*/
|
||||
ALC_API const ALCchar * ALC_APIENTRY alcGetString( ALCdevice *device, ALCenum param );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcGetIntegerv( ALCdevice *device, ALCenum param, ALCsizei size, ALCint *data );
|
||||
|
||||
|
||||
/*
|
||||
* Capture functions
|
||||
*/
|
||||
ALC_API ALCdevice* ALC_APIENTRY alcCaptureOpenDevice( const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize );
|
||||
|
||||
ALC_API ALCboolean ALC_APIENTRY alcCaptureCloseDevice( ALCdevice *device );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcCaptureStart( ALCdevice *device );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcCaptureStop( ALCdevice *device );
|
||||
|
||||
ALC_API void ALC_APIENTRY alcCaptureSamples( ALCdevice *device, ALCvoid *buffer, ALCsizei samples );
|
||||
|
||||
/*
|
||||
* Pointer-to-function types, useful for dynamically getting ALC entry points.
|
||||
*/
|
||||
typedef ALCcontext * (ALC_APIENTRY *LPALCCREATECONTEXT) (ALCdevice *device, const ALCint *attrlist);
|
||||
typedef ALCboolean (ALC_APIENTRY *LPALCMAKECONTEXTCURRENT)( ALCcontext *context );
|
||||
typedef void (ALC_APIENTRY *LPALCPROCESSCONTEXT)( ALCcontext *context );
|
||||
typedef void (ALC_APIENTRY *LPALCSUSPENDCONTEXT)( ALCcontext *context );
|
||||
typedef void (ALC_APIENTRY *LPALCDESTROYCONTEXT)( ALCcontext *context );
|
||||
typedef ALCcontext * (ALC_APIENTRY *LPALCGETCURRENTCONTEXT)( void );
|
||||
typedef ALCdevice * (ALC_APIENTRY *LPALCGETCONTEXTSDEVICE)( ALCcontext *context );
|
||||
typedef ALCdevice * (ALC_APIENTRY *LPALCOPENDEVICE)( const ALCchar *devicename );
|
||||
typedef ALCboolean (ALC_APIENTRY *LPALCCLOSEDEVICE)( ALCdevice *device );
|
||||
typedef ALCenum (ALC_APIENTRY *LPALCGETERROR)( ALCdevice *device );
|
||||
typedef ALCboolean (ALC_APIENTRY *LPALCISEXTENSIONPRESENT)( ALCdevice *device, const ALCchar *extname );
|
||||
typedef void * (ALC_APIENTRY *LPALCGETPROCADDRESS)(ALCdevice *device, const ALCchar *funcname );
|
||||
typedef ALCenum (ALC_APIENTRY *LPALCGETENUMVALUE)(ALCdevice *device, const ALCchar *enumname );
|
||||
typedef const ALCchar* (ALC_APIENTRY *LPALCGETSTRING)( ALCdevice *device, ALCenum param );
|
||||
typedef void (ALC_APIENTRY *LPALCGETINTEGERV)( ALCdevice *device, ALCenum param, ALCsizei size, ALCint *dest );
|
||||
typedef ALCdevice * (ALC_APIENTRY *LPALCCAPTUREOPENDEVICE)( const ALCchar *devicename, ALCuint frequency, ALCenum format, ALCsizei buffersize );
|
||||
typedef ALCboolean (ALC_APIENTRY *LPALCCAPTURECLOSEDEVICE)( ALCdevice *device );
|
||||
typedef void (ALC_APIENTRY *LPALCCAPTURESTART)( ALCdevice *device );
|
||||
typedef void (ALC_APIENTRY *LPALCCAPTURESTOP)( ALCdevice *device );
|
||||
typedef void (ALC_APIENTRY *LPALCCAPTURESAMPLES)( ALCdevice *device, ALCvoid *buffer, ALCsizei samples );
|
||||
|
||||
#if defined(TARGET_OS_MAC) && TARGET_OS_MAC
|
||||
#pragma export off
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* AL_ALC_H */
|
||||
@@ -0,0 +1,126 @@
|
||||
#if !defined(AL_ALUT_H)
|
||||
#define AL_ALUT_H
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#include <alc.h>
|
||||
#include <al.h>
|
||||
#elif defined(__APPLE__)
|
||||
#include <OpenAL/alc.h>
|
||||
#include <OpenAL/al.h>
|
||||
#else
|
||||
#include <AL/al.h>
|
||||
#include <AL/alc.h>
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32) && !defined(_XBOX)
|
||||
#if defined (ALUT_BUILD_LIBRARY)
|
||||
#define ALUT_API __declspec(dllexport)
|
||||
#else
|
||||
#define ALUT_API __declspec(dllimport)
|
||||
#endif
|
||||
#else
|
||||
#if defined(ALUT_BUILD_LIBRARY) && defined(HAVE_GCC_VISIBILITY)
|
||||
#define ALUT_API __attribute__((visibility("default")))
|
||||
#else
|
||||
#define ALUT_API extern
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#define ALUT_APIENTRY __cdecl
|
||||
#else
|
||||
#define ALUT_APIENTRY
|
||||
#endif
|
||||
|
||||
#if defined(__MWERKS_)
|
||||
#pragma export on
|
||||
#endif
|
||||
|
||||
/* Flag deprecated functions if possible (VisualC++ .NET and GCC >= 3.1.1). */
|
||||
#if defined(_MSC_VER) && _MSC_VER >= 1300 && !defined(MIDL_PASS)
|
||||
#define ALUT_ATTRIBUTE_DEPRECATED __declspec(deprecated)
|
||||
#elif defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && (__GNUC_MINOR__ > 1 || (__GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ >= 1))))
|
||||
#define ALUT_ATTRIBUTE_DEPRECATED __attribute__((deprecated))
|
||||
#else
|
||||
#define ALUT_ATTRIBUTE_DEPRECATED
|
||||
#endif
|
||||
|
||||
#define ALUT_API_MAJOR_VERSION 1
|
||||
#define ALUT_API_MINOR_VERSION 1
|
||||
|
||||
#define ALUT_ERROR_NO_ERROR 0
|
||||
#define ALUT_ERROR_OUT_OF_MEMORY 0x200
|
||||
#define ALUT_ERROR_INVALID_ENUM 0x201
|
||||
#define ALUT_ERROR_INVALID_VALUE 0x202
|
||||
#define ALUT_ERROR_INVALID_OPERATION 0x203
|
||||
#define ALUT_ERROR_NO_CURRENT_CONTEXT 0x204
|
||||
#define ALUT_ERROR_AL_ERROR_ON_ENTRY 0x205
|
||||
#define ALUT_ERROR_ALC_ERROR_ON_ENTRY 0x206
|
||||
#define ALUT_ERROR_OPEN_DEVICE 0x207
|
||||
#define ALUT_ERROR_CLOSE_DEVICE 0x208
|
||||
#define ALUT_ERROR_CREATE_CONTEXT 0x209
|
||||
#define ALUT_ERROR_MAKE_CONTEXT_CURRENT 0x20A
|
||||
#define ALUT_ERROR_DESTROY_CONTEXT 0x20B
|
||||
#define ALUT_ERROR_GEN_BUFFERS 0x20C
|
||||
#define ALUT_ERROR_BUFFER_DATA 0x20D
|
||||
#define ALUT_ERROR_IO_ERROR 0x20E
|
||||
#define ALUT_ERROR_UNSUPPORTED_FILE_TYPE 0x20F
|
||||
#define ALUT_ERROR_UNSUPPORTED_FILE_SUBTYPE 0x210
|
||||
#define ALUT_ERROR_CORRUPT_OR_TRUNCATED_DATA 0x211
|
||||
|
||||
#define ALUT_WAVEFORM_SINE 0x100
|
||||
#define ALUT_WAVEFORM_SQUARE 0x101
|
||||
#define ALUT_WAVEFORM_SAWTOOTH 0x102
|
||||
#define ALUT_WAVEFORM_WHITENOISE 0x103
|
||||
#define ALUT_WAVEFORM_IMPULSE 0x104
|
||||
|
||||
#define ALUT_LOADER_BUFFER 0x300
|
||||
#define ALUT_LOADER_MEMORY 0x301
|
||||
|
||||
ALUT_API ALboolean ALUT_APIENTRY alutInit (int *argcp, char **argv);
|
||||
ALUT_API ALboolean ALUT_APIENTRY alutInitWithoutContext (int *argcp, char **argv);
|
||||
ALUT_API ALboolean ALUT_APIENTRY alutExit (void);
|
||||
|
||||
ALUT_API ALenum ALUT_APIENTRY alutGetError (void);
|
||||
ALUT_API const char *ALUT_APIENTRY alutGetErrorString (ALenum error);
|
||||
|
||||
ALUT_API ALuint ALUT_APIENTRY alutCreateBufferFromFile (const char *fileName);
|
||||
ALUT_API ALuint ALUT_APIENTRY alutCreateBufferFromFileImage (const ALvoid *data, ALsizei length);
|
||||
ALUT_API ALuint ALUT_APIENTRY alutCreateBufferHelloWorld (void);
|
||||
ALUT_API ALuint ALUT_APIENTRY alutCreateBufferWaveform (ALenum waveshape, ALfloat frequency, ALfloat phase, ALfloat duration);
|
||||
|
||||
ALUT_API ALvoid *ALUT_APIENTRY alutLoadMemoryFromFile (const char *fileName, ALenum *format, ALsizei *size, ALfloat *frequency);
|
||||
ALUT_API ALvoid *ALUT_APIENTRY alutLoadMemoryFromFileImage (const ALvoid *data, ALsizei length, ALenum *format, ALsizei *size, ALfloat *frequency);
|
||||
ALUT_API ALvoid *ALUT_APIENTRY alutLoadMemoryHelloWorld (ALenum *format, ALsizei *size, ALfloat *frequency);
|
||||
ALUT_API ALvoid *ALUT_APIENTRY alutLoadMemoryWaveform (ALenum waveshape, ALfloat frequency, ALfloat phase, ALfloat duration, ALenum *format, ALsizei *size, ALfloat *freq);
|
||||
|
||||
ALUT_API const char *ALUT_APIENTRY alutGetMIMETypes (ALenum loader);
|
||||
|
||||
ALUT_API ALint ALUT_APIENTRY alutGetMajorVersion (void);
|
||||
ALUT_API ALint ALUT_APIENTRY alutGetMinorVersion (void);
|
||||
|
||||
ALUT_API ALboolean ALUT_APIENTRY alutSleep (ALfloat duration);
|
||||
|
||||
/* Nasty Compatibility stuff, WARNING: THESE FUNCTIONS ARE STRONGLY DEPRECATED */
|
||||
#if defined(__APPLE__)
|
||||
ALUT_API ALUT_ATTRIBUTE_DEPRECATED void ALUT_APIENTRY alutLoadWAVFile (ALbyte *fileName, ALenum *format, void **data, ALsizei *size, ALsizei *frequency);
|
||||
ALUT_API ALUT_ATTRIBUTE_DEPRECATED void ALUT_APIENTRY alutLoadWAVMemory (ALbyte *buffer, ALenum *format, void **data, ALsizei *size, ALsizei *frequency);
|
||||
#else
|
||||
ALUT_API ALUT_ATTRIBUTE_DEPRECATED void ALUT_APIENTRY alutLoadWAVFile (ALbyte *fileName, ALenum *format, void **data, ALsizei *size, ALsizei *frequency, ALboolean *loop);
|
||||
ALUT_API ALUT_ATTRIBUTE_DEPRECATED void ALUT_APIENTRY alutLoadWAVMemory (ALbyte *buffer, ALenum *format, void **data, ALsizei *size, ALsizei *frequency, ALboolean *loop);
|
||||
#endif
|
||||
ALUT_API ALUT_ATTRIBUTE_DEPRECATED void ALUT_APIENTRY alutUnloadWAV (ALenum format, ALvoid *data, ALsizei size, ALsizei frequency);
|
||||
|
||||
#if defined(__MWERKS_)
|
||||
#pragma export off
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,140 @@
|
||||
/* include/IL/config.h. Generated by configure. */
|
||||
/* include/IL/config.h.in. Generated from configure.in by autoheader. */
|
||||
#ifndef __CONFIG_H__
|
||||
#define __CONFIG_H__
|
||||
|
||||
#define IL_USE_PRAGMA_LIBS
|
||||
|
||||
// Supported image formats (IL)
|
||||
|
||||
// #define IL_NO_BLP
|
||||
// #define IL_NO_BMP
|
||||
// #define IL_NO_CUT
|
||||
// #define IL_NO_CHEAD
|
||||
// #define IL_NO_DCX
|
||||
// #define IL_NO_DDS
|
||||
// #define IL_NO_DICOM
|
||||
// #define IL_NO_DOOM
|
||||
// #define IL_NO_EXR
|
||||
// #define IL_NO_FITS
|
||||
// #define IL_NO_FTX
|
||||
// #define IL_NO_GIF
|
||||
// #define IL_NO_HDR
|
||||
// #define IL_NO_ICO
|
||||
// #define IL_NO_ICNS
|
||||
// #define IL_NO_IWI
|
||||
// #define IL_NO_JP2
|
||||
// #define IL_NO_JPG
|
||||
// #define IL_NO_LCMS
|
||||
// #define IL_NO_LIF
|
||||
// #define IL_NO_MDL
|
||||
// #define IL_NO_MNG
|
||||
// #define IL_NO_PCD
|
||||
// #define IL_NO_PCX
|
||||
// #define IL_NO_PIC
|
||||
// #define IL_NO_PIX
|
||||
// #define IL_NO_PNG
|
||||
// #define IL_NO_PNM
|
||||
// #define IL_NO_PSD
|
||||
// #define IL_NO_PSP
|
||||
// #define IL_NO_PXR
|
||||
// #define IL_NO_RAW
|
||||
// #define IL_NO_ROT
|
||||
// #define IL_NO_SGI
|
||||
// #define IL_NO_SUN
|
||||
// #define IL_NO_TGA
|
||||
// #define IL_NO_TIF
|
||||
// #define IL_NO_TPL
|
||||
// #define IL_NO_WAL
|
||||
// #define IL_NO_WDP
|
||||
// #define IL_NO_XPM
|
||||
#define IL_USE_JPEGLIB_UNMODIFIED 1
|
||||
//#define IL_USE_DXTC_NVIDIA
|
||||
#define IL_USE_DXTC_SQUISH
|
||||
|
||||
/* Supported api (ilut) */
|
||||
|
||||
|
||||
//
|
||||
// sorry just
|
||||
// cant get this one to work under windows
|
||||
// have disabled for the now
|
||||
//
|
||||
// will look at it some more later
|
||||
//
|
||||
// Kriss
|
||||
//
|
||||
#undef ILUT_USE_ALLEGRO
|
||||
|
||||
#undef ILUT_USE_DIRECTX8
|
||||
//#define ILUT_USE_DIRECTX9
|
||||
//#define ILUT_USE_DIRECTX10
|
||||
//#define ILUT_USE_OPENGL
|
||||
//#define ILUT_USE_SDL
|
||||
//#define ILUT_USE_WIN32
|
||||
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
//#define HAVE_DLFCN_H 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
//#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
//#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
//#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
//#define HAVE_STDLIB_H 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
//#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
//#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
//#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
//#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
//#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Name of package */
|
||||
#define IL_PACKAGE "DevIL"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT ""
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define IL_PACKAGE_NAME ""
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define IL_PACKAGE_STRING ""
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define IL_PACKAGE_TARNAME ""
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define IL_PACKAGE_VERSION ""
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Version number of package */
|
||||
//#define IL_VERSION "1.7.3"
|
||||
|
||||
/* Define to 1 if your processor stores words with the most significant byte
|
||||
first (like Motorola and SPARC, unlike Intel and VAX). */
|
||||
/* #undef WORDS_BIGENDIAN */
|
||||
|
||||
/* If using Mac OS X uncomment this line */
|
||||
/* #include "macconfig.h" */
|
||||
|
||||
/* Define to 1 if the X Window System is missing or not being used. */
|
||||
/* #undef X_DISPLAY_MISSING */
|
||||
#endif /* __CONFIG_H__ */
|
||||
@@ -0,0 +1,79 @@
|
||||
#ifndef __CONFIG_H__
|
||||
#define __CONFIG_H__
|
||||
|
||||
#define IL_USE_PRAGMA_LIBS // Links to only the libraries that are requested.
|
||||
#define IL_INLINE_ASM 1 // Define if you can support at least some ASM
|
||||
|
||||
// Supported images formats (IL)
|
||||
|
||||
// #define IL_NO_BLP
|
||||
// #define IL_NO_BMP
|
||||
// #define IL_NO_CUT
|
||||
// #define IL_NO_CHEAD
|
||||
// #define IL_NO_DCX
|
||||
// #define IL_NO_DDS
|
||||
// #define IL_NO_DICOM
|
||||
// #define IL_NO_DOOM
|
||||
// #define IL_NO_EXR
|
||||
// #define IL_NO_FITS
|
||||
// #define IL_NO_FTX
|
||||
// #define IL_NO_GIF
|
||||
// #define IL_NO_HDR
|
||||
// #define IL_NO_ICO
|
||||
// #define IL_NO_ICNS
|
||||
// #define IL_NO_IWI
|
||||
// #define IL_NO_JP2
|
||||
// #define IL_NO_JPG
|
||||
// #define IL_NO_LCMS
|
||||
// #define IL_NO_LIF
|
||||
// #define IL_NO_MDL
|
||||
// #define IL_NO_MNG
|
||||
// #define IL_NO_PCD
|
||||
// #define IL_NO_PCX
|
||||
// #define IL_NO_PIC
|
||||
// #define IL_NO_PIX
|
||||
// #define IL_NO_PNG
|
||||
// #define IL_NO_PNM
|
||||
// #define IL_NO_PSD
|
||||
// #define IL_NO_PSP
|
||||
// #define IL_NO_PXR
|
||||
// #define IL_NO_RAW
|
||||
// #define IL_NO_ROT
|
||||
// #define IL_NO_SGI
|
||||
// #define IL_NO_SUN
|
||||
// #define IL_NO_TGA
|
||||
// #define IL_NO_TIF
|
||||
// #define IL_NO_TPL
|
||||
// #define IL_NO_WAL
|
||||
// #define IL_NO_WDP
|
||||
// #define IL_NO_XPM
|
||||
|
||||
#define IL_USE_JPEGLIB_UNMODIFIED 1
|
||||
#define IL_USE_DXTC_NVIDIA
|
||||
#define IL_USE_DXTC_SQUISH
|
||||
|
||||
//#define IL_NO_GAMES
|
||||
|
||||
/* Supported api (ilut) */
|
||||
|
||||
|
||||
//
|
||||
// sorry just
|
||||
// cant get this one to work under windows
|
||||
// have disabled for the now
|
||||
//
|
||||
// will look at it some more later
|
||||
//
|
||||
// Kriss
|
||||
//
|
||||
#undef ILUT_USE_ALLEGRO
|
||||
|
||||
#undef ILUT_USE_DIRECTX8
|
||||
#define ILUT_USE_DIRECTX9
|
||||
#define ILUT_USE_DIRECTX10
|
||||
#define ILUT_USE_OPENGL
|
||||
#define ILUT_USE_SDL
|
||||
#define ILUT_USE_WIN32
|
||||
|
||||
|
||||
#endif /* __CONFIG_H__ */
|
||||
@@ -0,0 +1,161 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Sources
|
||||
// Copyright (C) 2000-2009 by Denton Woods
|
||||
// Last modified: 01/06/2009
|
||||
//
|
||||
// Filename: IL/devil_internal_exports.h
|
||||
//
|
||||
// Description: Internal stuff for DevIL (IL, ILU and ILUT)
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef IL_EXPORTS_H
|
||||
#define IL_EXPORTS_H
|
||||
|
||||
#include "IL/il.h"
|
||||
|
||||
#ifdef DEBUG
|
||||
#include <assert.h>
|
||||
#else
|
||||
#define assert(x)
|
||||
#endif
|
||||
|
||||
//#ifndef NOINLINE
|
||||
#ifndef INLINE
|
||||
#if defined(__GNUC__)
|
||||
#define INLINE extern inline
|
||||
#elif defined(_MSC_VER) //@TODO: Get this working in MSVC++.
|
||||
// http://www.greenend.org.uk/rjk/2003/03/inline.html
|
||||
#define NOINLINE
|
||||
//#define INLINE
|
||||
/*#ifndef _WIN64 // Cannot use inline assembly in x64 target platform.
|
||||
#define USE_WIN32_ASM
|
||||
#endif//_WIN64*/
|
||||
#define INLINE __inline
|
||||
#else
|
||||
#define INLINE inline
|
||||
#endif
|
||||
#endif
|
||||
//#else
|
||||
//#define INLINE
|
||||
//#endif //NOINLINE
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define IL_MAX(a,b) (((a) > (b)) ? (a) : (b))
|
||||
#define IL_MIN(a,b) (((a) < (b)) ? (a) : (b))
|
||||
|
||||
|
||||
//! Basic Palette struct
|
||||
typedef struct ILpal
|
||||
{
|
||||
ILubyte* Palette; //!< the image palette (if any)
|
||||
ILuint PalSize; //!< size of the palette (in bytes)
|
||||
ILenum PalType; //!< the palette types in il.h (0x0500 range)
|
||||
} ILpal;
|
||||
|
||||
|
||||
//! The Fundamental Image structure
|
||||
/*! Every bit of information about an image is stored in this internal structure.*/
|
||||
typedef struct ILimage
|
||||
{
|
||||
ILuint Width; //!< the image's width
|
||||
ILuint Height; //!< the image's height
|
||||
ILuint Depth; //!< the image's depth
|
||||
ILubyte Bpp; //!< bytes per pixel (now number of channels)
|
||||
ILubyte Bpc; //!< bytes per channel
|
||||
ILuint Bps; //!< bytes per scanline (components for IL)
|
||||
ILubyte* Data; //!< the image data
|
||||
ILuint SizeOfData; //!< the total size of the data (in bytes)
|
||||
ILuint SizeOfPlane; //!< SizeOfData in a 2d image, size of each plane slice in a 3d image (in bytes)
|
||||
ILenum Format; //!< image format (in IL enum style)
|
||||
ILenum Type; //!< image type (in IL enum style)
|
||||
ILenum Origin; //!< origin of the image
|
||||
ILpal Pal; //!< palette details
|
||||
ILuint Duration; //!< length of the time to display this "frame"
|
||||
ILenum CubeFlags; //!< cube map flags for sides present in chain
|
||||
struct ILimage* Mipmaps; //!< mipmapped versions of this image terminated by a NULL - usu. NULL
|
||||
struct ILimage* Next; //!< next image in the chain - usu. NULL
|
||||
struct ILimage* Faces; //!< next cubemap face in the chain - usu. NULL
|
||||
struct ILimage* Layers; //!< subsequent layers in the chain - usu. NULL
|
||||
ILuint* AnimList; //!< animation list
|
||||
ILuint AnimSize; //!< animation list size
|
||||
void* Profile; //!< colour profile
|
||||
ILuint ProfileSize; //!< colour profile size
|
||||
ILuint OffX; //!< x-offset of the image
|
||||
ILuint OffY; //!< y-offset of the image
|
||||
ILubyte* DxtcData; //!< compressed data
|
||||
ILenum DxtcFormat; //!< compressed data format
|
||||
ILuint DxtcSize; //!< compressed data size
|
||||
} ILimage;
|
||||
|
||||
|
||||
// Memory functions
|
||||
ILAPI void* ILAPIENTRY ialloc(const ILsizei Size);
|
||||
ILAPI void ILAPIENTRY ifree(const void *Ptr);
|
||||
ILAPI void* ILAPIENTRY icalloc(const ILsizei Size, const ILsizei Num);
|
||||
#ifdef ALTIVEC_GCC
|
||||
ILAPI void* ILAPIENTRY ivec_align_buffer(void *buffer, const ILuint size);
|
||||
#endif
|
||||
|
||||
// Internal library functions in IL
|
||||
ILAPI ILimage* ILAPIENTRY ilGetCurImage(void);
|
||||
ILAPI void ILAPIENTRY ilSetCurImage(ILimage *Image);
|
||||
ILAPI void ILAPIENTRY ilSetError(ILenum Error);
|
||||
ILAPI void ILAPIENTRY ilSetPal(ILpal *Pal);
|
||||
|
||||
//
|
||||
// Utility functions
|
||||
//
|
||||
ILAPI ILubyte ILAPIENTRY ilGetBppFormat(ILenum Format);
|
||||
ILAPI ILenum ILAPIENTRY ilGetFormatBpp(ILubyte Bpp);
|
||||
ILAPI ILubyte ILAPIENTRY ilGetBpcType(ILenum Type);
|
||||
ILAPI ILenum ILAPIENTRY ilGetTypeBpc(ILubyte Bpc);
|
||||
ILAPI ILubyte ILAPIENTRY ilGetBppPal(ILenum PalType);
|
||||
ILAPI ILenum ILAPIENTRY ilGetPalBaseType(ILenum PalType);
|
||||
ILAPI ILuint ILAPIENTRY ilNextPower2(ILuint Num);
|
||||
ILAPI ILenum ILAPIENTRY ilTypeFromExt(ILconst_string FileName);
|
||||
ILAPI void ILAPIENTRY ilReplaceCurImage(ILimage *Image);
|
||||
ILAPI void ILAPIENTRY iMemSwap(ILubyte *, ILubyte *, const ILuint);
|
||||
|
||||
//
|
||||
// Image functions
|
||||
//
|
||||
ILAPI void ILAPIENTRY iBindImageTemp (void);
|
||||
ILAPI ILboolean ILAPIENTRY ilClearImage_ (ILimage *Image);
|
||||
ILAPI void ILAPIENTRY ilCloseImage (ILimage *Image);
|
||||
ILAPI void ILAPIENTRY ilClosePal (ILpal *Palette);
|
||||
ILAPI ILpal* ILAPIENTRY iCopyPal (void);
|
||||
ILAPI ILboolean ILAPIENTRY ilCopyImageAttr (ILimage *Dest, ILimage *Src);
|
||||
ILAPI ILimage* ILAPIENTRY ilCopyImage_ (ILimage *Src);
|
||||
ILAPI void ILAPIENTRY ilGetClear (void *Colours, ILenum Format, ILenum Type);
|
||||
ILAPI ILuint ILAPIENTRY ilGetCurName (void);
|
||||
ILAPI ILboolean ILAPIENTRY ilIsValidPal (ILpal *Palette);
|
||||
ILAPI ILimage* ILAPIENTRY ilNewImage (ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILubyte Bpc);
|
||||
ILAPI ILimage* ILAPIENTRY ilNewImageFull (ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILenum Format, ILenum Type, void *Data);
|
||||
ILAPI ILboolean ILAPIENTRY ilInitImage (ILimage *Image, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILenum Format, ILenum Type, void *Data);
|
||||
ILAPI ILboolean ILAPIENTRY ilResizeImage (ILimage *Image, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILubyte Bpc);
|
||||
ILAPI ILboolean ILAPIENTRY ilTexImage_ (ILimage *Image, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp, ILenum Format, ILenum Type, void *Data);
|
||||
ILAPI ILboolean ILAPIENTRY ilTexSubImage_ (ILimage *Image, void *Data);
|
||||
ILAPI void* ILAPIENTRY ilConvertBuffer (ILuint SizeOfData, ILenum SrcFormat, ILenum DestFormat, ILenum SrcType, ILenum DestType, ILpal *SrcPal, void *Buffer);
|
||||
ILAPI ILimage* ILAPIENTRY iConvertImage (ILimage *Image, ILenum DestFormat, ILenum DestType);
|
||||
ILAPI ILpal* ILAPIENTRY iConvertPal (ILpal *Pal, ILenum DestFormat);
|
||||
ILAPI ILubyte* ILAPIENTRY iGetFlipped (ILimage *Image);
|
||||
ILAPI ILboolean ILAPIENTRY iMirror();
|
||||
ILAPI void ILAPIENTRY iFlipBuffer(ILubyte *buff, ILuint depth, ILuint line_size, ILuint line_num);
|
||||
ILubyte* iFlipNewBuffer(ILubyte *buff, ILuint depth, ILuint line_size, ILuint line_num);
|
||||
ILAPI void ILAPIENTRY iGetIntegervImage(ILimage *Image, ILenum Mode, ILint *Param);
|
||||
|
||||
// Internal library functions in ILU
|
||||
ILAPI ILimage* ILAPIENTRY iluRotate_(ILimage *Image, ILfloat Angle);
|
||||
ILAPI ILimage* ILAPIENTRY iluRotate3D_(ILimage *Image, ILfloat x, ILfloat y, ILfloat z, ILfloat Angle);
|
||||
ILAPI ILimage* ILAPIENTRY iluScale_(ILimage *Image, ILuint Width, ILuint Height, ILuint Depth);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif//IL_EXPORTS_H
|
||||
@@ -0,0 +1,644 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Sources
|
||||
// Copyright (C) 2000-2009 by Denton Woods
|
||||
// Last modified: 03/07/2009
|
||||
//
|
||||
// Filename: IL/il.h
|
||||
//
|
||||
// Description: The main include file for DevIL
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Doxygen comment
|
||||
/*! \file il.h
|
||||
The main include file for DevIL
|
||||
*/
|
||||
|
||||
#ifndef __il_h_
|
||||
#ifndef __IL_H__
|
||||
|
||||
#define __il_h_
|
||||
#define __IL_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
//this define controls if floats and doubles are clampled to [0..1]
|
||||
//during conversion. It takes a little more time, but it is the correct
|
||||
//way of doing this. If you are sure your floats are always valid,
|
||||
//you can undefine this value...
|
||||
#define CLAMP_HALF 1
|
||||
#define CLAMP_FLOATS 1
|
||||
#define CLAMP_DOUBLES 1
|
||||
|
||||
/*#ifdef _WIN32_WCE
|
||||
#define IL_NO_EXR
|
||||
#define IL_NO_GIF
|
||||
#define IL_NO_JP2
|
||||
#define IL_NO_JPG
|
||||
#define IL_NO_MNG
|
||||
#define IL_NO_PNG
|
||||
#define IL_NO_TIF
|
||||
#define IL_NO_LCMS
|
||||
#endif //_WIN32_WCE
|
||||
|
||||
#ifdef DJGPP
|
||||
#define IL_NO_EXR
|
||||
#define IL_NO_GIF
|
||||
#define IL_NO_JP2
|
||||
#define IL_NO_JPG
|
||||
#define IL_NO_MNG
|
||||
#define IL_NO_PNG
|
||||
#define IL_NO_TIF
|
||||
#define IL_NO_LCMS
|
||||
#endif //DJGPP*/
|
||||
|
||||
#ifdef _WIN32
|
||||
#if (defined(IL_USE_PRAGMA_LIBS)) && (!defined(_IL_BUILD_LIBRARY))
|
||||
#if defined(_MSC_VER) || defined(__BORLANDC__)
|
||||
#pragma comment(lib, "DevIL.lib")
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef RESTRICT_KEYWORD
|
||||
#define RESTRICT restrict
|
||||
#define CONST_RESTRICT const restrict
|
||||
#else
|
||||
#define RESTRICT
|
||||
#define CONST_RESTRICT const
|
||||
#endif
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
typedef unsigned int ILenum;
|
||||
typedef unsigned char ILboolean;
|
||||
typedef unsigned int ILbitfield;
|
||||
typedef signed char ILbyte;
|
||||
typedef signed short ILshort;
|
||||
typedef int ILint;
|
||||
typedef size_t ILsizei;
|
||||
typedef unsigned char ILubyte;
|
||||
typedef unsigned short ILushort;
|
||||
typedef unsigned int ILuint;
|
||||
typedef float ILfloat;
|
||||
typedef float ILclampf;
|
||||
typedef double ILdouble;
|
||||
typedef double ILclampd;
|
||||
|
||||
#ifdef _MSC_VER
|
||||
typedef __int64 ILint64;
|
||||
typedef unsigned __int64 ILuint64;
|
||||
#else
|
||||
typedef long long int ILint64;
|
||||
typedef long long unsigned int ILuint64;
|
||||
#endif
|
||||
|
||||
|
||||
#include <limits.h>
|
||||
#ifdef _UNICODE
|
||||
#ifndef _WIN32_WCE
|
||||
#include <wchar.h>
|
||||
#endif
|
||||
//if we use a define instead of a typedef,
|
||||
//ILconst_string works as intended
|
||||
#define ILchar wchar_t
|
||||
#define ILstring wchar_t*
|
||||
#define ILconst_string wchar_t const *
|
||||
#else
|
||||
//if we use a define instead of a typedef,
|
||||
//ILconst_string works as intended
|
||||
#define ILchar char
|
||||
#define ILstring char*
|
||||
#define ILconst_string char const *
|
||||
#endif //_UNICODE
|
||||
|
||||
#define IL_FALSE 0
|
||||
#define IL_TRUE 1
|
||||
|
||||
// Matches OpenGL's right now.
|
||||
//! Data formats \link Formats Formats\endlink
|
||||
#define IL_COLOUR_INDEX 0x1900
|
||||
#define IL_COLOR_INDEX 0x1900
|
||||
#define IL_ALPHA 0x1906
|
||||
#define IL_RGB 0x1907
|
||||
#define IL_RGBA 0x1908
|
||||
#define IL_BGR 0x80E0
|
||||
#define IL_BGRA 0x80E1
|
||||
#define IL_LUMINANCE 0x1909
|
||||
#define IL_LUMINANCE_ALPHA 0x190A
|
||||
|
||||
//! Data types \link Types Types\endlink
|
||||
#define IL_BYTE 0x1400
|
||||
#define IL_UNSIGNED_BYTE 0x1401
|
||||
#define IL_SHORT 0x1402
|
||||
#define IL_UNSIGNED_SHORT 0x1403
|
||||
#define IL_INT 0x1404
|
||||
#define IL_UNSIGNED_INT 0x1405
|
||||
#define IL_FLOAT 0x1406
|
||||
#define IL_DOUBLE 0x140A
|
||||
#define IL_HALF 0x140B
|
||||
|
||||
|
||||
#define IL_MAX_BYTE SCHAR_MAX
|
||||
#define IL_MAX_UNSIGNED_BYTE UCHAR_MAX
|
||||
#define IL_MAX_SHORT SHRT_MAX
|
||||
#define IL_MAX_UNSIGNED_SHORT USHRT_MAX
|
||||
#define IL_MAX_INT INT_MAX
|
||||
#define IL_MAX_UNSIGNED_INT UINT_MAX
|
||||
|
||||
#define IL_LIMIT(x,m,M) (x<m?m:(x>M?M:x))
|
||||
#define IL_CLAMP(x) IL_LIMIT(x,0,1)
|
||||
|
||||
#define IL_VENDOR 0x1F00
|
||||
#define IL_LOAD_EXT 0x1F01
|
||||
#define IL_SAVE_EXT 0x1F02
|
||||
|
||||
|
||||
//
|
||||
// IL-specific #define's
|
||||
//
|
||||
|
||||
#define IL_VERSION_1_7_8 1
|
||||
#define IL_VERSION 178
|
||||
|
||||
|
||||
// Attribute Bits
|
||||
#define IL_ORIGIN_BIT 0x00000001
|
||||
#define IL_FILE_BIT 0x00000002
|
||||
#define IL_PAL_BIT 0x00000004
|
||||
#define IL_FORMAT_BIT 0x00000008
|
||||
#define IL_TYPE_BIT 0x00000010
|
||||
#define IL_COMPRESS_BIT 0x00000020
|
||||
#define IL_LOADFAIL_BIT 0x00000040
|
||||
#define IL_FORMAT_SPECIFIC_BIT 0x00000080
|
||||
#define IL_ALL_ATTRIB_BITS 0x000FFFFF
|
||||
|
||||
|
||||
// Palette types
|
||||
#define IL_PAL_NONE 0x0400
|
||||
#define IL_PAL_RGB24 0x0401
|
||||
#define IL_PAL_RGB32 0x0402
|
||||
#define IL_PAL_RGBA32 0x0403
|
||||
#define IL_PAL_BGR24 0x0404
|
||||
#define IL_PAL_BGR32 0x0405
|
||||
#define IL_PAL_BGRA32 0x0406
|
||||
|
||||
|
||||
// Image types
|
||||
#define IL_TYPE_UNKNOWN 0x0000
|
||||
#define IL_BMP 0x0420 //!< Microsoft Windows Bitmap - .bmp extension
|
||||
#define IL_CUT 0x0421 //!< Dr. Halo - .cut extension
|
||||
#define IL_DOOM 0x0422 //!< DooM walls - no specific extension
|
||||
#define IL_DOOM_FLAT 0x0423 //!< DooM flats - no specific extension
|
||||
#define IL_ICO 0x0424 //!< Microsoft Windows Icons and Cursors - .ico and .cur extensions
|
||||
#define IL_JPG 0x0425 //!< JPEG - .jpg, .jpe and .jpeg extensions
|
||||
#define IL_JFIF 0x0425 //!<
|
||||
#define IL_ILBM 0x0426 //!< Amiga IFF (FORM ILBM) - .iff, .ilbm, .lbm extensions
|
||||
#define IL_PCD 0x0427 //!< Kodak PhotoCD - .pcd extension
|
||||
#define IL_PCX 0x0428 //!< ZSoft PCX - .pcx extension
|
||||
#define IL_PIC 0x0429 //!< PIC - .pic extension
|
||||
#define IL_PNG 0x042A //!< Portable Network Graphics - .png extension
|
||||
#define IL_PNM 0x042B //!< Portable Any Map - .pbm, .pgm, .ppm and .pnm extensions
|
||||
#define IL_SGI 0x042C //!< Silicon Graphics - .sgi, .bw, .rgb and .rgba extensions
|
||||
#define IL_TGA 0x042D //!< TrueVision Targa File - .tga, .vda, .icb and .vst extensions
|
||||
#define IL_TIF 0x042E //!< Tagged Image File Format - .tif and .tiff extensions
|
||||
#define IL_CHEAD 0x042F //!< C-Style Header - .h extension
|
||||
#define IL_RAW 0x0430 //!< Raw Image Data - any extension
|
||||
#define IL_MDL 0x0431 //!< Half-Life Model Texture - .mdl extension
|
||||
#define IL_WAL 0x0432 //!< Quake 2 Texture - .wal extension
|
||||
#define IL_LIF 0x0434 //!< Homeworld Texture - .lif extension
|
||||
#define IL_MNG 0x0435 //!< Multiple-image Network Graphics - .mng extension
|
||||
#define IL_JNG 0x0435 //!<
|
||||
#define IL_GIF 0x0436 //!< Graphics Interchange Format - .gif extension
|
||||
#define IL_DDS 0x0437 //!< DirectDraw Surface - .dds extension
|
||||
#define IL_DCX 0x0438 //!< ZSoft Multi-PCX - .dcx extension
|
||||
#define IL_PSD 0x0439 //!< Adobe PhotoShop - .psd extension
|
||||
#define IL_EXIF 0x043A //!<
|
||||
#define IL_PSP 0x043B //!< PaintShop Pro - .psp extension
|
||||
#define IL_PIX 0x043C //!< PIX - .pix extension
|
||||
#define IL_PXR 0x043D //!< Pixar - .pxr extension
|
||||
#define IL_XPM 0x043E //!< X Pixel Map - .xpm extension
|
||||
#define IL_HDR 0x043F //!< Radiance High Dynamic Range - .hdr extension
|
||||
#define IL_ICNS 0x0440 //!< Macintosh Icon - .icns extension
|
||||
#define IL_JP2 0x0441 //!< Jpeg 2000 - .jp2 extension
|
||||
#define IL_EXR 0x0442 //!< OpenEXR - .exr extension
|
||||
#define IL_WDP 0x0443 //!< Microsoft HD Photo - .wdp and .hdp extension
|
||||
#define IL_VTF 0x0444 //!< Valve Texture Format - .vtf extension
|
||||
#define IL_WBMP 0x0445 //!< Wireless Bitmap - .wbmp extension
|
||||
#define IL_SUN 0x0446 //!< Sun Raster - .sun, .ras, .rs, .im1, .im8, .im24 and .im32 extensions
|
||||
#define IL_IFF 0x0447 //!< Interchange File Format - .iff extension
|
||||
#define IL_TPL 0x0448 //!< Gamecube Texture - .tpl extension
|
||||
#define IL_FITS 0x0449 //!< Flexible Image Transport System - .fit and .fits extensions
|
||||
#define IL_DICOM 0x044A //!< Digital Imaging and Communications in Medicine (DICOM) - .dcm and .dicom extensions
|
||||
#define IL_IWI 0x044B //!< Call of Duty Infinity Ward Image - .iwi extension
|
||||
#define IL_BLP 0x044C //!< Blizzard Texture Format - .blp extension
|
||||
#define IL_FTX 0x044D //!< Heavy Metal: FAKK2 Texture - .ftx extension
|
||||
#define IL_ROT 0x044E //!< Homeworld 2 - Relic Texture - .rot extension
|
||||
#define IL_TEXTURE 0x044F //!< Medieval II: Total War Texture - .texture extension
|
||||
#define IL_DPX 0x0450 //!< Digital Picture Exchange - .dpx extension
|
||||
#define IL_UTX 0x0451 //!< Unreal (and Unreal Tournament) Texture - .utx extension
|
||||
#define IL_MP3 0x0452 //!< MPEG-1 Audio Layer 3 - .mp3 extension
|
||||
|
||||
|
||||
#define IL_JASC_PAL 0x0475 //!< PaintShop Pro Palette
|
||||
|
||||
|
||||
// Error Types
|
||||
#define IL_NO_ERROR 0x0000
|
||||
#define IL_INVALID_ENUM 0x0501
|
||||
#define IL_OUT_OF_MEMORY 0x0502
|
||||
#define IL_FORMAT_NOT_SUPPORTED 0x0503
|
||||
#define IL_INTERNAL_ERROR 0x0504
|
||||
#define IL_INVALID_VALUE 0x0505
|
||||
#define IL_ILLEGAL_OPERATION 0x0506
|
||||
#define IL_ILLEGAL_FILE_VALUE 0x0507
|
||||
#define IL_INVALID_FILE_HEADER 0x0508
|
||||
#define IL_INVALID_PARAM 0x0509
|
||||
#define IL_COULD_NOT_OPEN_FILE 0x050A
|
||||
#define IL_INVALID_EXTENSION 0x050B
|
||||
#define IL_FILE_ALREADY_EXISTS 0x050C
|
||||
#define IL_OUT_FORMAT_SAME 0x050D
|
||||
#define IL_STACK_OVERFLOW 0x050E
|
||||
#define IL_STACK_UNDERFLOW 0x050F
|
||||
#define IL_INVALID_CONVERSION 0x0510
|
||||
#define IL_BAD_DIMENSIONS 0x0511
|
||||
#define IL_FILE_READ_ERROR 0x0512 // 05/12/2002: Addition by Sam.
|
||||
#define IL_FILE_WRITE_ERROR 0x0512
|
||||
|
||||
#define IL_LIB_GIF_ERROR 0x05E1
|
||||
#define IL_LIB_JPEG_ERROR 0x05E2
|
||||
#define IL_LIB_PNG_ERROR 0x05E3
|
||||
#define IL_LIB_TIFF_ERROR 0x05E4
|
||||
#define IL_LIB_MNG_ERROR 0x05E5
|
||||
#define IL_LIB_JP2_ERROR 0x05E6
|
||||
#define IL_LIB_EXR_ERROR 0x05E7
|
||||
#define IL_UNKNOWN_ERROR 0x05FF
|
||||
|
||||
|
||||
// Origin Definitions
|
||||
#define IL_ORIGIN_SET 0x0600
|
||||
#define IL_ORIGIN_LOWER_LEFT 0x0601
|
||||
#define IL_ORIGIN_UPPER_LEFT 0x0602
|
||||
#define IL_ORIGIN_MODE 0x0603
|
||||
|
||||
|
||||
// Format and Type Mode Definitions
|
||||
#define IL_FORMAT_SET 0x0610
|
||||
#define IL_FORMAT_MODE 0x0611
|
||||
#define IL_TYPE_SET 0x0612
|
||||
#define IL_TYPE_MODE 0x0613
|
||||
|
||||
|
||||
// File definitions
|
||||
#define IL_FILE_OVERWRITE 0x0620
|
||||
#define IL_FILE_MODE 0x0621
|
||||
|
||||
|
||||
// Palette definitions
|
||||
#define IL_CONV_PAL 0x0630
|
||||
|
||||
|
||||
// Load fail definitions
|
||||
#define IL_DEFAULT_ON_FAIL 0x0632
|
||||
|
||||
|
||||
// Key colour and alpha definitions
|
||||
#define IL_USE_KEY_COLOUR 0x0635
|
||||
#define IL_USE_KEY_COLOR 0x0635
|
||||
#define IL_BLIT_BLEND 0x0636
|
||||
|
||||
|
||||
// Interlace definitions
|
||||
#define IL_SAVE_INTERLACED 0x0639
|
||||
#define IL_INTERLACE_MODE 0x063A
|
||||
|
||||
|
||||
// Quantization definitions
|
||||
#define IL_QUANTIZATION_MODE 0x0640
|
||||
#define IL_WU_QUANT 0x0641
|
||||
#define IL_NEU_QUANT 0x0642
|
||||
#define IL_NEU_QUANT_SAMPLE 0x0643
|
||||
#define IL_MAX_QUANT_INDEXS 0x0644 //XIX : ILint : Maximum number of colors to reduce to, default of 256. and has a range of 2-256
|
||||
#define IL_MAX_QUANT_INDICES 0x0644 // Redefined, since the above #define is misspelled
|
||||
|
||||
|
||||
// Hints
|
||||
#define IL_FASTEST 0x0660
|
||||
#define IL_LESS_MEM 0x0661
|
||||
#define IL_DONT_CARE 0x0662
|
||||
#define IL_MEM_SPEED_HINT 0x0665
|
||||
#define IL_USE_COMPRESSION 0x0666
|
||||
#define IL_NO_COMPRESSION 0x0667
|
||||
#define IL_COMPRESSION_HINT 0x0668
|
||||
|
||||
|
||||
// Compression
|
||||
#define IL_NVIDIA_COMPRESS 0x0670
|
||||
#define IL_SQUISH_COMPRESS 0x0671
|
||||
|
||||
|
||||
// Subimage types
|
||||
#define IL_SUB_NEXT 0x0680
|
||||
#define IL_SUB_MIPMAP 0x0681
|
||||
#define IL_SUB_LAYER 0x0682
|
||||
|
||||
|
||||
// Compression definitions
|
||||
#define IL_COMPRESS_MODE 0x0700
|
||||
#define IL_COMPRESS_NONE 0x0701
|
||||
#define IL_COMPRESS_RLE 0x0702
|
||||
#define IL_COMPRESS_LZO 0x0703
|
||||
#define IL_COMPRESS_ZLIB 0x0704
|
||||
|
||||
|
||||
// File format-specific values
|
||||
#define IL_TGA_CREATE_STAMP 0x0710
|
||||
#define IL_JPG_QUALITY 0x0711
|
||||
#define IL_PNG_INTERLACE 0x0712
|
||||
#define IL_TGA_RLE 0x0713
|
||||
#define IL_BMP_RLE 0x0714
|
||||
#define IL_SGI_RLE 0x0715
|
||||
#define IL_TGA_ID_STRING 0x0717
|
||||
#define IL_TGA_AUTHNAME_STRING 0x0718
|
||||
#define IL_TGA_AUTHCOMMENT_STRING 0x0719
|
||||
#define IL_PNG_AUTHNAME_STRING 0x071A
|
||||
#define IL_PNG_TITLE_STRING 0x071B
|
||||
#define IL_PNG_DESCRIPTION_STRING 0x071C
|
||||
#define IL_TIF_DESCRIPTION_STRING 0x071D
|
||||
#define IL_TIF_HOSTCOMPUTER_STRING 0x071E
|
||||
#define IL_TIF_DOCUMENTNAME_STRING 0x071F
|
||||
#define IL_TIF_AUTHNAME_STRING 0x0720
|
||||
#define IL_JPG_SAVE_FORMAT 0x0721
|
||||
#define IL_CHEAD_HEADER_STRING 0x0722
|
||||
#define IL_PCD_PICNUM 0x0723
|
||||
#define IL_PNG_ALPHA_INDEX 0x0724 //XIX : ILint : the color in the palette at this index value (0-255) is considered transparent, -1 for no trasparent color
|
||||
#define IL_JPG_PROGRESSIVE 0x0725
|
||||
#define IL_VTF_COMP 0x0726
|
||||
|
||||
|
||||
// DXTC definitions
|
||||
#define IL_DXTC_FORMAT 0x0705
|
||||
#define IL_DXT1 0x0706
|
||||
#define IL_DXT2 0x0707
|
||||
#define IL_DXT3 0x0708
|
||||
#define IL_DXT4 0x0709
|
||||
#define IL_DXT5 0x070A
|
||||
#define IL_DXT_NO_COMP 0x070B
|
||||
#define IL_KEEP_DXTC_DATA 0x070C
|
||||
#define IL_DXTC_DATA_FORMAT 0x070D
|
||||
#define IL_3DC 0x070E
|
||||
#define IL_RXGB 0x070F
|
||||
#define IL_ATI1N 0x0710
|
||||
#define IL_DXT1A 0x0711 // Normally the same as IL_DXT1, except for nVidia Texture Tools.
|
||||
|
||||
// Environment map definitions
|
||||
#define IL_CUBEMAP_POSITIVEX 0x00000400
|
||||
#define IL_CUBEMAP_NEGATIVEX 0x00000800
|
||||
#define IL_CUBEMAP_POSITIVEY 0x00001000
|
||||
#define IL_CUBEMAP_NEGATIVEY 0x00002000
|
||||
#define IL_CUBEMAP_POSITIVEZ 0x00004000
|
||||
#define IL_CUBEMAP_NEGATIVEZ 0x00008000
|
||||
#define IL_SPHEREMAP 0x00010000
|
||||
|
||||
|
||||
// Values
|
||||
#define IL_VERSION_NUM 0x0DE2
|
||||
#define IL_IMAGE_WIDTH 0x0DE4
|
||||
#define IL_IMAGE_HEIGHT 0x0DE5
|
||||
#define IL_IMAGE_DEPTH 0x0DE6
|
||||
#define IL_IMAGE_SIZE_OF_DATA 0x0DE7
|
||||
#define IL_IMAGE_BPP 0x0DE8
|
||||
#define IL_IMAGE_BYTES_PER_PIXEL 0x0DE8
|
||||
#define IL_IMAGE_BPP 0x0DE8
|
||||
#define IL_IMAGE_BITS_PER_PIXEL 0x0DE9
|
||||
#define IL_IMAGE_FORMAT 0x0DEA
|
||||
#define IL_IMAGE_TYPE 0x0DEB
|
||||
#define IL_PALETTE_TYPE 0x0DEC
|
||||
#define IL_PALETTE_SIZE 0x0DED
|
||||
#define IL_PALETTE_BPP 0x0DEE
|
||||
#define IL_PALETTE_NUM_COLS 0x0DEF
|
||||
#define IL_PALETTE_BASE_TYPE 0x0DF0
|
||||
#define IL_NUM_FACES 0x0DE1
|
||||
#define IL_NUM_IMAGES 0x0DF1
|
||||
#define IL_NUM_MIPMAPS 0x0DF2
|
||||
#define IL_NUM_LAYERS 0x0DF3
|
||||
#define IL_ACTIVE_IMAGE 0x0DF4
|
||||
#define IL_ACTIVE_MIPMAP 0x0DF5
|
||||
#define IL_ACTIVE_LAYER 0x0DF6
|
||||
#define IL_ACTIVE_FACE 0x0E00
|
||||
#define IL_CUR_IMAGE 0x0DF7
|
||||
#define IL_IMAGE_DURATION 0x0DF8
|
||||
#define IL_IMAGE_PLANESIZE 0x0DF9
|
||||
#define IL_IMAGE_BPC 0x0DFA
|
||||
#define IL_IMAGE_OFFX 0x0DFB
|
||||
#define IL_IMAGE_OFFY 0x0DFC
|
||||
#define IL_IMAGE_CUBEFLAGS 0x0DFD
|
||||
#define IL_IMAGE_ORIGIN 0x0DFE
|
||||
#define IL_IMAGE_CHANNELS 0x0DFF
|
||||
|
||||
# if defined __GNUC__ && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0))
|
||||
// __attribute__((deprecated)) is supported by GCC 3.1 and later.
|
||||
# define DEPRECATED(D) D __attribute__((deprecated))
|
||||
# elif defined _MSC_VER && _MSC_VER >= 1300
|
||||
// __declspec(deprecated) is supported by MSVC 7.0 and later.
|
||||
# define DEPRECATED(D) __declspec(deprecated) D
|
||||
# else
|
||||
# define DEPRECATED (D) D
|
||||
# endif
|
||||
|
||||
//
|
||||
// Section shamelessly modified from the glut header.
|
||||
//
|
||||
|
||||
// This is from Win32's <windef.h>
|
||||
#if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) || defined(__LCC__)
|
||||
#define ILAPIENTRY __stdcall
|
||||
#define IL_PACKSTRUCT
|
||||
//#elif defined(linux) || defined(MACOSX) || defined(__CYGWIN__) //fix bug 840364
|
||||
#elif defined( __GNUC__ )
|
||||
// this should work for any of the above commented platforms
|
||||
// plus any platform using GCC
|
||||
#ifdef __MINGW32__
|
||||
#define ILAPIENTRY __stdcall
|
||||
#else
|
||||
#define ILAPIENTRY
|
||||
#endif
|
||||
#define IL_PACKSTRUCT __attribute__ ((packed))
|
||||
#else
|
||||
#define ILAPIENTRY
|
||||
#define IL_PACKSTRUCT
|
||||
#endif
|
||||
|
||||
// This is from Win32's <wingdi.h> and <winnt.h>
|
||||
#if defined(__LCC__)
|
||||
#define ILAPI __stdcall
|
||||
#elif defined(_WIN32) //changed 20031221 to fix bug 840421
|
||||
#ifdef IL_STATIC_LIB
|
||||
#define ILAPI
|
||||
#else
|
||||
#ifdef _IL_BUILD_LIBRARY
|
||||
#define ILAPI __declspec(dllexport)
|
||||
#else
|
||||
#define ILAPI __declspec(dllimport)
|
||||
#endif
|
||||
#endif
|
||||
#elif __APPLE__
|
||||
#define ILAPI extern
|
||||
#else
|
||||
#define ILAPI
|
||||
#endif
|
||||
|
||||
|
||||
#define IL_SEEK_SET 0
|
||||
#define IL_SEEK_CUR 1
|
||||
#define IL_SEEK_END 2
|
||||
#define IL_EOF -1
|
||||
|
||||
|
||||
// Callback functions for file reading
|
||||
typedef void* ILHANDLE;
|
||||
typedef void (ILAPIENTRY *fCloseRProc)(ILHANDLE);
|
||||
typedef ILboolean (ILAPIENTRY *fEofProc) (ILHANDLE);
|
||||
typedef ILint (ILAPIENTRY *fGetcProc) (ILHANDLE);
|
||||
typedef ILHANDLE (ILAPIENTRY *fOpenRProc) (ILconst_string);
|
||||
typedef ILint (ILAPIENTRY *fReadProc) (void*, ILuint, ILuint, ILHANDLE);
|
||||
typedef ILint (ILAPIENTRY *fSeekRProc) (ILHANDLE, ILint, ILint);
|
||||
typedef ILint (ILAPIENTRY *fTellRProc) (ILHANDLE);
|
||||
|
||||
// Callback functions for file writing
|
||||
typedef void (ILAPIENTRY *fCloseWProc)(ILHANDLE);
|
||||
typedef ILHANDLE (ILAPIENTRY *fOpenWProc) (ILconst_string);
|
||||
typedef ILint (ILAPIENTRY *fPutcProc) (ILubyte, ILHANDLE);
|
||||
typedef ILint (ILAPIENTRY *fSeekWProc) (ILHANDLE, ILint, ILint);
|
||||
typedef ILint (ILAPIENTRY *fTellWProc) (ILHANDLE);
|
||||
typedef ILint (ILAPIENTRY *fWriteProc) (const void*, ILuint, ILuint, ILHANDLE);
|
||||
|
||||
// Callback functions for allocation and deallocation
|
||||
typedef void* (ILAPIENTRY *mAlloc)(const ILsizei);
|
||||
typedef void (ILAPIENTRY *mFree) (const void* CONST_RESTRICT);
|
||||
|
||||
// Registered format procedures
|
||||
typedef ILenum (ILAPIENTRY *IL_LOADPROC)(ILconst_string);
|
||||
typedef ILenum (ILAPIENTRY *IL_SAVEPROC)(ILconst_string);
|
||||
|
||||
|
||||
// ImageLib Functions
|
||||
ILAPI ILboolean ILAPIENTRY ilActiveFace(ILuint Number);
|
||||
ILAPI ILboolean ILAPIENTRY ilActiveImage(ILuint Number);
|
||||
ILAPI ILboolean ILAPIENTRY ilActiveLayer(ILuint Number);
|
||||
ILAPI ILboolean ILAPIENTRY ilActiveMipmap(ILuint Number);
|
||||
ILAPI ILboolean ILAPIENTRY ilApplyPal(ILconst_string FileName);
|
||||
ILAPI ILboolean ILAPIENTRY ilApplyProfile(ILstring InProfile, ILstring OutProfile);
|
||||
ILAPI void ILAPIENTRY ilBindImage(ILuint Image);
|
||||
ILAPI ILboolean ILAPIENTRY ilBlit(ILuint Source, ILint DestX, ILint DestY, ILint DestZ, ILuint SrcX, ILuint SrcY, ILuint SrcZ, ILuint Width, ILuint Height, ILuint Depth);
|
||||
ILAPI ILboolean ILAPIENTRY ilClampNTSC(void);
|
||||
ILAPI void ILAPIENTRY ilClearColour(ILclampf Red, ILclampf Green, ILclampf Blue, ILclampf Alpha);
|
||||
ILAPI ILboolean ILAPIENTRY ilClearImage(void);
|
||||
ILAPI ILuint ILAPIENTRY ilCloneCurImage(void);
|
||||
ILAPI ILubyte* ILAPIENTRY ilCompressDXT(ILubyte *Data, ILuint Width, ILuint Height, ILuint Depth, ILenum DXTCFormat, ILuint *DXTCSize);
|
||||
ILAPI ILboolean ILAPIENTRY ilCompressFunc(ILenum Mode);
|
||||
ILAPI ILboolean ILAPIENTRY ilConvertImage(ILenum DestFormat, ILenum DestType);
|
||||
ILAPI ILboolean ILAPIENTRY ilConvertPal(ILenum DestFormat);
|
||||
ILAPI ILboolean ILAPIENTRY ilCopyImage(ILuint Src);
|
||||
ILAPI ILuint ILAPIENTRY ilCopyPixels(ILuint XOff, ILuint YOff, ILuint ZOff, ILuint Width, ILuint Height, ILuint Depth, ILenum Format, ILenum Type, void *Data);
|
||||
ILAPI ILuint ILAPIENTRY ilCreateSubImage(ILenum Type, ILuint Num);
|
||||
ILAPI ILboolean ILAPIENTRY ilDefaultImage(void);
|
||||
ILAPI void ILAPIENTRY ilDeleteImage(const ILuint Num);
|
||||
ILAPI void ILAPIENTRY ilDeleteImages(ILsizei Num, const ILuint *Images);
|
||||
ILAPI ILenum ILAPIENTRY ilDetermineType(ILconst_string FileName);
|
||||
ILAPI ILenum ILAPIENTRY ilDetermineTypeF(ILHANDLE File);
|
||||
ILAPI ILenum ILAPIENTRY ilDetermineTypeL(const void *Lump, ILuint Size);
|
||||
ILAPI ILboolean ILAPIENTRY ilDisable(ILenum Mode);
|
||||
ILAPI ILboolean ILAPIENTRY ilDxtcDataToImage(void);
|
||||
ILAPI ILboolean ILAPIENTRY ilDxtcDataToSurface(void);
|
||||
ILAPI ILboolean ILAPIENTRY ilEnable(ILenum Mode);
|
||||
ILAPI void ILAPIENTRY ilFlipSurfaceDxtcData(void);
|
||||
ILAPI ILboolean ILAPIENTRY ilFormatFunc(ILenum Mode);
|
||||
ILAPI void ILAPIENTRY ilGenImages(ILsizei Num, ILuint *Images);
|
||||
ILAPI ILuint ILAPIENTRY ilGenImage(void);
|
||||
ILAPI ILubyte* ILAPIENTRY ilGetAlpha(ILenum Type);
|
||||
ILAPI ILboolean ILAPIENTRY ilGetBoolean(ILenum Mode);
|
||||
ILAPI void ILAPIENTRY ilGetBooleanv(ILenum Mode, ILboolean *Param);
|
||||
ILAPI ILubyte* ILAPIENTRY ilGetData(void);
|
||||
ILAPI ILuint ILAPIENTRY ilGetDXTCData(void *Buffer, ILuint BufferSize, ILenum DXTCFormat);
|
||||
ILAPI ILenum ILAPIENTRY ilGetError(void);
|
||||
ILAPI ILint ILAPIENTRY ilGetInteger(ILenum Mode);
|
||||
ILAPI void ILAPIENTRY ilGetIntegerv(ILenum Mode, ILint *Param);
|
||||
ILAPI ILuint ILAPIENTRY ilGetLumpPos(void);
|
||||
ILAPI ILubyte* ILAPIENTRY ilGetPalette(void);
|
||||
ILAPI ILconst_string ILAPIENTRY ilGetString(ILenum StringName);
|
||||
ILAPI void ILAPIENTRY ilHint(ILenum Target, ILenum Mode);
|
||||
ILAPI ILboolean ILAPIENTRY ilInvertSurfaceDxtcDataAlpha(void);
|
||||
ILAPI void ILAPIENTRY ilInit(void);
|
||||
ILAPI ILboolean ILAPIENTRY ilImageToDxtcData(ILenum Format);
|
||||
ILAPI ILboolean ILAPIENTRY ilIsDisabled(ILenum Mode);
|
||||
ILAPI ILboolean ILAPIENTRY ilIsEnabled(ILenum Mode);
|
||||
ILAPI ILboolean ILAPIENTRY ilIsImage(ILuint Image);
|
||||
ILAPI ILboolean ILAPIENTRY ilIsValid(ILenum Type, ILconst_string FileName);
|
||||
ILAPI ILboolean ILAPIENTRY ilIsValidF(ILenum Type, ILHANDLE File);
|
||||
ILAPI ILboolean ILAPIENTRY ilIsValidL(ILenum Type, void *Lump, ILuint Size);
|
||||
ILAPI void ILAPIENTRY ilKeyColour(ILclampf Red, ILclampf Green, ILclampf Blue, ILclampf Alpha);
|
||||
ILAPI ILboolean ILAPIENTRY ilLoad(ILenum Type, ILconst_string FileName);
|
||||
ILAPI ILboolean ILAPIENTRY ilLoadF(ILenum Type, ILHANDLE File);
|
||||
ILAPI ILboolean ILAPIENTRY ilLoadImage(ILconst_string FileName);
|
||||
ILAPI ILboolean ILAPIENTRY ilLoadL(ILenum Type, const void *Lump, ILuint Size);
|
||||
ILAPI ILboolean ILAPIENTRY ilLoadPal(ILconst_string FileName);
|
||||
ILAPI void ILAPIENTRY ilModAlpha(ILdouble AlphaValue);
|
||||
ILAPI ILboolean ILAPIENTRY ilOriginFunc(ILenum Mode);
|
||||
ILAPI ILboolean ILAPIENTRY ilOverlayImage(ILuint Source, ILint XCoord, ILint YCoord, ILint ZCoord);
|
||||
ILAPI void ILAPIENTRY ilPopAttrib(void);
|
||||
ILAPI void ILAPIENTRY ilPushAttrib(ILuint Bits);
|
||||
ILAPI void ILAPIENTRY ilRegisterFormat(ILenum Format);
|
||||
ILAPI ILboolean ILAPIENTRY ilRegisterLoad(ILconst_string Ext, IL_LOADPROC Load);
|
||||
ILAPI ILboolean ILAPIENTRY ilRegisterMipNum(ILuint Num);
|
||||
ILAPI ILboolean ILAPIENTRY ilRegisterNumFaces(ILuint Num);
|
||||
ILAPI ILboolean ILAPIENTRY ilRegisterNumImages(ILuint Num);
|
||||
ILAPI void ILAPIENTRY ilRegisterOrigin(ILenum Origin);
|
||||
ILAPI void ILAPIENTRY ilRegisterPal(void *Pal, ILuint Size, ILenum Type);
|
||||
ILAPI ILboolean ILAPIENTRY ilRegisterSave(ILconst_string Ext, IL_SAVEPROC Save);
|
||||
ILAPI void ILAPIENTRY ilRegisterType(ILenum Type);
|
||||
ILAPI ILboolean ILAPIENTRY ilRemoveLoad(ILconst_string Ext);
|
||||
ILAPI ILboolean ILAPIENTRY ilRemoveSave(ILconst_string Ext);
|
||||
ILAPI void ILAPIENTRY ilResetMemory(void); // Deprecated
|
||||
ILAPI void ILAPIENTRY ilResetRead(void);
|
||||
ILAPI void ILAPIENTRY ilResetWrite(void);
|
||||
ILAPI ILboolean ILAPIENTRY ilSave(ILenum Type, ILconst_string FileName);
|
||||
ILAPI ILuint ILAPIENTRY ilSaveF(ILenum Type, ILHANDLE File);
|
||||
ILAPI ILboolean ILAPIENTRY ilSaveImage(ILconst_string FileName);
|
||||
ILAPI ILuint ILAPIENTRY ilSaveL(ILenum Type, void *Lump, ILuint Size);
|
||||
ILAPI ILboolean ILAPIENTRY ilSavePal(ILconst_string FileName);
|
||||
ILAPI ILboolean ILAPIENTRY ilSetAlpha(ILdouble AlphaValue);
|
||||
ILAPI ILboolean ILAPIENTRY ilSetData(void *Data);
|
||||
ILAPI ILboolean ILAPIENTRY ilSetDuration(ILuint Duration);
|
||||
ILAPI void ILAPIENTRY ilSetInteger(ILenum Mode, ILint Param);
|
||||
ILAPI void ILAPIENTRY ilSetMemory(mAlloc, mFree);
|
||||
ILAPI void ILAPIENTRY ilSetPixels(ILint XOff, ILint YOff, ILint ZOff, ILuint Width, ILuint Height, ILuint Depth, ILenum Format, ILenum Type, void *Data);
|
||||
ILAPI void ILAPIENTRY ilSetRead(fOpenRProc, fCloseRProc, fEofProc, fGetcProc, fReadProc, fSeekRProc, fTellRProc);
|
||||
ILAPI void ILAPIENTRY ilSetString(ILenum Mode, const char *String);
|
||||
ILAPI void ILAPIENTRY ilSetWrite(fOpenWProc, fCloseWProc, fPutcProc, fSeekWProc, fTellWProc, fWriteProc);
|
||||
ILAPI void ILAPIENTRY ilShutDown(void);
|
||||
ILAPI ILboolean ILAPIENTRY ilSurfaceToDxtcData(ILenum Format);
|
||||
ILAPI ILboolean ILAPIENTRY ilTexImage(ILuint Width, ILuint Height, ILuint Depth, ILubyte NumChannels, ILenum Format, ILenum Type, void *Data);
|
||||
ILAPI ILboolean ILAPIENTRY ilTexImageDxtc(ILint w, ILint h, ILint d, ILenum DxtFormat, const ILubyte* data);
|
||||
ILAPI ILenum ILAPIENTRY ilTypeFromExt(ILconst_string FileName);
|
||||
ILAPI ILboolean ILAPIENTRY ilTypeFunc(ILenum Mode);
|
||||
ILAPI ILboolean ILAPIENTRY ilLoadData(ILconst_string FileName, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp);
|
||||
ILAPI ILboolean ILAPIENTRY ilLoadDataF(ILHANDLE File, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp);
|
||||
ILAPI ILboolean ILAPIENTRY ilLoadDataL(void *Lump, ILuint Size, ILuint Width, ILuint Height, ILuint Depth, ILubyte Bpp);
|
||||
ILAPI ILboolean ILAPIENTRY ilSaveData(ILconst_string FileName);
|
||||
|
||||
// For all those weirdos that spell "colour" without the 'u'.
|
||||
#define ilClearColor ilClearColour
|
||||
#define ilKeyColor ilKeyColour
|
||||
|
||||
#define imemclear(x,y) memset(x,0,y);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __IL_H__
|
||||
#endif // __il_h__
|
||||
@@ -0,0 +1,205 @@
|
||||
#ifndef WRAPPER_H
|
||||
#define WRAPPER_H
|
||||
|
||||
/*#include <il/il.h>
|
||||
#include <il/ilu.h>*/
|
||||
#include <IL/ilut.h> // Probably only have to #include this one
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#ifndef _IL_WRAP_BUILD_LIB
|
||||
#pragma comment(lib, "il_wrap.lib")
|
||||
#endif
|
||||
#endif
|
||||
|
||||
class ilImage
|
||||
{
|
||||
public:
|
||||
ilImage();
|
||||
ilImage(char *);
|
||||
ilImage(const ilImage &);
|
||||
virtual ~ilImage();
|
||||
|
||||
ILboolean Load(char *);
|
||||
ILboolean Load(char *, ILenum);
|
||||
ILboolean Save(char *);
|
||||
ILboolean Save(char *, ILenum);
|
||||
|
||||
|
||||
// ImageLib functions
|
||||
ILboolean ActiveImage(ILuint);
|
||||
ILboolean ActiveLayer(ILuint);
|
||||
ILboolean ActiveMipmap(ILuint);
|
||||
ILboolean Clear(void);
|
||||
ILvoid ClearColour(ILclampf, ILclampf, ILclampf, ILclampf);
|
||||
ILboolean Convert(ILenum);
|
||||
ILboolean Copy(ILuint);
|
||||
ILboolean Default(void);
|
||||
ILboolean Flip(void);
|
||||
ILboolean SwapColours(void);
|
||||
ILboolean Resize(ILuint, ILuint, ILuint);
|
||||
ILboolean TexImage(ILuint, ILuint, ILuint, ILubyte, ILenum, ILenum, ILvoid*);
|
||||
|
||||
|
||||
// Image handling
|
||||
ILvoid Bind(void) const;
|
||||
ILvoid Bind(ILuint);
|
||||
ILvoid Close(void) { this->Delete(); }
|
||||
ILvoid Delete(void);
|
||||
ILvoid iGenBind();
|
||||
ILenum PaletteAlphaIndex();
|
||||
|
||||
// Image characteristics
|
||||
ILuint Width(void);
|
||||
ILuint Height(void);
|
||||
ILuint Depth(void);
|
||||
ILubyte Bpp(void);
|
||||
ILubyte Bitpp(void);
|
||||
ILenum PaletteType(void);
|
||||
ILenum Format(void);
|
||||
ILenum Type(void);
|
||||
ILuint NumImages(void);
|
||||
ILuint NumMipmaps(void);
|
||||
ILuint GetId(void) const;
|
||||
ILenum GetOrigin(void);
|
||||
ILubyte *GetData(void);
|
||||
ILubyte *GetPalette(void);
|
||||
|
||||
|
||||
// Rendering
|
||||
ILuint BindImage(void);
|
||||
ILuint BindImage(ILenum);
|
||||
|
||||
|
||||
// Operators
|
||||
ilImage& operator = (ILuint);
|
||||
ilImage& operator = (const ilImage &);
|
||||
|
||||
|
||||
protected:
|
||||
ILuint Id;
|
||||
|
||||
private:
|
||||
ILvoid iStartUp();
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
class ilFilters
|
||||
{
|
||||
public:
|
||||
static ILboolean Alienify(ilImage &);
|
||||
static ILboolean BlurAvg(ilImage &, ILuint Iter);
|
||||
static ILboolean BlurGaussian(ilImage &, ILuint Iter);
|
||||
static ILboolean Contrast(ilImage &, ILfloat Contrast);
|
||||
static ILboolean EdgeDetectE(ilImage &);
|
||||
static ILboolean EdgeDetectP(ilImage &);
|
||||
static ILboolean EdgeDetectS(ilImage &);
|
||||
static ILboolean Emboss(ilImage &);
|
||||
static ILboolean Gamma(ilImage &, ILfloat Gamma);
|
||||
static ILboolean Negative(ilImage &);
|
||||
static ILboolean Noisify(ilImage &, ILubyte Factor);
|
||||
static ILboolean Pixelize(ilImage &, ILuint PixSize);
|
||||
static ILboolean Saturate(ilImage &, ILfloat Saturation);
|
||||
static ILboolean Saturate(ilImage &, ILfloat r, ILfloat g, ILfloat b, ILfloat Saturation);
|
||||
static ILboolean ScaleColours(ilImage &, ILfloat r, ILfloat g, ILfloat b);
|
||||
static ILboolean Sharpen(ilImage &, ILfloat Factor, ILuint Iter);
|
||||
};
|
||||
|
||||
|
||||
#ifdef ILUT_USE_OPENGL
|
||||
class ilOgl
|
||||
{
|
||||
public:
|
||||
static ILvoid Init(void);
|
||||
static GLuint BindTex(ilImage &);
|
||||
static ILboolean Upload(ilImage &, ILuint);
|
||||
static GLuint Mipmap(ilImage &);
|
||||
static ILboolean Screen(void);
|
||||
static ILboolean Screenie(void);
|
||||
};
|
||||
#endif//ILUT_USE_OPENGL
|
||||
|
||||
|
||||
#ifdef ILUT_USE_ALLEGRO
|
||||
class ilAlleg
|
||||
{
|
||||
public:
|
||||
static ILvoid Init(void);
|
||||
static BITMAP *Convert(ilImage &);
|
||||
};
|
||||
#endif//ILUT_USE_ALLEGRO
|
||||
|
||||
|
||||
#ifdef ILUT_USE_WIN32
|
||||
class ilWin32
|
||||
{
|
||||
public:
|
||||
static ILvoid Init(void);
|
||||
static HBITMAP Convert(ilImage &);
|
||||
static ILboolean GetClipboard(ilImage &);
|
||||
static ILvoid GetInfo(ilImage &, BITMAPINFO *Info);
|
||||
static ILubyte *GetPadData(ilImage &);
|
||||
static HPALETTE GetPal(ilImage &);
|
||||
static ILboolean GetResource(ilImage &, HINSTANCE hInst, ILint ID, char *ResourceType);
|
||||
static ILboolean GetResource(ilImage &, HINSTANCE hInst, ILint ID, char *ResourceType, ILenum Type);
|
||||
static ILboolean SetClipboard(ilImage &);
|
||||
};
|
||||
#endif//ILUT_USE_WIN32
|
||||
|
||||
|
||||
class ilValidate
|
||||
{
|
||||
public:
|
||||
static ILboolean Valid(ILenum, char *);
|
||||
static ILboolean Valid(ILenum, FILE *);
|
||||
static ILboolean Valid(ILenum, ILvoid *, ILuint);
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
|
||||
class ilState
|
||||
{
|
||||
public:
|
||||
static ILboolean Disable(ILenum);
|
||||
static ILboolean Enable(ILenum);
|
||||
static ILvoid Get(ILenum, ILboolean &);
|
||||
static ILvoid Get(ILenum, ILint &);
|
||||
static ILboolean GetBool(ILenum);
|
||||
static ILint GetInt(ILenum);
|
||||
static const char *GetString(ILenum);
|
||||
static ILboolean IsDisabled(ILenum);
|
||||
static ILboolean IsEnabled(ILenum);
|
||||
static ILboolean Origin(ILenum);
|
||||
static ILvoid Pop(void);
|
||||
static ILvoid Push(ILuint);
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
|
||||
class ilError
|
||||
{
|
||||
public:
|
||||
static ILvoid Check(ILvoid (*Callback)(const char*));
|
||||
static ILvoid Check(ILvoid (*Callback)(ILenum));
|
||||
static ILenum Get(void);
|
||||
static const char *String(void);
|
||||
static const char *String(ILenum);
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
|
||||
};
|
||||
|
||||
|
||||
#endif//WRAPPER_H
|
||||
@@ -0,0 +1,195 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Sources
|
||||
// Copyright (C) 2000-2009 by Denton Woods
|
||||
// Last modified: 03/07/2009
|
||||
//
|
||||
// Filename: IL/ilu.h
|
||||
//
|
||||
// Description: The main include file for ILU
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Doxygen comment
|
||||
/*! \file ilu.h
|
||||
The main include file for ILU
|
||||
*/
|
||||
|
||||
#ifndef __ilu_h_
|
||||
#ifndef __ILU_H__
|
||||
|
||||
#define __ilu_h_
|
||||
#define __ILU_H__
|
||||
|
||||
#include <DevIL/il.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef _WIN32
|
||||
#if (defined(IL_USE_PRAGMA_LIBS)) && (!defined(_IL_BUILD_LIBRARY))
|
||||
#if defined(_MSC_VER) || defined(__BORLANDC__)
|
||||
#pragma comment(lib, "ILU.lib")
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#define ILU_VERSION_1_7_8 1
|
||||
#define ILU_VERSION 178
|
||||
|
||||
|
||||
#define ILU_FILTER 0x2600
|
||||
#define ILU_NEAREST 0x2601
|
||||
#define ILU_LINEAR 0x2602
|
||||
#define ILU_BILINEAR 0x2603
|
||||
#define ILU_SCALE_BOX 0x2604
|
||||
#define ILU_SCALE_TRIANGLE 0x2605
|
||||
#define ILU_SCALE_BELL 0x2606
|
||||
#define ILU_SCALE_BSPLINE 0x2607
|
||||
#define ILU_SCALE_LANCZOS3 0x2608
|
||||
#define ILU_SCALE_MITCHELL 0x2609
|
||||
|
||||
|
||||
// Error types
|
||||
#define ILU_INVALID_ENUM 0x0501
|
||||
#define ILU_OUT_OF_MEMORY 0x0502
|
||||
#define ILU_INTERNAL_ERROR 0x0504
|
||||
#define ILU_INVALID_VALUE 0x0505
|
||||
#define ILU_ILLEGAL_OPERATION 0x0506
|
||||
#define ILU_INVALID_PARAM 0x0509
|
||||
|
||||
|
||||
// Values
|
||||
#define ILU_PLACEMENT 0x0700
|
||||
#define ILU_LOWER_LEFT 0x0701
|
||||
#define ILU_LOWER_RIGHT 0x0702
|
||||
#define ILU_UPPER_LEFT 0x0703
|
||||
#define ILU_UPPER_RIGHT 0x0704
|
||||
#define ILU_CENTER 0x0705
|
||||
#define ILU_CONVOLUTION_MATRIX 0x0710
|
||||
|
||||
#define ILU_VERSION_NUM IL_VERSION_NUM
|
||||
#define ILU_VENDOR IL_VENDOR
|
||||
|
||||
|
||||
// Languages
|
||||
#define ILU_ENGLISH 0x0800
|
||||
#define ILU_ARABIC 0x0801
|
||||
#define ILU_DUTCH 0x0802
|
||||
#define ILU_JAPANESE 0x0803
|
||||
#define ILU_SPANISH 0x0804
|
||||
#define ILU_GERMAN 0x0805
|
||||
#define ILU_FRENCH 0x0806
|
||||
|
||||
|
||||
// Filters
|
||||
/*
|
||||
#define ILU_FILTER_BLUR 0x0803
|
||||
#define ILU_FILTER_GAUSSIAN_3x3 0x0804
|
||||
#define ILU_FILTER_GAUSSIAN_5X5 0x0805
|
||||
#define ILU_FILTER_EMBOSS1 0x0807
|
||||
#define ILU_FILTER_EMBOSS2 0x0808
|
||||
#define ILU_FILTER_LAPLACIAN1 0x080A
|
||||
#define ILU_FILTER_LAPLACIAN2 0x080B
|
||||
#define ILU_FILTER_LAPLACIAN3 0x080C
|
||||
#define ILU_FILTER_LAPLACIAN4 0x080D
|
||||
#define ILU_FILTER_SHARPEN1 0x080E
|
||||
#define ILU_FILTER_SHARPEN2 0x080F
|
||||
#define ILU_FILTER_SHARPEN3 0x0810
|
||||
*/
|
||||
|
||||
|
||||
typedef struct ILinfo
|
||||
{
|
||||
ILuint Id; // the image's id
|
||||
ILubyte *Data; // the image's data
|
||||
ILuint Width; // the image's width
|
||||
ILuint Height; // the image's height
|
||||
ILuint Depth; // the image's depth
|
||||
ILubyte Bpp; // bytes per pixel (not bits) of the image
|
||||
ILuint SizeOfData; // the total size of the data (in bytes)
|
||||
ILenum Format; // image format (in IL enum style)
|
||||
ILenum Type; // image type (in IL enum style)
|
||||
ILenum Origin; // origin of the image
|
||||
ILubyte *Palette; // the image's palette
|
||||
ILenum PalType; // palette type
|
||||
ILuint PalSize; // palette size
|
||||
ILenum CubeFlags; // flags for what cube map sides are present
|
||||
ILuint NumNext; // number of images following
|
||||
ILuint NumMips; // number of mipmaps
|
||||
ILuint NumLayers; // number of layers
|
||||
} ILinfo;
|
||||
|
||||
|
||||
typedef struct ILpointf {
|
||||
ILfloat x;
|
||||
ILfloat y;
|
||||
} ILpointf;
|
||||
|
||||
typedef struct ILpointi {
|
||||
ILint x;
|
||||
ILint y;
|
||||
} ILpointi;
|
||||
|
||||
ILAPI ILboolean ILAPIENTRY iluAlienify(void);
|
||||
ILAPI ILboolean ILAPIENTRY iluBlurAvg(ILuint Iter);
|
||||
ILAPI ILboolean ILAPIENTRY iluBlurGaussian(ILuint Iter);
|
||||
ILAPI ILboolean ILAPIENTRY iluBuildMipmaps(void);
|
||||
ILAPI ILuint ILAPIENTRY iluColoursUsed(void);
|
||||
ILAPI ILboolean ILAPIENTRY iluCompareImage(ILuint Comp);
|
||||
ILAPI ILboolean ILAPIENTRY iluContrast(ILfloat Contrast);
|
||||
ILAPI ILboolean ILAPIENTRY iluCrop(ILuint XOff, ILuint YOff, ILuint ZOff, ILuint Width, ILuint Height, ILuint Depth);
|
||||
ILAPI void ILAPIENTRY iluDeleteImage(ILuint Id); // Deprecated
|
||||
ILAPI ILboolean ILAPIENTRY iluEdgeDetectE(void);
|
||||
ILAPI ILboolean ILAPIENTRY iluEdgeDetectP(void);
|
||||
ILAPI ILboolean ILAPIENTRY iluEdgeDetectS(void);
|
||||
ILAPI ILboolean ILAPIENTRY iluEmboss(void);
|
||||
ILAPI ILboolean ILAPIENTRY iluEnlargeCanvas(ILuint Width, ILuint Height, ILuint Depth);
|
||||
ILAPI ILboolean ILAPIENTRY iluEnlargeImage(ILfloat XDim, ILfloat YDim, ILfloat ZDim);
|
||||
ILAPI ILboolean ILAPIENTRY iluEqualize(void);
|
||||
ILAPI ILconst_string ILAPIENTRY iluErrorString(ILenum Error);
|
||||
ILAPI ILboolean ILAPIENTRY iluConvolution(ILint *matrix, ILint scale, ILint bias);
|
||||
ILAPI ILboolean ILAPIENTRY iluFlipImage(void);
|
||||
ILAPI ILboolean ILAPIENTRY iluGammaCorrect(ILfloat Gamma);
|
||||
ILAPI ILuint ILAPIENTRY iluGenImage(void); // Deprecated
|
||||
ILAPI void ILAPIENTRY iluGetImageInfo(ILinfo *Info);
|
||||
ILAPI ILint ILAPIENTRY iluGetInteger(ILenum Mode);
|
||||
ILAPI void ILAPIENTRY iluGetIntegerv(ILenum Mode, ILint *Param);
|
||||
ILAPI ILstring ILAPIENTRY iluGetString(ILenum StringName);
|
||||
ILAPI void ILAPIENTRY iluImageParameter(ILenum PName, ILenum Param);
|
||||
ILAPI void ILAPIENTRY iluInit(void);
|
||||
ILAPI ILboolean ILAPIENTRY iluInvertAlpha(void);
|
||||
ILAPI ILuint ILAPIENTRY iluLoadImage(ILconst_string FileName);
|
||||
ILAPI ILboolean ILAPIENTRY iluMirror(void);
|
||||
ILAPI ILboolean ILAPIENTRY iluNegative(void);
|
||||
ILAPI ILboolean ILAPIENTRY iluNoisify(ILclampf Tolerance);
|
||||
ILAPI ILboolean ILAPIENTRY iluPixelize(ILuint PixSize);
|
||||
ILAPI void ILAPIENTRY iluRegionfv(ILpointf *Points, ILuint n);
|
||||
ILAPI void ILAPIENTRY iluRegioniv(ILpointi *Points, ILuint n);
|
||||
ILAPI ILboolean ILAPIENTRY iluReplaceColour(ILubyte Red, ILubyte Green, ILubyte Blue, ILfloat Tolerance);
|
||||
ILAPI ILboolean ILAPIENTRY iluRotate(ILfloat Angle);
|
||||
ILAPI ILboolean ILAPIENTRY iluRotate3D(ILfloat x, ILfloat y, ILfloat z, ILfloat Angle);
|
||||
ILAPI ILboolean ILAPIENTRY iluSaturate1f(ILfloat Saturation);
|
||||
ILAPI ILboolean ILAPIENTRY iluSaturate4f(ILfloat r, ILfloat g, ILfloat b, ILfloat Saturation);
|
||||
ILAPI ILboolean ILAPIENTRY iluScale(ILuint Width, ILuint Height, ILuint Depth);
|
||||
ILAPI ILboolean ILAPIENTRY iluScaleAlpha(ILfloat scale);
|
||||
ILAPI ILboolean ILAPIENTRY iluScaleColours(ILfloat r, ILfloat g, ILfloat b);
|
||||
ILAPI ILboolean ILAPIENTRY iluSetLanguage(ILenum Language);
|
||||
ILAPI ILboolean ILAPIENTRY iluSharpen(ILfloat Factor, ILuint Iter);
|
||||
ILAPI ILboolean ILAPIENTRY iluSwapColours(void);
|
||||
ILAPI ILboolean ILAPIENTRY iluWave(ILfloat Angle);
|
||||
|
||||
#define iluColorsUsed iluColoursUsed
|
||||
#define iluSwapColors iluSwapColours
|
||||
#define iluReplaceColor iluReplaceColour
|
||||
#define iluScaleColor iluScaleColour
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __ILU_H__
|
||||
#endif // __ilu_h_
|
||||
@@ -0,0 +1,25 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Sources
|
||||
// Copyright (C) 2000-2002 by Denton Woods
|
||||
// Last modified: 07/09/2002 <--Y2K Compliant! =]
|
||||
//
|
||||
// Filename: src-ILU/src/ilu_region.h
|
||||
//
|
||||
// Description: Creates an image region.
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifndef ILU_REGION_H
|
||||
#define ILU_REGION_H
|
||||
|
||||
typedef struct Edge
|
||||
{
|
||||
ILint yUpper;
|
||||
ILfloat xIntersect, dxPerScan;
|
||||
struct Edge *next;
|
||||
} Edge;
|
||||
|
||||
|
||||
#endif//ILU_REGION_H
|
||||
|
||||
@@ -0,0 +1,390 @@
|
||||
//-----------------------------------------------------------------------------
|
||||
//
|
||||
// ImageLib Utility Toolkit Sources
|
||||
// Copyright (C) 2000-2009 by Denton Woods
|
||||
// Last modified: 03/07/2009
|
||||
//
|
||||
// Filename: IL/ilut.h
|
||||
//
|
||||
// Description: The main include file for ILUT
|
||||
//
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
// Doxygen comment
|
||||
/*! \file ilut.h
|
||||
The main include file for ILUT
|
||||
*/
|
||||
|
||||
#ifndef __ilut_h_
|
||||
#ifndef __ILUT_H__
|
||||
|
||||
#define __ilut_h_
|
||||
#define __ILUT_H__
|
||||
|
||||
#include <IL/il.h>
|
||||
#include <IL/ilu.h>
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Defines
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#define ILUT_VERSION_1_7_8 1
|
||||
#define ILUT_VERSION 178
|
||||
|
||||
|
||||
// Attribute Bits
|
||||
#define ILUT_OPENGL_BIT 0x00000001
|
||||
#define ILUT_D3D_BIT 0x00000002
|
||||
#define ILUT_ALL_ATTRIB_BITS 0x000FFFFF
|
||||
|
||||
|
||||
// Error Types
|
||||
#define ILUT_INVALID_ENUM 0x0501
|
||||
#define ILUT_OUT_OF_MEMORY 0x0502
|
||||
#define ILUT_INVALID_VALUE 0x0505
|
||||
#define ILUT_ILLEGAL_OPERATION 0x0506
|
||||
#define ILUT_INVALID_PARAM 0x0509
|
||||
#define ILUT_COULD_NOT_OPEN_FILE 0x050A
|
||||
#define ILUT_STACK_OVERFLOW 0x050E
|
||||
#define ILUT_STACK_UNDERFLOW 0x050F
|
||||
#define ILUT_BAD_DIMENSIONS 0x0511
|
||||
#define ILUT_NOT_SUPPORTED 0x0550
|
||||
|
||||
|
||||
// State Definitions
|
||||
#define ILUT_PALETTE_MODE 0x0600
|
||||
#define ILUT_OPENGL_CONV 0x0610
|
||||
#define ILUT_D3D_MIPLEVELS 0x0620
|
||||
#define ILUT_MAXTEX_WIDTH 0x0630
|
||||
#define ILUT_MAXTEX_HEIGHT 0x0631
|
||||
#define ILUT_MAXTEX_DEPTH 0x0632
|
||||
#define ILUT_GL_USE_S3TC 0x0634
|
||||
#define ILUT_D3D_USE_DXTC 0x0634
|
||||
#define ILUT_GL_GEN_S3TC 0x0635
|
||||
#define ILUT_D3D_GEN_DXTC 0x0635
|
||||
#define ILUT_S3TC_FORMAT 0x0705
|
||||
#define ILUT_DXTC_FORMAT 0x0705
|
||||
#define ILUT_D3D_POOL 0x0706
|
||||
#define ILUT_D3D_ALPHA_KEY_COLOR 0x0707
|
||||
#define ILUT_D3D_ALPHA_KEY_COLOUR 0x0707
|
||||
#define ILUT_FORCE_INTEGER_FORMAT 0x0636
|
||||
|
||||
//This new state does automatic texture target detection
|
||||
//if enabled. Currently, only cubemap detection is supported.
|
||||
//if the current image is no cubemap, the 2d texture is chosen.
|
||||
#define ILUT_GL_AUTODETECT_TEXTURE_TARGET 0x0807
|
||||
|
||||
|
||||
// Values
|
||||
#define ILUT_VERSION_NUM IL_VERSION_NUM
|
||||
#define ILUT_VENDOR IL_VENDOR
|
||||
|
||||
// The different rendering api's...more to be added later?
|
||||
#define ILUT_OPENGL 0
|
||||
#define ILUT_ALLEGRO 1
|
||||
#define ILUT_WIN32 2
|
||||
#define ILUT_DIRECT3D8 3
|
||||
#define ILUT_DIRECT3D9 4
|
||||
#define ILUT_X11 5
|
||||
#define ILUT_DIRECT3D10 6
|
||||
|
||||
/*
|
||||
// Includes specific config
|
||||
#ifdef DJGPP
|
||||
#define ILUT_USE_ALLEGRO
|
||||
#elif _WIN32_WCE
|
||||
#define ILUT_USE_WIN32
|
||||
#elif _WIN32
|
||||
//#ifdef __GNUC__ //__CYGWIN32__ (Cygwin seems to not define this with DevIL builds)
|
||||
#define ILUT_USE_WIN32
|
||||
#include "IL/config.h"
|
||||
|
||||
// Temporary fix for the SDL main() linker bug.
|
||||
//#ifdef ILUT_USE_SDL
|
||||
//#undef ILUT_USE_SDL
|
||||
//#endif//ILUT_USE_SDL
|
||||
|
||||
//#else
|
||||
// #define ILUT_USE_WIN32
|
||||
// #define ILUT_USE_OPENGL
|
||||
// #define ILUT_USE_SDL
|
||||
// #define ILUT_USE_DIRECTX8
|
||||
//#endif
|
||||
#elif BEOS // Don't know the #define
|
||||
#define ILUT_USE_BEOS
|
||||
#define ILUT_USE_OPENGL
|
||||
#elif MACOSX
|
||||
#define ILUT_USE_OPENGL
|
||||
#else
|
||||
|
||||
// We are surely using a *nix so the configure script
|
||||
// may have written the configured config.h header
|
||||
#include "IL/config.h"
|
||||
#endif
|
||||
*/
|
||||
|
||||
#if (defined(_WIN32) || defined(_WIN64))
|
||||
#if (defined(IL_USE_PRAGMA_LIBS)) && (!defined(_IL_BUILD_LIBRARY))
|
||||
#if defined(_MSC_VER) || defined(__BORLANDC__)
|
||||
#pragma comment(lib, "ILUT.lib")
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#include <IL/ilut_config.h>
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
//this should remain private and hidden
|
||||
//#include "IL/config.h"
|
||||
|
||||
//////////////
|
||||
// OpenGL
|
||||
//////////////
|
||||
|
||||
#ifdef ILUT_USE_OPENGL
|
||||
#if defined(_MSC_VER) || defined(_WIN32)
|
||||
//#define WIN32_LEAN_AND_MEAN
|
||||
#include <windows.h>
|
||||
#endif//_MSC_VER
|
||||
|
||||
#ifdef __APPLE__
|
||||
#include <OpenGL/gl.h>
|
||||
#include <OpenGL/glu.h>
|
||||
#else
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glu.h>
|
||||
#endif//__APPLE__
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef ILUT_USE_WIN32
|
||||
//#define WIN32_LEAN_AND_MEAN
|
||||
#ifdef _DEBUG
|
||||
#define _CRTDBG_MAP_ALLOC
|
||||
#include <stdlib.h>
|
||||
#ifndef _WIN32_WCE
|
||||
#include <crtdbg.h>
|
||||
#endif
|
||||
#endif
|
||||
#include <windows.h>
|
||||
#endif
|
||||
|
||||
|
||||
//
|
||||
// If we can avoid including these in all cases thing tend to break less
|
||||
// and we can keep all of them defined as available
|
||||
//
|
||||
// Kriss
|
||||
//
|
||||
|
||||
// ImageLib Utility Toolkit's Allegro Functions
|
||||
#ifdef ILUT_USE_ALLEGRO
|
||||
// #include <allegro.h>
|
||||
#endif//ILUT_USE_ALLEGRO
|
||||
|
||||
#ifdef ILUT_USE_SDL
|
||||
// #include <SDL.h>
|
||||
#endif
|
||||
|
||||
#ifdef ILUT_USE_DIRECTX8
|
||||
#include <d3d8.h>
|
||||
#endif//ILUT_USE_DIRECTX9
|
||||
|
||||
#ifdef ILUT_USE_DIRECTX9
|
||||
#include <d3d9.h>
|
||||
#endif//ILUT_USE_DIRECTX9
|
||||
|
||||
#ifdef ILUT_USE_DIRECTX10
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4201) // Disables 'nonstandard extension used : nameless struct/union' warning
|
||||
#include <rpcsal.h>
|
||||
#include <sal.h>
|
||||
#include <d3d10.h>
|
||||
#pragma warning(pop)
|
||||
#endif//ILUT_USE_DIRECTX10
|
||||
|
||||
#ifdef ILUT_USE_X11
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#ifdef ILUT_USE_XSHM
|
||||
#include <sys/ipc.h>
|
||||
#include <sys/shm.h>
|
||||
#include <X11/extensions/XShm.h>
|
||||
#endif//ILUT_USE_XSHM
|
||||
#endif//ILUT_USE_X11
|
||||
|
||||
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// Functions
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// ImageLib Utility Toolkit Functions
|
||||
ILAPI ILboolean ILAPIENTRY ilutDisable(ILenum Mode);
|
||||
ILAPI ILboolean ILAPIENTRY ilutEnable(ILenum Mode);
|
||||
ILAPI ILboolean ILAPIENTRY ilutGetBoolean(ILenum Mode);
|
||||
ILAPI void ILAPIENTRY ilutGetBooleanv(ILenum Mode, ILboolean *Param);
|
||||
ILAPI ILint ILAPIENTRY ilutGetInteger(ILenum Mode);
|
||||
ILAPI void ILAPIENTRY ilutGetIntegerv(ILenum Mode, ILint *Param);
|
||||
ILAPI ILstring ILAPIENTRY ilutGetString(ILenum StringName);
|
||||
ILAPI void ILAPIENTRY ilutInit(void);
|
||||
ILAPI ILboolean ILAPIENTRY ilutIsDisabled(ILenum Mode);
|
||||
ILAPI ILboolean ILAPIENTRY ilutIsEnabled(ILenum Mode);
|
||||
ILAPI void ILAPIENTRY ilutPopAttrib(void);
|
||||
ILAPI void ILAPIENTRY ilutPushAttrib(ILuint Bits);
|
||||
ILAPI void ILAPIENTRY ilutSetInteger(ILenum Mode, ILint Param);
|
||||
|
||||
ILAPI ILboolean ILAPIENTRY ilutRenderer(ILenum Renderer);
|
||||
|
||||
|
||||
// ImageLib Utility Toolkit's OpenGL Functions
|
||||
#ifdef ILUT_USE_OPENGL
|
||||
ILAPI GLuint ILAPIENTRY ilutGLBindTexImage();
|
||||
ILAPI GLuint ILAPIENTRY ilutGLBindMipmaps(void);
|
||||
ILAPI ILboolean ILAPIENTRY ilutGLBuildMipmaps(void);
|
||||
ILAPI GLuint ILAPIENTRY ilutGLLoadImage(ILstring FileName);
|
||||
ILAPI ILboolean ILAPIENTRY ilutGLScreen(void);
|
||||
ILAPI ILboolean ILAPIENTRY ilutGLScreenie(void);
|
||||
ILAPI ILboolean ILAPIENTRY ilutGLSaveImage(ILstring FileName, GLuint TexID);
|
||||
ILAPI ILboolean ILAPIENTRY ilutGLSubTex2D(GLuint TexID, ILuint XOff, ILuint YOff);
|
||||
ILAPI ILboolean ILAPIENTRY ilutGLSubTex3D(GLuint TexID, ILuint XOff, ILuint YOff, ILuint ZOff);
|
||||
ILAPI ILboolean ILAPIENTRY ilutGLSetTex2D(GLuint TexID);
|
||||
ILAPI ILboolean ILAPIENTRY ilutGLSetTex3D(GLuint TexID);
|
||||
ILAPI ILboolean ILAPIENTRY ilutGLTexImage(GLuint Level);
|
||||
ILAPI ILboolean ILAPIENTRY ilutGLSubTex(GLuint TexID, ILuint XOff, ILuint YOff);
|
||||
|
||||
ILAPI ILboolean ILAPIENTRY ilutGLSetTex(GLuint TexID); // Deprecated - use ilutGLSetTex2D.
|
||||
ILAPI ILboolean ILAPIENTRY ilutGLSubTex(GLuint TexID, ILuint XOff, ILuint YOff); // Use ilutGLSubTex2D.
|
||||
#endif//ILUT_USE_OPENGL
|
||||
|
||||
|
||||
// ImageLib Utility Toolkit's Allegro Functions
|
||||
#ifdef ILUT_USE_ALLEGRO
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#include <allegro.h>
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
ILAPI BITMAP* ILAPIENTRY ilutAllegLoadImage(ILstring FileName);
|
||||
ILAPI BITMAP* ILAPIENTRY ilutConvertToAlleg(PALETTE Pal);
|
||||
#endif//ILUT_USE_ALLEGRO
|
||||
|
||||
|
||||
// ImageLib Utility Toolkit's SDL Functions
|
||||
#ifdef ILUT_USE_SDL
|
||||
ILAPI struct SDL_Surface* ILAPIENTRY ilutConvertToSDLSurface(unsigned int flags);
|
||||
ILAPI struct SDL_Surface* ILAPIENTRY ilutSDLSurfaceLoadImage(ILstring FileName);
|
||||
ILAPI ILboolean ILAPIENTRY ilutSDLSurfaceFromBitmap(struct SDL_Surface *Bitmap);
|
||||
#endif//ILUT_USE_SDL
|
||||
|
||||
|
||||
// ImageLib Utility Toolkit's BeOS Functions
|
||||
#ifdef ILUT_USE_BEOS
|
||||
ILAPI BBitmap ILAPIENTRY ilutConvertToBBitmap(void);
|
||||
#endif//ILUT_USE_BEOS
|
||||
|
||||
|
||||
// ImageLib Utility Toolkit's Win32 GDI Functions
|
||||
#ifdef ILUT_USE_WIN32
|
||||
ILAPI HBITMAP ILAPIENTRY ilutConvertToHBitmap(HDC hDC);
|
||||
ILAPI HBITMAP ILAPIENTRY ilutConvertSliceToHBitmap(HDC hDC, ILuint slice);
|
||||
ILAPI void ILAPIENTRY ilutFreePaddedData(ILubyte *Data);
|
||||
ILAPI void ILAPIENTRY ilutGetBmpInfo(BITMAPINFO *Info);
|
||||
ILAPI HPALETTE ILAPIENTRY ilutGetHPal(void);
|
||||
ILAPI ILubyte* ILAPIENTRY ilutGetPaddedData(void);
|
||||
ILAPI ILboolean ILAPIENTRY ilutGetWinClipboard(void);
|
||||
ILAPI ILboolean ILAPIENTRY ilutLoadResource(HINSTANCE hInst, ILint ID, ILstring ResourceType, ILenum Type);
|
||||
ILAPI ILboolean ILAPIENTRY ilutSetHBitmap(HBITMAP Bitmap);
|
||||
ILAPI ILboolean ILAPIENTRY ilutSetHPal(HPALETTE Pal);
|
||||
ILAPI ILboolean ILAPIENTRY ilutSetWinClipboard(void);
|
||||
ILAPI HBITMAP ILAPIENTRY ilutWinLoadImage(ILstring FileName, HDC hDC);
|
||||
ILAPI ILboolean ILAPIENTRY ilutWinLoadUrl(ILstring Url);
|
||||
ILAPI ILboolean ILAPIENTRY ilutWinPrint(ILuint XPos, ILuint YPos, ILuint Width, ILuint Height, HDC hDC);
|
||||
ILAPI ILboolean ILAPIENTRY ilutWinSaveImage(ILstring FileName, HBITMAP Bitmap);
|
||||
#endif//ILUT_USE_WIN32
|
||||
|
||||
// ImageLib Utility Toolkit's DirectX 8 Functions
|
||||
#ifdef ILUT_USE_DIRECTX8
|
||||
// ILAPI void ILAPIENTRY ilutD3D8MipFunc(ILuint NumLevels);
|
||||
ILAPI struct IDirect3DTexture8* ILAPIENTRY ilutD3D8Texture(struct IDirect3DDevice8 *Device);
|
||||
ILAPI struct IDirect3DVolumeTexture8* ILAPIENTRY ilutD3D8VolumeTexture(struct IDirect3DDevice8 *Device);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D8TexFromFile(struct IDirect3DDevice8 *Device, char *FileName, struct IDirect3DTexture8 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D8VolTexFromFile(struct IDirect3DDevice8 *Device, char *FileName, struct IDirect3DVolumeTexture8 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D8TexFromFileInMemory(struct IDirect3DDevice8 *Device, void *Lump, ILuint Size, struct IDirect3DTexture8 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D8VolTexFromFileInMemory(struct IDirect3DDevice8 *Device, void *Lump, ILuint Size, struct IDirect3DVolumeTexture8 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D8TexFromFileHandle(struct IDirect3DDevice8 *Device, ILHANDLE File, struct IDirect3DTexture8 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D8VolTexFromFileHandle(struct IDirect3DDevice8 *Device, ILHANDLE File, struct IDirect3DVolumeTexture8 **Texture);
|
||||
// These two are not tested yet.
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D8TexFromResource(struct IDirect3DDevice8 *Device, HMODULE SrcModule, char *SrcResource, struct IDirect3DTexture8 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D8VolTexFromResource(struct IDirect3DDevice8 *Device, HMODULE SrcModule, char *SrcResource, struct IDirect3DVolumeTexture8 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D8LoadSurface(struct IDirect3DDevice8 *Device, struct IDirect3DSurface8 *Surface);
|
||||
#endif//ILUT_USE_DIRECTX8
|
||||
|
||||
#ifdef ILUT_USE_DIRECTX9
|
||||
#pragma warning(push)
|
||||
#pragma warning(disable : 4115) // Disables 'named type definition in parentheses' warning
|
||||
// ILAPI void ILAPIENTRY ilutD3D9MipFunc(ILuint NumLevels);
|
||||
ILAPI struct IDirect3DTexture9* ILAPIENTRY ilutD3D9Texture (struct IDirect3DDevice9* Device);
|
||||
ILAPI struct IDirect3DVolumeTexture9* ILAPIENTRY ilutD3D9VolumeTexture (struct IDirect3DDevice9* Device);
|
||||
ILAPI struct IDirect3DCubeTexture9* ILAPIENTRY ilutD3D9CubeTexture (struct IDirect3DDevice9* Device);
|
||||
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9CubeTexFromFile(struct IDirect3DDevice9 *Device, ILconst_string FileName, struct IDirect3DCubeTexture9 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9CubeTexFromFileInMemory(struct IDirect3DDevice9 *Device, void *Lump, ILuint Size, struct IDirect3DCubeTexture9 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9CubeTexFromFileHandle(struct IDirect3DDevice9 *Device, ILHANDLE File, struct IDirect3DCubeTexture9 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9CubeTexFromResource(struct IDirect3DDevice9 *Device, HMODULE SrcModule, ILconst_string SrcResource, struct IDirect3DCubeTexture9 **Texture);
|
||||
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9TexFromFile(struct IDirect3DDevice9 *Device, ILconst_string FileName, struct IDirect3DTexture9 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9VolTexFromFile(struct IDirect3DDevice9 *Device, ILconst_string FileName, struct IDirect3DVolumeTexture9 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9TexFromFileInMemory(struct IDirect3DDevice9 *Device, void *Lump, ILuint Size, struct IDirect3DTexture9 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9VolTexFromFileInMemory(struct IDirect3DDevice9 *Device, void *Lump, ILuint Size, struct IDirect3DVolumeTexture9 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9TexFromFileHandle(struct IDirect3DDevice9 *Device, ILHANDLE File, struct IDirect3DTexture9 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9VolTexFromFileHandle(struct IDirect3DDevice9 *Device, ILHANDLE File, struct IDirect3DVolumeTexture9 **Texture);
|
||||
|
||||
// These three are not tested yet.
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9TexFromResource(struct IDirect3DDevice9 *Device, HMODULE SrcModule, ILconst_string SrcResource, struct IDirect3DTexture9 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9VolTexFromResource(struct IDirect3DDevice9 *Device, HMODULE SrcModule, ILconst_string SrcResource, struct IDirect3DVolumeTexture9 **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D9LoadSurface(struct IDirect3DDevice9 *Device, struct IDirect3DSurface9 *Surface);
|
||||
#pragma warning(pop)
|
||||
#endif//ILUT_USE_DIRECTX9
|
||||
|
||||
#ifdef ILUT_USE_DIRECTX10
|
||||
ILAPI ID3D10Texture2D* ILAPIENTRY ilutD3D10Texture(ID3D10Device *Device);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D10TexFromFile(ID3D10Device *Device, ILconst_string FileName, ID3D10Texture2D **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D10TexFromFileInMemory(ID3D10Device *Device, void *Lump, ILuint Size, ID3D10Texture2D **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D10TexFromResource(ID3D10Device *Device, HMODULE SrcModule, ILconst_string SrcResource, ID3D10Texture2D **Texture);
|
||||
ILAPI ILboolean ILAPIENTRY ilutD3D10TexFromFileHandle(ID3D10Device *Device, ILHANDLE File, ID3D10Texture2D **Texture);
|
||||
#endif//ILUT_USE_DIRECTX10
|
||||
|
||||
|
||||
|
||||
#ifdef ILUT_USE_X11
|
||||
ILAPI XImage * ILAPIENTRY ilutXCreateImage( Display* );
|
||||
ILAPI Pixmap ILAPIENTRY ilutXCreatePixmap( Display*,Drawable );
|
||||
ILAPI XImage * ILAPIENTRY ilutXLoadImage( Display*,char* );
|
||||
ILAPI Pixmap ILAPIENTRY ilutXLoadPixmap( Display*,Drawable,char* );
|
||||
#ifdef ILUT_USE_XSHM
|
||||
ILAPI XImage * ILAPIENTRY ilutXShmCreateImage( Display*,XShmSegmentInfo* );
|
||||
ILAPI void ILAPIENTRY ilutXShmDestroyImage( Display*,XImage*,XShmSegmentInfo* );
|
||||
ILAPI Pixmap ILAPIENTRY ilutXShmCreatePixmap( Display*,Drawable,XShmSegmentInfo* );
|
||||
ILAPI void ILAPIENTRY ilutXShmFreePixmap( Display*,Pixmap,XShmSegmentInfo* );
|
||||
ILAPI XImage * ILAPIENTRY ilutXShmLoadImage( Display*,char*,XShmSegmentInfo* );
|
||||
ILAPI Pixmap ILAPIENTRY ilutXShmLoadPixmap( Display*,Drawable,char*,XShmSegmentInfo* );
|
||||
#endif//ILUT_USE_XSHM
|
||||
#endif//ILUT_USE_X11
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __ILUT_H__
|
||||
#endif // __ilut_h_
|
||||
@@ -0,0 +1,26 @@
|
||||
#ifndef __ILUT_CONFIG_H__
|
||||
#define __ILUT_CONFIG_H__
|
||||
|
||||
#define IL_USE_PRAGMA_LIBS
|
||||
|
||||
// Supported APIs (ILUT)
|
||||
|
||||
//
|
||||
// sorry just
|
||||
// cant get this one to work under windows
|
||||
// have disabled for the now
|
||||
//
|
||||
// will look at it some more later
|
||||
//
|
||||
// Kriss
|
||||
//
|
||||
#undef ILUT_USE_ALLEGRO
|
||||
|
||||
#undef ILUT_USE_DIRECTX8
|
||||
//#define ILUT_USE_DIRECTX9
|
||||
//#define ILUT_USE_DIRECTX10
|
||||
#define ILUT_USE_OPENGL
|
||||
//#define ILUT_USE_SDL
|
||||
#define ILUT_USE_WIN32
|
||||
|
||||
#endif//__ILUT_CONFIG_H__
|
||||
@@ -0,0 +1,716 @@
|
||||
#ifndef __glut_h__
|
||||
#define __glut_h__
|
||||
|
||||
/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */
|
||||
|
||||
/* This program is freely distributable without licensing fees and is
|
||||
provided without guarantee or warrantee expressed or implied. This
|
||||
program is -not- in the public domain. */
|
||||
|
||||
#if defined(_WIN32)
|
||||
|
||||
/* GLUT 3.7 now tries to avoid including <windows.h>
|
||||
to avoid name space pollution, but Win32's <GL/gl.h>
|
||||
needs APIENTRY and WINGDIAPI defined properly. */
|
||||
# if 0
|
||||
/* This would put tons of macros and crap in our clean name space. */
|
||||
# define WIN32_LEAN_AND_MEAN
|
||||
# include <windows.h>
|
||||
# else
|
||||
/* XXX This is from Win32's <windef.h> */
|
||||
# ifndef APIENTRY
|
||||
# define GLUT_APIENTRY_DEFINED
|
||||
# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) || defined(__BORLANDC__) || defined(__LCC__)
|
||||
# define APIENTRY __stdcall
|
||||
# else
|
||||
# define APIENTRY
|
||||
# endif
|
||||
# endif
|
||||
/* XXX This is from Win32's <winnt.h> */
|
||||
# ifndef CALLBACK
|
||||
# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) || defined(__LCC__)
|
||||
# define CALLBACK __stdcall
|
||||
# else
|
||||
# define CALLBACK
|
||||
# endif
|
||||
# endif
|
||||
/* XXX Hack for lcc compiler. It doesn't support __declspec(dllimport), just __stdcall. */
|
||||
# if defined( __LCC__ )
|
||||
# undef WINGDIAPI
|
||||
# define WINGDIAPI __stdcall
|
||||
# else
|
||||
/* XXX This is from Win32's <wingdi.h> and <winnt.h> */
|
||||
# ifndef WINGDIAPI
|
||||
# define GLUT_WINGDIAPI_DEFINED
|
||||
# define WINGDIAPI __declspec(dllimport)
|
||||
# endif
|
||||
# endif
|
||||
/* XXX This is from Win32's <ctype.h> */
|
||||
# ifndef _WCHAR_T_DEFINED
|
||||
typedef unsigned short wchar_t;
|
||||
# define _WCHAR_T_DEFINED
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* To disable automatic library usage for GLUT, define GLUT_NO_LIB_PRAGMA
|
||||
in your compile preprocessor options. */
|
||||
# if !defined(GLUT_BUILDING_LIB) && !defined(GLUT_NO_LIB_PRAGMA)
|
||||
# pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */
|
||||
/* To enable automatic SGI OpenGL for Windows library usage for GLUT,
|
||||
define GLUT_USE_SGI_OPENGL in your compile preprocessor options. */
|
||||
# ifdef GLUT_USE_SGI_OPENGL
|
||||
# pragma comment (lib, "opengl.lib") /* link with SGI OpenGL for Windows lib */
|
||||
# pragma comment (lib, "glu.lib") /* link with SGI OpenGL Utility lib */
|
||||
# pragma comment (lib, "glut.lib") /* link with Win32 GLUT for SGI OpenGL lib */
|
||||
# else
|
||||
# pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */
|
||||
# pragma comment (lib, "glu32.lib") /* link with Microsoft OpenGL Utility lib */
|
||||
# pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* To disable supression of annoying warnings about floats being promoted
|
||||
to doubles, define GLUT_NO_WARNING_DISABLE in your compile preprocessor
|
||||
options. */
|
||||
# ifndef GLUT_NO_WARNING_DISABLE
|
||||
# pragma warning (disable:4244) /* Disable bogus VC++ 4.2 conversion warnings. */
|
||||
# pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */
|
||||
# endif
|
||||
|
||||
/* Win32 has an annoying issue where there are multiple C run-time
|
||||
libraries (CRTs). If the executable is linked with a different CRT
|
||||
from the GLUT DLL, the GLUT DLL will not share the same CRT static
|
||||
data seen by the executable. In particular, atexit callbacks registered
|
||||
in the executable will not be called if GLUT calls its (different)
|
||||
exit routine). GLUT is typically built with the
|
||||
"/MD" option (the CRT with multithreading DLL support), but the Visual
|
||||
C++ linker default is "/ML" (the single threaded CRT).
|
||||
|
||||
One workaround to this issue is requiring users to always link with
|
||||
the same CRT as GLUT is compiled with. That requires users supply a
|
||||
non-standard option. GLUT 3.7 has its own built-in workaround where
|
||||
the executable's "exit" function pointer is covertly passed to GLUT.
|
||||
GLUT then calls the executable's exit function pointer to ensure that
|
||||
any "atexit" calls registered by the application are called if GLUT
|
||||
needs to exit.
|
||||
|
||||
Note that the __glut*WithExit routines should NEVER be called directly.
|
||||
To avoid the atexit workaround, #define GLUT_DISABLE_ATEXIT_HACK. */
|
||||
|
||||
/* XXX This is from Win32's <process.h> */
|
||||
# if !defined(_MSC_VER) && !defined(__cdecl)
|
||||
/* Define __cdecl for non-Microsoft compilers. */
|
||||
# define __cdecl
|
||||
# define GLUT_DEFINED___CDECL
|
||||
# endif
|
||||
# ifndef _CRTIMP
|
||||
# ifdef _NTSDK
|
||||
/* Definition compatible with NT SDK */
|
||||
# define _CRTIMP
|
||||
# else
|
||||
/* Current definition */
|
||||
# ifdef _DLL
|
||||
# define _CRTIMP __declspec(dllimport)
|
||||
# else
|
||||
# define _CRTIMP
|
||||
# endif
|
||||
# endif
|
||||
# define GLUT_DEFINED__CRTIMP
|
||||
# endif
|
||||
|
||||
/* GLUT API entry point declarations for Win32. */
|
||||
# ifdef GLUT_BUILDING_LIB
|
||||
# define GLUTAPI __declspec(dllexport)
|
||||
# else
|
||||
# ifdef _DLL
|
||||
# define GLUTAPI __declspec(dllimport)
|
||||
# else
|
||||
# define GLUTAPI extern
|
||||
# endif
|
||||
# endif
|
||||
|
||||
/* GLUT callback calling convention for Win32. */
|
||||
# define GLUTCALLBACK __cdecl
|
||||
|
||||
#endif /* _WIN32 */
|
||||
|
||||
#include <GL/gl.h>
|
||||
#include <GL/glu.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
# ifndef GLUT_BUILDING_LIB
|
||||
extern _CRTIMP void __cdecl exit(int);
|
||||
# endif
|
||||
#else
|
||||
/* non-Win32 case. */
|
||||
/* Define APIENTRY and CALLBACK to nothing if we aren't on Win32. */
|
||||
# define APIENTRY
|
||||
# define GLUT_APIENTRY_DEFINED
|
||||
# define CALLBACK
|
||||
/* Define GLUTAPI and GLUTCALLBACK as below if we aren't on Win32. */
|
||||
# define GLUTAPI extern
|
||||
# define GLUTCALLBACK
|
||||
/* Prototype exit for the non-Win32 case (see above). */
|
||||
extern void exit(int);
|
||||
#endif
|
||||
|
||||
/**
|
||||
GLUT API revision history:
|
||||
|
||||
GLUT_API_VERSION is updated to reflect incompatible GLUT
|
||||
API changes (interface changes, semantic changes, deletions,
|
||||
or additions).
|
||||
|
||||
GLUT_API_VERSION=1 First public release of GLUT. 11/29/94
|
||||
|
||||
GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling,
|
||||
extension. Supports new input devices like tablet, dial and button
|
||||
box, and Spaceball. Easy to query OpenGL extensions.
|
||||
|
||||
GLUT_API_VERSION=3 glutMenuStatus added.
|
||||
|
||||
GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer,
|
||||
glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic
|
||||
video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc,
|
||||
glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat,
|
||||
glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!).
|
||||
**/
|
||||
#ifndef GLUT_API_VERSION /* allow this to be overriden */
|
||||
#define GLUT_API_VERSION 3
|
||||
#endif
|
||||
|
||||
/**
|
||||
GLUT implementation revision history:
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT
|
||||
API revisions and implementation revisions (ie, bug fixes).
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of
|
||||
GLUT Xlib-based implementation. 11/29/94
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of
|
||||
GLUT Xlib-based implementation providing GLUT version 2
|
||||
interfaces.
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner
|
||||
and video resize. 1/3/97
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines.
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release.
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling.
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support.
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface.
|
||||
|
||||
GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa <GL/glut.h>
|
||||
**/
|
||||
#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */
|
||||
#define GLUT_XLIB_IMPLEMENTATION 15
|
||||
#endif
|
||||
|
||||
/* Display mode bit masks. */
|
||||
#define GLUT_RGB 0
|
||||
#define GLUT_RGBA GLUT_RGB
|
||||
#define GLUT_INDEX 1
|
||||
#define GLUT_SINGLE 0
|
||||
#define GLUT_DOUBLE 2
|
||||
#define GLUT_ACCUM 4
|
||||
#define GLUT_ALPHA 8
|
||||
#define GLUT_DEPTH 16
|
||||
#define GLUT_STENCIL 32
|
||||
#if (GLUT_API_VERSION >= 2)
|
||||
#define GLUT_MULTISAMPLE 128
|
||||
#define GLUT_STEREO 256
|
||||
#endif
|
||||
#if (GLUT_API_VERSION >= 3)
|
||||
#define GLUT_LUMINANCE 512
|
||||
#endif
|
||||
|
||||
/* Mouse buttons. */
|
||||
#define GLUT_LEFT_BUTTON 0
|
||||
#define GLUT_MIDDLE_BUTTON 1
|
||||
#define GLUT_RIGHT_BUTTON 2
|
||||
|
||||
/* Mouse button state. */
|
||||
#define GLUT_DOWN 0
|
||||
#define GLUT_UP 1
|
||||
|
||||
#if (GLUT_API_VERSION >= 2)
|
||||
/* function keys */
|
||||
#define GLUT_KEY_F1 1
|
||||
#define GLUT_KEY_F2 2
|
||||
#define GLUT_KEY_F3 3
|
||||
#define GLUT_KEY_F4 4
|
||||
#define GLUT_KEY_F5 5
|
||||
#define GLUT_KEY_F6 6
|
||||
#define GLUT_KEY_F7 7
|
||||
#define GLUT_KEY_F8 8
|
||||
#define GLUT_KEY_F9 9
|
||||
#define GLUT_KEY_F10 10
|
||||
#define GLUT_KEY_F11 11
|
||||
#define GLUT_KEY_F12 12
|
||||
/* directional keys */
|
||||
#define GLUT_KEY_LEFT 100
|
||||
#define GLUT_KEY_UP 101
|
||||
#define GLUT_KEY_RIGHT 102
|
||||
#define GLUT_KEY_DOWN 103
|
||||
#define GLUT_KEY_PAGE_UP 104
|
||||
#define GLUT_KEY_PAGE_DOWN 105
|
||||
#define GLUT_KEY_HOME 106
|
||||
#define GLUT_KEY_END 107
|
||||
#define GLUT_KEY_INSERT 108
|
||||
#endif
|
||||
|
||||
/* Entry/exit state. */
|
||||
#define GLUT_LEFT 0
|
||||
#define GLUT_ENTERED 1
|
||||
|
||||
/* Menu usage state. */
|
||||
#define GLUT_MENU_NOT_IN_USE 0
|
||||
#define GLUT_MENU_IN_USE 1
|
||||
|
||||
/* Visibility state. */
|
||||
#define GLUT_NOT_VISIBLE 0
|
||||
#define GLUT_VISIBLE 1
|
||||
|
||||
/* Window status state. */
|
||||
#define GLUT_HIDDEN 0
|
||||
#define GLUT_FULLY_RETAINED 1
|
||||
#define GLUT_PARTIALLY_RETAINED 2
|
||||
#define GLUT_FULLY_COVERED 3
|
||||
|
||||
/* Color index component selection values. */
|
||||
#define GLUT_RED 0
|
||||
#define GLUT_GREEN 1
|
||||
#define GLUT_BLUE 2
|
||||
|
||||
#if defined(_WIN32)
|
||||
/* Stroke font constants (use these in GLUT program). */
|
||||
#define GLUT_STROKE_ROMAN ((void*)0)
|
||||
#define GLUT_STROKE_MONO_ROMAN ((void*)1)
|
||||
|
||||
/* Bitmap font constants (use these in GLUT program). */
|
||||
#define GLUT_BITMAP_9_BY_15 ((void*)2)
|
||||
#define GLUT_BITMAP_8_BY_13 ((void*)3)
|
||||
#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4)
|
||||
#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5)
|
||||
#if (GLUT_API_VERSION >= 3)
|
||||
#define GLUT_BITMAP_HELVETICA_10 ((void*)6)
|
||||
#define GLUT_BITMAP_HELVETICA_12 ((void*)7)
|
||||
#define GLUT_BITMAP_HELVETICA_18 ((void*)8)
|
||||
#endif
|
||||
#else
|
||||
/* Stroke font opaque addresses (use constants instead in source code). */
|
||||
GLUTAPI void *glutStrokeRoman;
|
||||
GLUTAPI void *glutStrokeMonoRoman;
|
||||
|
||||
/* Stroke font constants (use these in GLUT program). */
|
||||
#define GLUT_STROKE_ROMAN (&glutStrokeRoman)
|
||||
#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman)
|
||||
|
||||
/* Bitmap font opaque addresses (use constants instead in source code). */
|
||||
GLUTAPI void *glutBitmap9By15;
|
||||
GLUTAPI void *glutBitmap8By13;
|
||||
GLUTAPI void *glutBitmapTimesRoman10;
|
||||
GLUTAPI void *glutBitmapTimesRoman24;
|
||||
GLUTAPI void *glutBitmapHelvetica10;
|
||||
GLUTAPI void *glutBitmapHelvetica12;
|
||||
GLUTAPI void *glutBitmapHelvetica18;
|
||||
|
||||
/* Bitmap font constants (use these in GLUT program). */
|
||||
#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15)
|
||||
#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13)
|
||||
#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10)
|
||||
#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24)
|
||||
#if (GLUT_API_VERSION >= 3)
|
||||
#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10)
|
||||
#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12)
|
||||
#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* glutGet parameters. */
|
||||
#define GLUT_WINDOW_X ((GLenum) 100)
|
||||
#define GLUT_WINDOW_Y ((GLenum) 101)
|
||||
#define GLUT_WINDOW_WIDTH ((GLenum) 102)
|
||||
#define GLUT_WINDOW_HEIGHT ((GLenum) 103)
|
||||
#define GLUT_WINDOW_BUFFER_SIZE ((GLenum) 104)
|
||||
#define GLUT_WINDOW_STENCIL_SIZE ((GLenum) 105)
|
||||
#define GLUT_WINDOW_DEPTH_SIZE ((GLenum) 106)
|
||||
#define GLUT_WINDOW_RED_SIZE ((GLenum) 107)
|
||||
#define GLUT_WINDOW_GREEN_SIZE ((GLenum) 108)
|
||||
#define GLUT_WINDOW_BLUE_SIZE ((GLenum) 109)
|
||||
#define GLUT_WINDOW_ALPHA_SIZE ((GLenum) 110)
|
||||
#define GLUT_WINDOW_ACCUM_RED_SIZE ((GLenum) 111)
|
||||
#define GLUT_WINDOW_ACCUM_GREEN_SIZE ((GLenum) 112)
|
||||
#define GLUT_WINDOW_ACCUM_BLUE_SIZE ((GLenum) 113)
|
||||
#define GLUT_WINDOW_ACCUM_ALPHA_SIZE ((GLenum) 114)
|
||||
#define GLUT_WINDOW_DOUBLEBUFFER ((GLenum) 115)
|
||||
#define GLUT_WINDOW_RGBA ((GLenum) 116)
|
||||
#define GLUT_WINDOW_PARENT ((GLenum) 117)
|
||||
#define GLUT_WINDOW_NUM_CHILDREN ((GLenum) 118)
|
||||
#define GLUT_WINDOW_COLORMAP_SIZE ((GLenum) 119)
|
||||
#if (GLUT_API_VERSION >= 2)
|
||||
#define GLUT_WINDOW_NUM_SAMPLES ((GLenum) 120)
|
||||
#define GLUT_WINDOW_STEREO ((GLenum) 121)
|
||||
#endif
|
||||
#if (GLUT_API_VERSION >= 3)
|
||||
#define GLUT_WINDOW_CURSOR ((GLenum) 122)
|
||||
#endif
|
||||
#define GLUT_SCREEN_WIDTH ((GLenum) 200)
|
||||
#define GLUT_SCREEN_HEIGHT ((GLenum) 201)
|
||||
#define GLUT_SCREEN_WIDTH_MM ((GLenum) 202)
|
||||
#define GLUT_SCREEN_HEIGHT_MM ((GLenum) 203)
|
||||
#define GLUT_MENU_NUM_ITEMS ((GLenum) 300)
|
||||
#define GLUT_DISPLAY_MODE_POSSIBLE ((GLenum) 400)
|
||||
#define GLUT_INIT_WINDOW_X ((GLenum) 500)
|
||||
#define GLUT_INIT_WINDOW_Y ((GLenum) 501)
|
||||
#define GLUT_INIT_WINDOW_WIDTH ((GLenum) 502)
|
||||
#define GLUT_INIT_WINDOW_HEIGHT ((GLenum) 503)
|
||||
#define GLUT_INIT_DISPLAY_MODE ((GLenum) 504)
|
||||
#if (GLUT_API_VERSION >= 2)
|
||||
#define GLUT_ELAPSED_TIME ((GLenum) 700)
|
||||
#endif
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
|
||||
#define GLUT_WINDOW_FORMAT_ID ((GLenum) 123)
|
||||
#endif
|
||||
|
||||
#if (GLUT_API_VERSION >= 2)
|
||||
/* glutDeviceGet parameters. */
|
||||
#define GLUT_HAS_KEYBOARD ((GLenum) 600)
|
||||
#define GLUT_HAS_MOUSE ((GLenum) 601)
|
||||
#define GLUT_HAS_SPACEBALL ((GLenum) 602)
|
||||
#define GLUT_HAS_DIAL_AND_BUTTON_BOX ((GLenum) 603)
|
||||
#define GLUT_HAS_TABLET ((GLenum) 604)
|
||||
#define GLUT_NUM_MOUSE_BUTTONS ((GLenum) 605)
|
||||
#define GLUT_NUM_SPACEBALL_BUTTONS ((GLenum) 606)
|
||||
#define GLUT_NUM_BUTTON_BOX_BUTTONS ((GLenum) 607)
|
||||
#define GLUT_NUM_DIALS ((GLenum) 608)
|
||||
#define GLUT_NUM_TABLET_BUTTONS ((GLenum) 609)
|
||||
#endif
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
|
||||
#define GLUT_DEVICE_IGNORE_KEY_REPEAT ((GLenum) 610)
|
||||
#define GLUT_DEVICE_KEY_REPEAT ((GLenum) 611)
|
||||
#define GLUT_HAS_JOYSTICK ((GLenum) 612)
|
||||
#define GLUT_OWNS_JOYSTICK ((GLenum) 613)
|
||||
#define GLUT_JOYSTICK_BUTTONS ((GLenum) 614)
|
||||
#define GLUT_JOYSTICK_AXES ((GLenum) 615)
|
||||
#define GLUT_JOYSTICK_POLL_RATE ((GLenum) 616)
|
||||
#endif
|
||||
|
||||
#if (GLUT_API_VERSION >= 3)
|
||||
/* glutLayerGet parameters. */
|
||||
#define GLUT_OVERLAY_POSSIBLE ((GLenum) 800)
|
||||
#define GLUT_LAYER_IN_USE ((GLenum) 801)
|
||||
#define GLUT_HAS_OVERLAY ((GLenum) 802)
|
||||
#define GLUT_TRANSPARENT_INDEX ((GLenum) 803)
|
||||
#define GLUT_NORMAL_DAMAGED ((GLenum) 804)
|
||||
#define GLUT_OVERLAY_DAMAGED ((GLenum) 805)
|
||||
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
|
||||
/* glutVideoResizeGet parameters. */
|
||||
#define GLUT_VIDEO_RESIZE_POSSIBLE ((GLenum) 900)
|
||||
#define GLUT_VIDEO_RESIZE_IN_USE ((GLenum) 901)
|
||||
#define GLUT_VIDEO_RESIZE_X_DELTA ((GLenum) 902)
|
||||
#define GLUT_VIDEO_RESIZE_Y_DELTA ((GLenum) 903)
|
||||
#define GLUT_VIDEO_RESIZE_WIDTH_DELTA ((GLenum) 904)
|
||||
#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA ((GLenum) 905)
|
||||
#define GLUT_VIDEO_RESIZE_X ((GLenum) 906)
|
||||
#define GLUT_VIDEO_RESIZE_Y ((GLenum) 907)
|
||||
#define GLUT_VIDEO_RESIZE_WIDTH ((GLenum) 908)
|
||||
#define GLUT_VIDEO_RESIZE_HEIGHT ((GLenum) 909)
|
||||
#endif
|
||||
|
||||
/* glutUseLayer parameters. */
|
||||
#define GLUT_NORMAL ((GLenum) 0)
|
||||
#define GLUT_OVERLAY ((GLenum) 1)
|
||||
|
||||
/* glutGetModifiers return mask. */
|
||||
#define GLUT_ACTIVE_SHIFT 1
|
||||
#define GLUT_ACTIVE_CTRL 2
|
||||
#define GLUT_ACTIVE_ALT 4
|
||||
|
||||
/* glutSetCursor parameters. */
|
||||
/* Basic arrows. */
|
||||
#define GLUT_CURSOR_RIGHT_ARROW 0
|
||||
#define GLUT_CURSOR_LEFT_ARROW 1
|
||||
/* Symbolic cursor shapes. */
|
||||
#define GLUT_CURSOR_INFO 2
|
||||
#define GLUT_CURSOR_DESTROY 3
|
||||
#define GLUT_CURSOR_HELP 4
|
||||
#define GLUT_CURSOR_CYCLE 5
|
||||
#define GLUT_CURSOR_SPRAY 6
|
||||
#define GLUT_CURSOR_WAIT 7
|
||||
#define GLUT_CURSOR_TEXT 8
|
||||
#define GLUT_CURSOR_CROSSHAIR 9
|
||||
/* Directional cursors. */
|
||||
#define GLUT_CURSOR_UP_DOWN 10
|
||||
#define GLUT_CURSOR_LEFT_RIGHT 11
|
||||
/* Sizing cursors. */
|
||||
#define GLUT_CURSOR_TOP_SIDE 12
|
||||
#define GLUT_CURSOR_BOTTOM_SIDE 13
|
||||
#define GLUT_CURSOR_LEFT_SIDE 14
|
||||
#define GLUT_CURSOR_RIGHT_SIDE 15
|
||||
#define GLUT_CURSOR_TOP_LEFT_CORNER 16
|
||||
#define GLUT_CURSOR_TOP_RIGHT_CORNER 17
|
||||
#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18
|
||||
#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19
|
||||
/* Inherit from parent window. */
|
||||
#define GLUT_CURSOR_INHERIT 100
|
||||
/* Blank cursor. */
|
||||
#define GLUT_CURSOR_NONE 101
|
||||
/* Fullscreen crosshair (if available). */
|
||||
#define GLUT_CURSOR_FULL_CROSSHAIR 102
|
||||
#endif
|
||||
|
||||
/* GLUT initialization sub-API. */
|
||||
GLUTAPI void APIENTRY glutInit(int *argcp, char **argv);
|
||||
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
|
||||
GLUTAPI void APIENTRY __glutInitWithExit(int *argcp, char **argv, void (__cdecl *exitfunc)(int));
|
||||
#ifndef GLUT_BUILDING_LIB
|
||||
static void APIENTRY glutInit_ATEXIT_HACK(int *argcp, char **argv) { __glutInitWithExit(argcp, argv, exit); }
|
||||
#define glutInit glutInit_ATEXIT_HACK
|
||||
#endif
|
||||
#endif
|
||||
GLUTAPI void APIENTRY glutInitDisplayMode(unsigned int mode);
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
|
||||
GLUTAPI void APIENTRY glutInitDisplayString(const char *string);
|
||||
#endif
|
||||
GLUTAPI void APIENTRY glutInitWindowPosition(int x, int y);
|
||||
GLUTAPI void APIENTRY glutInitWindowSize(int width, int height);
|
||||
GLUTAPI void APIENTRY glutMainLoop(void);
|
||||
|
||||
/* GLUT window sub-API. */
|
||||
GLUTAPI int APIENTRY glutCreateWindow(const char *title);
|
||||
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
|
||||
GLUTAPI int APIENTRY __glutCreateWindowWithExit(const char *title, void (__cdecl *exitfunc)(int));
|
||||
#ifndef GLUT_BUILDING_LIB
|
||||
static int APIENTRY glutCreateWindow_ATEXIT_HACK(const char *title) { return __glutCreateWindowWithExit(title, exit); }
|
||||
#define glutCreateWindow glutCreateWindow_ATEXIT_HACK
|
||||
#endif
|
||||
#endif
|
||||
GLUTAPI int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height);
|
||||
GLUTAPI void APIENTRY glutDestroyWindow(int win);
|
||||
GLUTAPI void APIENTRY glutPostRedisplay(void);
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
|
||||
GLUTAPI void APIENTRY glutPostWindowRedisplay(int win);
|
||||
#endif
|
||||
GLUTAPI void APIENTRY glutSwapBuffers(void);
|
||||
GLUTAPI int APIENTRY glutGetWindow(void);
|
||||
GLUTAPI void APIENTRY glutSetWindow(int win);
|
||||
GLUTAPI void APIENTRY glutSetWindowTitle(const char *title);
|
||||
GLUTAPI void APIENTRY glutSetIconTitle(const char *title);
|
||||
GLUTAPI void APIENTRY glutPositionWindow(int x, int y);
|
||||
GLUTAPI void APIENTRY glutReshapeWindow(int width, int height);
|
||||
GLUTAPI void APIENTRY glutPopWindow(void);
|
||||
GLUTAPI void APIENTRY glutPushWindow(void);
|
||||
GLUTAPI void APIENTRY glutIconifyWindow(void);
|
||||
GLUTAPI void APIENTRY glutShowWindow(void);
|
||||
GLUTAPI void APIENTRY glutHideWindow(void);
|
||||
#if (GLUT_API_VERSION >= 3)
|
||||
GLUTAPI void APIENTRY glutFullScreen(void);
|
||||
GLUTAPI void APIENTRY glutSetCursor(int cursor);
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
|
||||
GLUTAPI void APIENTRY glutWarpPointer(int x, int y);
|
||||
#endif
|
||||
|
||||
/* GLUT overlay sub-API. */
|
||||
GLUTAPI void APIENTRY glutEstablishOverlay(void);
|
||||
GLUTAPI void APIENTRY glutRemoveOverlay(void);
|
||||
GLUTAPI void APIENTRY glutUseLayer(GLenum layer);
|
||||
GLUTAPI void APIENTRY glutPostOverlayRedisplay(void);
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11)
|
||||
GLUTAPI void APIENTRY glutPostWindowOverlayRedisplay(int win);
|
||||
#endif
|
||||
GLUTAPI void APIENTRY glutShowOverlay(void);
|
||||
GLUTAPI void APIENTRY glutHideOverlay(void);
|
||||
#endif
|
||||
|
||||
/* GLUT menu sub-API. */
|
||||
GLUTAPI int APIENTRY glutCreateMenu(void (GLUTCALLBACK *func)(int));
|
||||
#if defined(_WIN32) && !defined(GLUT_DISABLE_ATEXIT_HACK)
|
||||
GLUTAPI int APIENTRY __glutCreateMenuWithExit(void (GLUTCALLBACK *func)(int), void (__cdecl *exitfunc)(int));
|
||||
#ifndef GLUT_BUILDING_LIB
|
||||
static int APIENTRY glutCreateMenu_ATEXIT_HACK(void (GLUTCALLBACK *func)(int)) { return __glutCreateMenuWithExit(func, exit); }
|
||||
#define glutCreateMenu glutCreateMenu_ATEXIT_HACK
|
||||
#endif
|
||||
#endif
|
||||
GLUTAPI void APIENTRY glutDestroyMenu(int menu);
|
||||
GLUTAPI int APIENTRY glutGetMenu(void);
|
||||
GLUTAPI void APIENTRY glutSetMenu(int menu);
|
||||
GLUTAPI void APIENTRY glutAddMenuEntry(const char *label, int value);
|
||||
GLUTAPI void APIENTRY glutAddSubMenu(const char *label, int submenu);
|
||||
GLUTAPI void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value);
|
||||
GLUTAPI void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu);
|
||||
GLUTAPI void APIENTRY glutRemoveMenuItem(int item);
|
||||
GLUTAPI void APIENTRY glutAttachMenu(int button);
|
||||
GLUTAPI void APIENTRY glutDetachMenu(int button);
|
||||
|
||||
/* GLUT window callback sub-API. */
|
||||
GLUTAPI void APIENTRY glutDisplayFunc(void (GLUTCALLBACK *func)(void));
|
||||
GLUTAPI void APIENTRY glutReshapeFunc(void (GLUTCALLBACK *func)(int width, int height));
|
||||
GLUTAPI void APIENTRY glutKeyboardFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y));
|
||||
GLUTAPI void APIENTRY glutMouseFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));
|
||||
GLUTAPI void APIENTRY glutMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
|
||||
GLUTAPI void APIENTRY glutPassiveMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
|
||||
GLUTAPI void APIENTRY glutEntryFunc(void (GLUTCALLBACK *func)(int state));
|
||||
GLUTAPI void APIENTRY glutVisibilityFunc(void (GLUTCALLBACK *func)(int state));
|
||||
GLUTAPI void APIENTRY glutIdleFunc(void (GLUTCALLBACK *func)(void));
|
||||
GLUTAPI void APIENTRY glutTimerFunc(unsigned int millis, void (GLUTCALLBACK *func)(int value), int value);
|
||||
GLUTAPI void APIENTRY glutMenuStateFunc(void (GLUTCALLBACK *func)(int state));
|
||||
#if (GLUT_API_VERSION >= 2)
|
||||
GLUTAPI void APIENTRY glutSpecialFunc(void (GLUTCALLBACK *func)(int key, int x, int y));
|
||||
GLUTAPI void APIENTRY glutSpaceballMotionFunc(void (GLUTCALLBACK *func)(int x, int y, int z));
|
||||
GLUTAPI void APIENTRY glutSpaceballRotateFunc(void (GLUTCALLBACK *func)(int x, int y, int z));
|
||||
GLUTAPI void APIENTRY glutSpaceballButtonFunc(void (GLUTCALLBACK *func)(int button, int state));
|
||||
GLUTAPI void APIENTRY glutButtonBoxFunc(void (GLUTCALLBACK *func)(int button, int state));
|
||||
GLUTAPI void APIENTRY glutDialsFunc(void (GLUTCALLBACK *func)(int dial, int value));
|
||||
GLUTAPI void APIENTRY glutTabletMotionFunc(void (GLUTCALLBACK *func)(int x, int y));
|
||||
GLUTAPI void APIENTRY glutTabletButtonFunc(void (GLUTCALLBACK *func)(int button, int state, int x, int y));
|
||||
#if (GLUT_API_VERSION >= 3)
|
||||
GLUTAPI void APIENTRY glutMenuStatusFunc(void (GLUTCALLBACK *func)(int status, int x, int y));
|
||||
GLUTAPI void APIENTRY glutOverlayDisplayFunc(void (GLUTCALLBACK *func)(void));
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
|
||||
GLUTAPI void APIENTRY glutWindowStatusFunc(void (GLUTCALLBACK *func)(int state));
|
||||
#endif
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
|
||||
GLUTAPI void APIENTRY glutKeyboardUpFunc(void (GLUTCALLBACK *func)(unsigned char key, int x, int y));
|
||||
GLUTAPI void APIENTRY glutSpecialUpFunc(void (GLUTCALLBACK *func)(int key, int x, int y));
|
||||
GLUTAPI void APIENTRY glutJoystickFunc(void (GLUTCALLBACK *func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);
|
||||
#endif
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/* GLUT color index sub-API. */
|
||||
GLUTAPI void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue);
|
||||
GLUTAPI GLfloat APIENTRY glutGetColor(int ndx, int component);
|
||||
GLUTAPI void APIENTRY glutCopyColormap(int win);
|
||||
|
||||
/* GLUT state retrieval sub-API. */
|
||||
GLUTAPI int APIENTRY glutGet(GLenum type);
|
||||
GLUTAPI int APIENTRY glutDeviceGet(GLenum type);
|
||||
#if (GLUT_API_VERSION >= 2)
|
||||
/* GLUT extension support sub-API */
|
||||
GLUTAPI int APIENTRY glutExtensionSupported(const char *name);
|
||||
#endif
|
||||
#if (GLUT_API_VERSION >= 3)
|
||||
GLUTAPI int APIENTRY glutGetModifiers(void);
|
||||
GLUTAPI int APIENTRY glutLayerGet(GLenum type);
|
||||
#endif
|
||||
|
||||
/* GLUT font sub-API */
|
||||
GLUTAPI void APIENTRY glutBitmapCharacter(void *font, int character);
|
||||
GLUTAPI int APIENTRY glutBitmapWidth(void *font, int character);
|
||||
GLUTAPI void APIENTRY glutStrokeCharacter(void *font, int character);
|
||||
GLUTAPI int APIENTRY glutStrokeWidth(void *font, int character);
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
|
||||
GLUTAPI int APIENTRY glutBitmapLength(void *font, const unsigned char *string);
|
||||
GLUTAPI int APIENTRY glutStrokeLength(void *font, const unsigned char *string);
|
||||
#endif
|
||||
|
||||
/* GLUT pre-built models sub-API */
|
||||
GLUTAPI void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks);
|
||||
GLUTAPI void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);
|
||||
GLUTAPI void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
|
||||
GLUTAPI void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);
|
||||
GLUTAPI void APIENTRY glutWireCube(GLdouble size);
|
||||
GLUTAPI void APIENTRY glutSolidCube(GLdouble size);
|
||||
GLUTAPI void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
|
||||
GLUTAPI void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);
|
||||
GLUTAPI void APIENTRY glutWireDodecahedron(void);
|
||||
GLUTAPI void APIENTRY glutSolidDodecahedron(void);
|
||||
GLUTAPI void APIENTRY glutWireTeapot(GLdouble size);
|
||||
GLUTAPI void APIENTRY glutSolidTeapot(GLdouble size);
|
||||
GLUTAPI void APIENTRY glutWireOctahedron(void);
|
||||
GLUTAPI void APIENTRY glutSolidOctahedron(void);
|
||||
GLUTAPI void APIENTRY glutWireTetrahedron(void);
|
||||
GLUTAPI void APIENTRY glutSolidTetrahedron(void);
|
||||
GLUTAPI void APIENTRY glutWireIcosahedron(void);
|
||||
GLUTAPI void APIENTRY glutSolidIcosahedron(void);
|
||||
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9)
|
||||
/* GLUT video resize sub-API. */
|
||||
GLUTAPI int APIENTRY glutVideoResizeGet(GLenum param);
|
||||
GLUTAPI void APIENTRY glutSetupVideoResizing(void);
|
||||
GLUTAPI void APIENTRY glutStopVideoResizing(void);
|
||||
GLUTAPI void APIENTRY glutVideoResize(int x, int y, int width, int height);
|
||||
GLUTAPI void APIENTRY glutVideoPan(int x, int y, int width, int height);
|
||||
|
||||
/* GLUT debugging sub-API. */
|
||||
GLUTAPI void APIENTRY glutReportErrors(void);
|
||||
#endif
|
||||
|
||||
#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13)
|
||||
/* GLUT device control sub-API. */
|
||||
/* glutSetKeyRepeat modes. */
|
||||
#define GLUT_KEY_REPEAT_OFF 0
|
||||
#define GLUT_KEY_REPEAT_ON 1
|
||||
#define GLUT_KEY_REPEAT_DEFAULT 2
|
||||
|
||||
/* Joystick button masks. */
|
||||
#define GLUT_JOYSTICK_BUTTON_A 1
|
||||
#define GLUT_JOYSTICK_BUTTON_B 2
|
||||
#define GLUT_JOYSTICK_BUTTON_C 4
|
||||
#define GLUT_JOYSTICK_BUTTON_D 8
|
||||
|
||||
GLUTAPI void APIENTRY glutIgnoreKeyRepeat(int ignore);
|
||||
GLUTAPI void APIENTRY glutSetKeyRepeat(int repeatMode);
|
||||
GLUTAPI void APIENTRY glutForceJoystickFunc(void);
|
||||
|
||||
/* GLUT game mode sub-API. */
|
||||
/* glutGameModeGet. */
|
||||
#define GLUT_GAME_MODE_ACTIVE ((GLenum) 0)
|
||||
#define GLUT_GAME_MODE_POSSIBLE ((GLenum) 1)
|
||||
#define GLUT_GAME_MODE_WIDTH ((GLenum) 2)
|
||||
#define GLUT_GAME_MODE_HEIGHT ((GLenum) 3)
|
||||
#define GLUT_GAME_MODE_PIXEL_DEPTH ((GLenum) 4)
|
||||
#define GLUT_GAME_MODE_REFRESH_RATE ((GLenum) 5)
|
||||
#define GLUT_GAME_MODE_DISPLAY_CHANGED ((GLenum) 6)
|
||||
|
||||
GLUTAPI void APIENTRY glutGameModeString(const char *string);
|
||||
GLUTAPI int APIENTRY glutEnterGameMode(void);
|
||||
GLUTAPI void APIENTRY glutLeaveGameMode(void);
|
||||
GLUTAPI int APIENTRY glutGameModeGet(GLenum mode);
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef GLUT_APIENTRY_DEFINED
|
||||
# undef GLUT_APIENTRY_DEFINED
|
||||
# undef APIENTRY
|
||||
#endif
|
||||
|
||||
#ifdef GLUT_WINGDIAPI_DEFINED
|
||||
# undef GLUT_WINGDIAPI_DEFINED
|
||||
# undef WINGDIAPI
|
||||
#endif
|
||||
|
||||
#ifdef GLUT_DEFINED___CDECL
|
||||
# undef GLUT_DEFINED___CDECL
|
||||
# undef __cdecl
|
||||
#endif
|
||||
|
||||
#ifdef GLUT_DEFINED__CRTIMP
|
||||
# undef GLUT_DEFINED__CRTIMP
|
||||
# undef _CRTIMP
|
||||
#endif
|
||||
|
||||
#endif /* __glut_h__ */
|
||||
@@ -0,0 +1,307 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Visual Leak Detector - Import Library Header
|
||||
// Copyright (c) 2005-2012 VLD Team
|
||||
//
|
||||
// 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
|
||||
//
|
||||
// See COPYING.txt for the full terms of the GNU Lesser General Public License.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "vld_def.h"
|
||||
|
||||
#if defined _DEBUG || defined VLD_FORCE_ENABLE
|
||||
|
||||
#include <windows.h>
|
||||
|
||||
#pragma comment(lib, "vld.lib")
|
||||
|
||||
// Force a symbolic reference to the global VisualLeakDetector class object from
|
||||
// the DLL. This ensures that the DLL is loaded and linked with the program,
|
||||
// even if no code otherwise imports any of the DLL's exports.
|
||||
#pragma comment(linker, "/include:__imp_?g_vld@@3VVisualLeakDetector@@A")
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Visual Leak Detector APIs
|
||||
//
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif // __cplusplus
|
||||
|
||||
// VLDDisable - Disables Visual Leak Detector's memory leak detection at
|
||||
// runtime. If memory leak detection is already disabled, then calling this
|
||||
// function has no effect.
|
||||
//
|
||||
// Note: In multithreaded programs, this function operates on a per-thread
|
||||
// basis. In other words, if you call this function from one thread, then
|
||||
// memory leak detection is only disabled for that thread. If memory leak
|
||||
// detection is enabled for other threads, then it will remain enabled for
|
||||
// those other threads. It was designed to work this way to insulate you,
|
||||
// the programmer, from having to ensure thread synchronization when calling
|
||||
// VLDEnable() and VLDDisable(). Without this, calling these two functions
|
||||
// unsynchronized could result in unpredictable and unintended behavior.
|
||||
// But this also means that if you want to disable memory leak detection
|
||||
// process-wide, then you need to call this function from every thread in
|
||||
// the process.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) void VLDDisable ();
|
||||
|
||||
// VLDEnable - Enables Visual Leak Detector's memory leak detection at runtime.
|
||||
// If memory leak detection is already enabled, which it is by default, then
|
||||
// calling this function has no effect.
|
||||
//
|
||||
// Note: In multithreaded programs, this function operates on a per-thread
|
||||
// basis. In other words, if you call this function from one thread, then
|
||||
// memory leak detection is only enabled for that thread. If memory leak
|
||||
// detection is disabled for other threads, then it will remain disabled for
|
||||
// those other threads. It was designed to work this way to insulate you,
|
||||
// the programmer, from having to ensure thread synchronization when calling
|
||||
// VLDEnable() and VLDDisable(). Without this, calling these two functions
|
||||
// unsynchronized could result in unpredictable and unintended behavior.
|
||||
// But this also means that if you want to enable memory leak detection
|
||||
// process-wide, then you need to call this function from every thread in
|
||||
// the process.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) void VLDEnable ();
|
||||
|
||||
// VLDRestore - Restore Visual Leak Detector's previous state.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) void VLDRestore ();
|
||||
|
||||
// VLDGlobalDisable - Disables Visual Leak Detector's memory leak detection at
|
||||
// runtime in all threads. If memory leak detection is already disabled,
|
||||
// then calling this function has no effect.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) void VLDGlobalDisable ();
|
||||
|
||||
// VLDGlobalEnable - Enables Visual Leak Detector's memory leak detection
|
||||
// at runtime in all threads. If memory leak detection is already enabled,
|
||||
// which it is by default, then calling this function has no effect.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) void VLDGlobalEnable ();
|
||||
|
||||
// VLDReportLeaks - Report leaks up to the execution point.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) UINT VLDReportLeaks ();
|
||||
|
||||
// VLDGetLeaksCount - Return memory leaks count to the execution point.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) UINT VLDGetLeaksCount ();
|
||||
|
||||
// VLDMarkAllLeaksAsReported - Mark all leaks as reported.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) void VLDMarkAllLeaksAsReported ();
|
||||
|
||||
|
||||
// VLDRefreshModules - Look for recently loaded DLLs and patch them if necessary.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) void VLDRefreshModules();
|
||||
|
||||
|
||||
// VLDEnableModule - Enable Memory leak checking on the specified module.
|
||||
//
|
||||
// module: module handle.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
|
||||
__declspec(dllimport) void VLDEnableModule(HMODULE module);
|
||||
|
||||
|
||||
// VLDDisableModule - Disable Memory leak checking on the specified module.
|
||||
//
|
||||
// module: module handle.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) void VLDDisableModule(HMODULE module);
|
||||
|
||||
// VLDGetOptions - Return all current options.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// Mask of current options.
|
||||
//
|
||||
__declspec(dllimport) UINT VLDGetOptions();
|
||||
|
||||
// VLDGetReportFilename - Return current report filename.
|
||||
//
|
||||
// filename: current report filename (max characters - MAX_PATH).
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) void VLDGetReportFilename(WCHAR *filename);
|
||||
|
||||
// VLDSetOptions - Update the report options via function call rather than INI file.
|
||||
//
|
||||
// option_mask: Only the following flags are checked
|
||||
// VLD_OPT_AGGREGATE_DUPLICATES
|
||||
// VLD_OPT_MODULE_LIST_INCLUDE
|
||||
// VLD_OPT_SAFE_STACK_WALK
|
||||
// VLD_OPT_SLOW_DEBUGGER_DUMP
|
||||
// VLD_OPT_TRACE_INTERNAL_FRAMES
|
||||
// VLD_OPT_START_DISABLED
|
||||
// VLD_OPT_SKIP_HEAPFREE_LEAKS
|
||||
// VLD_OPT_VALIDATE_HEAPFREE
|
||||
//
|
||||
// maxDataDump: maximum number of user-data bytes to dump for each leaked block.
|
||||
//
|
||||
// maxTraceFrames: maximum number of frames per stack trace for each leaked block.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) void VLDSetOptions(UINT option_mask, SIZE_T maxDataDump, UINT maxTraceFrames);
|
||||
|
||||
// VLDSetModulesList - Set list of modules included/excluded in leak detection
|
||||
// depending on parameter "includeModules".
|
||||
//
|
||||
// modules: list of modules to be forcefully included/excluded in leak detection.
|
||||
//
|
||||
// includeModules: include or exclude that modules.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) void VLDSetModulesList(CONST WCHAR *modules, BOOL includeModules);
|
||||
|
||||
// VLDGetModulesList - Return current list of included/excluded modules
|
||||
// depending on flag VLD_OPT_TRACE_INTERNAL_FRAMES.
|
||||
//
|
||||
// modules: destination string for list of included/excluded modules (maximum length 512 characters).
|
||||
//
|
||||
// size: maximum string size.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// BOOL: TRUE if include modules, otherwise FALSE.
|
||||
//
|
||||
__declspec(dllimport) BOOL VLDGetModulesList(WCHAR *modules, UINT size);
|
||||
|
||||
// VLDSetReportOptions - Update the report options via function call rather than INI file.
|
||||
//
|
||||
// Only the following flags are checked
|
||||
// VLD_OPT_REPORT_TO_DEBUGGER
|
||||
// VLD_OPT_REPORT_TO_FILE
|
||||
// VLD_OPT_REPORT_TO_STDOUT
|
||||
// VLD_OPT_UNICODE_REPORT
|
||||
//
|
||||
// filename is optional and can be NULL.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllimport) void VLDSetReportOptions(UINT option_mask, CONST WCHAR *filename);
|
||||
|
||||
// VLDSetReportHook - Installs or uninstalls a client-defined reporting function by hooking it
|
||||
// into the C run-time debug reporting process (debug version only).
|
||||
//
|
||||
// mode: The action to take: VLD_RPTHOOK_INSTALL or VLD_RPTHOOK_REMOVE.
|
||||
//
|
||||
// pfnNewHook: Report hook to install or remove.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// int: 0 if success.
|
||||
//
|
||||
__declspec(dllimport) int VLDSetReportHook(int mode, VLD_REPORT_HOOK pfnNewHook);
|
||||
|
||||
// VLDResolveCallstacks - Performs symbol resolution for all saved extent CallStack's that have
|
||||
// been tracked by Visual Leak Detector. This function is necessary for applications that
|
||||
// dynamically load and unload modules, and through which memory leaks might be included.
|
||||
// If this is NOT called, stack traces may have stack frames with no symbol information. This
|
||||
// happens because the symbol API's cannot look up symbols for a binary / module that has been unloaded
|
||||
// from the process.
|
||||
//
|
||||
// Return Value:
|
||||
//
|
||||
// None.
|
||||
//
|
||||
__declspec(dllexport) void VLDResolveCallstacks();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif // __cplusplus
|
||||
|
||||
#else // !_DEBUG
|
||||
|
||||
#define VLDEnable()
|
||||
#define VLDDisable()
|
||||
#define VLDRestore()
|
||||
#define VLDReportLeaks() 0
|
||||
#define VLDGetLeaksCount() 0
|
||||
#define VLDMarkAllLeaksAsReported()
|
||||
#define VLDRefreshModules()
|
||||
#define VLDEnableModule(a)
|
||||
#define VLDDisableModule(b)
|
||||
#define VLDGetOptions() 0
|
||||
#define VLDGetReportFilename(a)
|
||||
#define VLDSetOptions(a, b, c)
|
||||
#define VLDSetReportHook(a, b)
|
||||
#define VLDSetModulesList(a)
|
||||
#define VLDGetModulesList(a, b) FALSE
|
||||
#define VLDSetReportOptions(a, b)
|
||||
|
||||
#endif // _DEBUG
|
||||
@@ -0,0 +1,45 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Visual Leak Detector - Import Library Header
|
||||
// Copyright (c) 2005-2012 VLD Team
|
||||
//
|
||||
// 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
|
||||
//
|
||||
// See COPYING.txt for the full terms of the GNU Lesser General Public License.
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#pragma once
|
||||
|
||||
#define VLD_OPT_AGGREGATE_DUPLICATES 0x0001 // If set, aggregate duplicate leaks in the leak report.
|
||||
#define VLD_OPT_MODULE_LIST_INCLUDE 0x0002 // If set, modules in the module list are included, all others are excluded.
|
||||
#define VLD_OPT_REPORT_TO_DEBUGGER 0x0004 // If set, the memory leak report is sent to the debugger.
|
||||
#define VLD_OPT_REPORT_TO_FILE 0x0008 // If set, the memory leak report is sent to a file.
|
||||
#define VLD_OPT_SAFE_STACK_WALK 0x0010 // If set, the stack is walked using the "safe" method (StackWalk64).
|
||||
#define VLD_OPT_SELF_TEST 0x0020 // If set, perform a self-test to verify memory leak self-checking.
|
||||
#define VLD_OPT_SLOW_DEBUGGER_DUMP 0x0040 // If set, inserts a slight delay between sending output to the debugger.
|
||||
#define VLD_OPT_START_DISABLED 0x0080 // If set, memory leak detection will initially disabled.
|
||||
#define VLD_OPT_TRACE_INTERNAL_FRAMES 0x0100 // If set, include useless frames (e.g. internal to VLD) in call stacks.
|
||||
#define VLD_OPT_UNICODE_REPORT 0x0200 // If set, the leak report will be encoded UTF-16 instead of ASCII.
|
||||
#define VLD_OPT_VLDOFF 0x0400 // If set, VLD will be completely deactivated. It will not attach to any modules.
|
||||
#define VLD_OPT_REPORT_TO_STDOUT 0x0800 // If set, the memory leak report is sent to stdout.
|
||||
#define VLD_OPT_SKIP_HEAPFREE_LEAKS 0x1000 // If set, VLD skip HeapFree memory leaks.
|
||||
#define VLD_OPT_VALIDATE_HEAPFREE 0x2000 // If set, VLD verifies and reports heap consistency for HeapFree calls.
|
||||
#define VLD_OPT_RELEASE_CRT_RUNTIME 0x4000 // If set, VLD treat CRT runtime as release version (use only with define VLD_FORCE_ENABLE).
|
||||
|
||||
#define VLD_RPTHOOK_INSTALL 0
|
||||
#define VLD_RPTHOOK_REMOVE 1
|
||||
|
||||
typedef int (__cdecl * VLD_REPORT_HOOK)(int reportType, wchar_t *message, int *returnValue);
|
||||
Reference in new issue
Block a user