note
	description: "External of the SDL2 library."
	author: "Louis Marchand"
	date: "Thu, 02 Apr 2015 02:40:10 +0000"
	revision: "2.0"

class 
	GAME_SDL_EXTERNAL

create 
	default_create

feature {NONE} -- Initialization

	default_create
			-- Process instances of classes with no creation clause.
			-- (Default: do nothing.)
			-- (from ANY)
		do
		end
	
feature -- Access

	generating_type: TYPE [detachable GAME_SDL_EXTERNAL]
			-- Type of current object
			-- (type of which it is a direct instance)
			-- (from ANY)
		external
			"built_in"
		ensure -- from ANY
			generating_type_not_void: Result /= Void
		end

	generator: STRING_8
			-- Name of current object's generating class
			-- (base class of the type of which it is a direct instance)
			-- (from ANY)
		external
			"built_in"
		ensure -- from ANY
			generator_not_void: Result /= Void
			generator_not_empty: not Result.is_empty
		end
	
feature -- Comparison

	frozen deep_equal (a: detachable ANY; b: like arg #1): BOOLEAN
			-- Are a and b either both void
			-- or attached to isomorphic object structures?
			-- (from ANY)
		do
			if a = Void then
				Result := b = Void
			else
				Result := b /= Void and then a.is_deep_equal (b)
			end
		ensure -- from ANY
			instance_free: class
			shallow_implies_deep: standard_equal (a, b) implies Result
			both_or_none_void: (a = Void) implies (Result = (b = Void))
			same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b))
			symmetric: Result implies deep_equal (b, a)
		end

	frozen equal (a: detachable ANY; b: like arg #1): BOOLEAN
			-- Are a and b either both void or attached
			-- to objects considered equal?
			-- (from ANY)
		do
			if a = Void then
				Result := b = Void
			else
				Result := b /= Void and then a.is_equal (b)
			end
		ensure -- from ANY
			instance_free: class
			definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.is_equal (b))
		end

	frozen is_deep_equal alias "≡≡≡" (other: GAME_SDL_EXTERNAL): BOOLEAN
			-- Are Current and other attached to isomorphic object structures?
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
		external
			"built_in"
		ensure -- from ANY
			shallow_implies_deep: standard_is_equal (other) implies Result
			same_type: Result implies same_type (other)
			symmetric: Result implies other.is_deep_equal (Current)
		end

	is_equal (other: GAME_SDL_EXTERNAL): BOOLEAN
			-- Is other attached to an object considered
			-- equal to current object?
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
		external
			"built_in"
		ensure -- from ANY
			symmetric: Result implies other ~ Current
			consistent: standard_is_equal (other) implies Result
		end

	frozen standard_equal (a: detachable ANY; b: like arg #1): BOOLEAN
			-- Are a and b either both void or attached to
			-- field-by-field identical objects of the same type?
			-- Always uses default object comparison criterion.
			-- (from ANY)
		do
			if a = Void then
				Result := b = Void
			else
				Result := b /= Void and then a.standard_is_equal (b)
			end
		ensure -- from ANY
			instance_free: class
			definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.standard_is_equal (b))
		end

	frozen standard_is_equal alias "" (other: GAME_SDL_EXTERNAL): BOOLEAN
			-- Is other attached to an object of the same type
			-- as current object, and field-by-field identical to it?
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
		external
			"built_in"
		ensure -- from ANY
			same_type: Result implies same_type (other)
			symmetric: Result implies other.standard_is_equal (Current)
		end
	
feature -- Status report

	conforms_to (other: ANY): BOOLEAN
			-- Does type of current object conform to type
			-- of other (as per Eiffel: The Language, chapter 13)?
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
		external
			"built_in"
		end

	same_type (other: ANY): BOOLEAN
			-- Is type of current object identical to type of other?
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
		external
			"built_in"
		ensure -- from ANY
			definition: Result = (conforms_to (other) and other.conforms_to (Current))
		end
	
feature -- Duplication

	frozen clone (other: detachable ANY): like other
		obsolete "Use `twin' instead. [2017-05-31]"
			-- Void if other is void; otherwise new object
			-- equal to other
			--
			-- For non-void other, clone calls copy;
			-- to change copying/cloning semantics, redefine copy.
			-- (from ANY)
		do
			if other /= Void then
				Result := other.twin
			end
		ensure -- from ANY
			instance_free: class
			equal: Result ~ other
		end

	copy (other: GAME_SDL_EXTERNAL)
			-- Update current object using fields of object attached
			-- to other, so as to yield equal objects.
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
			type_identity: same_type (other)
		external
			"built_in"
		ensure -- from ANY
			is_equal: Current ~ other
		end

	frozen deep_clone (other: detachable ANY): like other
		obsolete "Use `deep_twin' instead. [2017-05-31]"
			-- Void if other is void: otherwise, new object structure
			-- recursively duplicated from the one attached to other
			-- (from ANY)
		do
			if other /= Void then
				Result := other.deep_twin
			end
		ensure -- from ANY
			instance_free: class
			deep_equal: deep_equal (other, Result)
		end

	frozen deep_copy (other: GAME_SDL_EXTERNAL)
			-- Effect equivalent to that of:
			--		copy (other . deep_twin)
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
		do
			copy (other.deep_twin)
		ensure -- from ANY
			deep_equal: deep_equal (Current, other)
		end

	frozen deep_twin: GAME_SDL_EXTERNAL
			-- New object structure recursively duplicated from Current.
			-- (from ANY)
		external
			"built_in"
		ensure -- from ANY
			deep_twin_not_void: Result /= Void
			deep_equal: deep_equal (Current, Result)
		end

	frozen standard_clone (other: detachable ANY): like other
		obsolete "Use `standard_twin' instead. [2017-05-31]"
			-- Void if other is void; otherwise new object
			-- field-by-field identical to other.
			-- Always uses default copying semantics.
			-- (from ANY)
		do
			if other /= Void then
				Result := other.standard_twin
			end
		ensure -- from ANY
			instance_free: class
			equal: standard_equal (Result, other)
		end

	frozen standard_copy (other: GAME_SDL_EXTERNAL)
			-- Copy every field of other onto corresponding field
			-- of current object.
			-- (from ANY)
		require -- from ANY
			other_not_void: other /= Void
			type_identity: same_type (other)
		external
			"built_in"
		ensure -- from ANY
			is_standard_equal: standard_is_equal (other)
		end

	frozen standard_twin: GAME_SDL_EXTERNAL
			-- New object field-by-field identical to other.
			-- Always uses default copying semantics.
			-- (from ANY)
		external
			"built_in"
		ensure -- from ANY
			standard_twin_not_void: Result /= Void
			equal: standard_equal (Result, Current)
		end

	frozen twin: GAME_SDL_EXTERNAL
			-- New object equal to Current
			-- twin calls copy; to change copying/twinning semantics, redefine copy.
			-- (from ANY)
		external
			"built_in"
		ensure -- from ANY
			twin_not_void: Result /= Void
			is_equal: Result ~ Current
		end
	
feature -- Basic operations

	frozen as_attached: attached GAME_SDL_EXTERNAL
		obsolete "Remove calls to this feature. [2017-05-31]"
			-- Attached version of Current.
			-- (Can be used during transitional period to convert
			-- non-void-safe classes to void-safe ones.)
			-- (from ANY)
		do
			Result := Current
		end

	frozen default: detachable GAME_SDL_EXTERNAL
			-- Default value of object's type
			-- (from ANY)
		do
		end

	frozen default_pointer: POINTER
			-- Default value of type POINTER
			-- (Avoid the need to write p.default for
			-- some p of type POINTER.)
			-- (from ANY)
		do
		ensure -- from ANY
			instance_free: class
		end

	default_rescue
			-- Process exception for routines with no Rescue clause.
			-- (Default: do nothing.)
			-- (from ANY)
		do
		end

	frozen do_nothing
			-- Execute a null action.
			-- (from ANY)
		do
		ensure -- from ANY
			instance_free: class
		end
	
feature -- Constants

	frozen kmod_alt: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_ALT"
		end

	frozen kmod_caps: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_CAPS"
		end

	frozen kmod_ctrl: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_CTRL"
		end

	frozen kmod_gui: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_GUI"
		end

	frozen kmod_lalt: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_LALT"
		end

	frozen kmod_lctrl: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_LCTRL"
		end

	frozen kmod_lgui: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_LGUI"
		end

	frozen kmod_lshift: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_LSHIFT"
		end

	frozen kmod_mode: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_MODE"
		end

	frozen kmod_none: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_NONE"
		end

	frozen kmod_num: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_NUM"
		end

	frozen kmod_ralt: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_RALT"
		end

	frozen kmod_rctrl: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_RCTRL"
		end

	frozen kmod_rgui: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_RGUI"
		end

	frozen kmod_rshift: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_RSHIFT"
		end

	frozen kmod_shift: NATURAL_16
		external
			"C [macro <SDL.h>] : EIF_NATURAL_16"
		alias
			"KMOD_SHIFT"
		end

	frozen sdl_arrayorder_abgr: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_ARRAYORDER_ABGR"
		end

	frozen sdl_arrayorder_argb: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_ARRAYORDER_ARGB"
		end

	frozen sdl_arrayorder_bgr: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_ARRAYORDER_BGR"
		end

	frozen sdl_arrayorder_bgra: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_ARRAYORDER_BGRA"
		end

	frozen sdl_arrayorder_none: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_ARRAYORDER_NONE"
		end

	frozen sdl_arrayorder_rgb: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_ARRAYORDER_RGB"
		end

	frozen sdl_arrayorder_rgba: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_ARRAYORDER_RGBA"
		end

	frozen sdl_bitmaporder_1234: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_BITMAPORDER_1234"
		end

	frozen sdl_bitmaporder_4321: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_BITMAPORDER_4321"
		end

	frozen sdl_bitmaporder_none: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_BITMAPORDER_NONE"
		end

	frozen sdl_blendmode_add: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_BLENDMODE_ADD"
		end

	frozen sdl_blendmode_blend: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_BLENDMODE_BLEND"
		end

	frozen sdl_blendmode_mod: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_BLENDMODE_MOD"
		end

	frozen sdl_blendmode_none: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_BLENDMODE_NONE"
		end

	frozen sdl_button_left: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_BUTTON_LEFT"
		end

	frozen sdl_button_lmask: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_BUTTON_LMASK"
		end

	frozen sdl_button_middle: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_BUTTON_MIDDLE"
		end

	frozen sdl_button_mmask: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_BUTTON_MMASK"
		end

	frozen sdl_button_right: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_BUTTON_RIGHT"
		end

	frozen sdl_button_rmask: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_BUTTON_RMASK"
		end

	frozen sdl_button_x1: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_BUTTON_X1"
		end

	frozen sdl_button_x1mask: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_BUTTON_X1MASK"
		end

	frozen sdl_button_x2: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_BUTTON_X2"
		end

	frozen sdl_button_x2mask: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_BUTTON_X2MASK"
		end

	frozen sdl_controlleraxismotion: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_CONTROLLERAXISMOTION"
		end

	frozen sdl_controllerbuttondown: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_CONTROLLERBUTTONDOWN"
		end

	frozen sdl_controllerbuttonup: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_CONTROLLERBUTTONUP"
		end

	frozen sdl_controllerdeviceadded: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_CONTROLLERDEVICEADDED"
		end

	frozen sdl_controllerdeviceremapped: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_CONTROLLERDEVICEREMAPPED"
		end

	frozen sdl_controllerdeviceremoved: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_CONTROLLERDEVICEREMOVED"
		end

	frozen sdl_disable: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_DISABLE"
		end

	frozen sdl_dollargesture: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_DOLLARGESTURE"
		end

	frozen sdl_dollarrecord: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_DOLLARRECORD"
		end

	frozen sdl_dropfile: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_DROPFILE"
		end

	frozen sdl_enable: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_ENABLE"
		end

	frozen sdl_false: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_FALSE"
		end

	frozen sdl_fingerdown: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_FINGERDOWN"
		end

	frozen sdl_fingermotion: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_FINGERMOTION"
		end

	frozen sdl_fingerup: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_FINGERUP"
		end

	frozen sdl_flip_horizontal: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_FLIP_HORIZONTAL"
		end

	frozen sdl_flip_none: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_FLIP_NONE"
		end

	frozen sdl_flip_vertical: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_FLIP_VERTICAL"
		end

	frozen sdl_gl_accelerated_visual: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_ACCELERATED_VISUAL"
		end

	frozen sdl_gl_accum_alpha_size: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_ACCUM_ALPHA_SIZE"
		end

	frozen sdl_gl_accum_blue_size: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_ACCUM_BLUE_SIZE"
		end

	frozen sdl_gl_accum_green_size: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_ACCUM_GREEN_SIZE"
		end

	frozen sdl_gl_accum_red_size: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_ACCUM_RED_SIZE"
		end

	frozen sdl_gl_alpha_size: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_ALPHA_SIZE"
		end

	frozen sdl_gl_blue_size: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_BLUE_SIZE"
		end

	frozen sdl_gl_buffer_size: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_BUFFER_SIZE"
		end

	frozen sdl_gl_context_debug_flag: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_CONTEXT_DEBUG_FLAG"
		end

	frozen sdl_gl_context_flags: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_CONTEXT_FLAGS"
		end

	frozen sdl_gl_context_forward_compatible_flag: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG"
		end

	frozen sdl_gl_context_major_version: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_CONTEXT_MAJOR_VERSION"
		end

	frozen sdl_gl_context_minor_version: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_CONTEXT_MINOR_VERSION"
		end

	frozen sdl_gl_context_profile_compatibility: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_CONTEXT_PROFILE_COMPATIBILITY"
		end

	frozen sdl_gl_context_profile_core: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_CONTEXT_PROFILE_CORE"
		end

	frozen sdl_gl_context_profile_es: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_CONTEXT_PROFILE_ES"
		end

	frozen sdl_gl_context_profile_mask: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_CONTEXT_PROFILE_MASK"
		end

	frozen sdl_gl_context_reset_isolation_flag: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_CONTEXT_RESET_ISOLATION_FLAG"
		end

	frozen sdl_gl_context_robust_access_flag: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG"
		end

	frozen sdl_gl_depth_size: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_DEPTH_SIZE"
		end

	frozen sdl_gl_doublebuffer: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_DOUBLEBUFFER"
		end

	frozen sdl_gl_framebuffer_srgb_capable: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_FRAMEBUFFER_SRGB_CAPABLE"
		end

	frozen sdl_gl_green_size: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_GREEN_SIZE"
		end

	frozen sdl_gl_multisamplebuffers: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_MULTISAMPLEBUFFERS"
		end

	frozen sdl_gl_multisamplesamples: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_MULTISAMPLESAMPLES"
		end

	frozen sdl_gl_red_size: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_RED_SIZE"
		end

	frozen sdl_gl_share_with_current_context: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_SHARE_WITH_CURRENT_CONTEXT"
		end

	frozen sdl_gl_stencil_size: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_STENCIL_SIZE"
		end

	frozen sdl_gl_stereo: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_GL_STEREO"
		end

	frozen sdl_haptic_autocenter: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_AUTOCENTER"
		end

	frozen sdl_haptic_cartesian: NATURAL_8
		external
			"C [macro <SDL.h>] : Uint8"
		alias
			"SDL_HAPTIC_CARTESIAN"
		end

	frozen sdl_haptic_constant: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_CONSTANT"
		end

	frozen sdl_haptic_custom: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_CUSTOM"
		end

	frozen sdl_haptic_damper: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_DAMPER"
		end

	frozen sdl_haptic_friction: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_FRICTION"
		end

	frozen sdl_haptic_gain: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_GAIN"
		end

	frozen sdl_haptic_inertia: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_INERTIA"
		end

	frozen sdl_haptic_infinity: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_HAPTIC_INFINITY"
		end

	frozen sdl_haptic_leftright: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_LEFTRIGHT"
		end

	frozen sdl_haptic_pause: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_PAUSE"
		end

	frozen sdl_haptic_polar: NATURAL_8
		external
			"C [macro <SDL.h>] : Uint8"
		alias
			"SDL_HAPTIC_POLAR"
		end

	frozen sdl_haptic_ramp: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_RAMP"
		end

	frozen sdl_haptic_sawtoothdown: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_SAWTOOTHDOWN"
		end

	frozen sdl_haptic_sawtoothup: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_SAWTOOTHUP"
		end

	frozen sdl_haptic_sine: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_SINE"
		end

	frozen sdl_haptic_spherical: NATURAL_8
		external
			"C [macro <SDL.h>] : Uint8"
		alias
			"SDL_HAPTIC_SPHERICAL"
		end

	frozen sdl_haptic_spring: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_SPRING"
		end

	frozen sdl_haptic_status: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_STATUS"
		end

	frozen sdl_haptic_triangle: NATURAL_32
		external
			"C [macro <SDL.h>] : unsigned int"
		alias
			"SDL_HAPTIC_TRIANGLE"
		end

	frozen sdl_hat_centered: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_HAT_CENTERED"
		end

	frozen sdl_hat_down: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_HAT_DOWN"
		end

	frozen sdl_hat_left: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_HAT_LEFT"
		end

	frozen sdl_hat_leftdown: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_HAT_LEFTDOWN"
		end

	frozen sdl_hat_leftup: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_HAT_LEFTUP"
		end

	frozen sdl_hat_right: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_HAT_RIGHT"
		end

	frozen sdl_hat_rightdown: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_HAT_RIGHTDOWN"
		end

	frozen sdl_hat_rightup: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_HAT_RIGHTUP"
		end

	frozen sdl_hat_up: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_HAT_UP"
		end

	frozen sdl_init_audio: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_INIT_AUDIO"
		end

	frozen sdl_init_events: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_INIT_EVENTS"
		end

	frozen sdl_init_everything: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_INIT_EVERYTHING"
		end

	frozen sdl_init_gamecontroller: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_INIT_GAMECONTROLLER"
		end

	frozen sdl_init_haptic: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_INIT_HAPTIC"
		end

	frozen sdl_init_joystick: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_INIT_JOYSTICK"
		end

	frozen sdl_init_noparachute: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_INIT_NOPARACHUTE"
		end

	frozen sdl_init_timer: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_INIT_TIMER"
		end

	frozen sdl_init_video: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_INIT_VIDEO"
		end

	frozen sdl_joyaxismotion: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_JOYAXISMOTION"
		end

	frozen sdl_joyballmotion: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_JOYBALLMOTION"
		end

	frozen sdl_joybuttondown: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_JOYBUTTONDOWN"
		end

	frozen sdl_joybuttonup: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_JOYBUTTONUP"
		end

	frozen sdl_joydeviceadded: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_JOYDEVICEADDED"
		end

	frozen sdl_joydeviceremoved: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_JOYDEVICEREMOVED"
		end

	frozen sdl_joyhatmotion: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_JOYHATMOTION"
		end

	frozen sdl_keydown: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_KEYDOWN"
		end

	frozen sdl_keyup: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_KEYUP"
		end

	frozen sdl_mousebuttondown: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_MOUSEBUTTONDOWN"
		end

	frozen sdl_mousebuttonup: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_MOUSEBUTTONUP"
		end

	frozen sdl_mousemotion: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_MOUSEMOTION"
		end

	frozen sdl_mousewheel: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_MOUSEWHEEL"
		end

	frozen sdl_multigesture: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_MULTIGESTURE"
		end

	frozen sdl_packedlayout_1010102: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDLAYOUT_1010102"
		end

	frozen sdl_packedlayout_1555: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDLAYOUT_1555"
		end

	frozen sdl_packedlayout_2101010: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDLAYOUT_2101010"
		end

	frozen sdl_packedlayout_332: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDLAYOUT_332"
		end

	frozen sdl_packedlayout_4444: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDLAYOUT_4444"
		end

	frozen sdl_packedlayout_5551: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDLAYOUT_5551"
		end

	frozen sdl_packedlayout_565: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDLAYOUT_565"
		end

	frozen sdl_packedlayout_8888: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDLAYOUT_8888"
		end

	frozen sdl_packedlayout_none: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDLAYOUT_NONE"
		end

	frozen sdl_packedorder_abgr: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDORDER_ABGR"
		end

	frozen sdl_packedorder_argb: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDORDER_ARGB"
		end

	frozen sdl_packedorder_bgra: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDORDER_BGRA"
		end

	frozen sdl_packedorder_bgrx: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDORDER_BGRX"
		end

	frozen sdl_packedorder_none: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDORDER_NONE"
		end

	frozen sdl_packedorder_rgba: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDORDER_RGBA"
		end

	frozen sdl_packedorder_rgbx: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDORDER_RGBX"
		end

	frozen sdl_packedorder_xbgr: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDORDER_XBGR"
		end

	frozen sdl_packedorder_xrgb: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PACKEDORDER_XRGB"
		end

	frozen sdl_pixelformat_abgr1555: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_ABGR1555"
		end

	frozen sdl_pixelformat_abgr4444: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_ABGR4444"
		end

	frozen sdl_pixelformat_abgr8888: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_ABGR8888"
		end

	frozen sdl_pixelformat_argb1555: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_ARGB1555"
		end

	frozen sdl_pixelformat_argb2101010: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_ARGB2101010"
		end

	frozen sdl_pixelformat_argb4444: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_ARGB4444"
		end

	frozen sdl_pixelformat_argb8888: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_ARGB8888"
		end

	frozen sdl_pixelformat_bgr24: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_BGR24"
		end

	frozen sdl_pixelformat_bgr555: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_BGR555"
		end

	frozen sdl_pixelformat_bgr565: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_BGR565"
		end

	frozen sdl_pixelformat_bgr888: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_BGR888"
		end

	frozen sdl_pixelformat_bgra4444: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_BGRA4444"
		end

	frozen sdl_pixelformat_bgra5551: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_BGRA5551"
		end

	frozen sdl_pixelformat_bgra8888: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_BGRA8888"
		end

	frozen sdl_pixelformat_bgrx8888: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_BGRX8888"
		end

	frozen sdl_pixelformat_index1lsb: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_INDEX1LSB"
		end

	frozen sdl_pixelformat_index1msb: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_INDEX1MSB"
		end

	frozen sdl_pixelformat_index4lsb: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_INDEX4LSB"
		end

	frozen sdl_pixelformat_index4msb: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_INDEX4MSB"
		end

	frozen sdl_pixelformat_index8: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_INDEX8"
		end

	frozen sdl_pixelformat_iyuv: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_IYUV"
		end

	frozen sdl_pixelformat_rgb24: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_RGB24"
		end

	frozen sdl_pixelformat_rgb332: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_RGB332"
		end

	frozen sdl_pixelformat_rgb444: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_RGB444"
		end

	frozen sdl_pixelformat_rgb555: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_RGB555"
		end

	frozen sdl_pixelformat_rgb565: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_RGB565"
		end

	frozen sdl_pixelformat_rgb888: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_RGB888"
		end

	frozen sdl_pixelformat_rgba4444: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_RGBA4444"
		end

	frozen sdl_pixelformat_rgba5551: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_RGBA5551"
		end

	frozen sdl_pixelformat_rgba8888: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_RGBA8888"
		end

	frozen sdl_pixelformat_rgbx8888: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_RGBX8888"
		end

	frozen sdl_pixelformat_unknown: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_UNKNOWN"
		end

	frozen sdl_pixelformat_uyvy: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_UYVY"
		end

	frozen sdl_pixelformat_yuy2: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_YUY2"
		end

	frozen sdl_pixelformat_yv12: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_YV12"
		end

	frozen sdl_pixelformat_yvyu: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_PIXELFORMAT_YVYU"
		end

	frozen sdl_pixeltype_arrayf16: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PIXELTYPE_ARRAYF16"
		end

	frozen sdl_pixeltype_arrayf32: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PIXELTYPE_ARRAYF32"
		end

	frozen sdl_pixeltype_arrayu16: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PIXELTYPE_ARRAYU16"
		end

	frozen sdl_pixeltype_arrayu32: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PIXELTYPE_ARRAYU32"
		end

	frozen sdl_pixeltype_arrayu8: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PIXELTYPE_ARRAYU8"
		end

	frozen sdl_pixeltype_index1: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PIXELTYPE_INDEX1"
		end

	frozen sdl_pixeltype_index4: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PIXELTYPE_INDEX4"
		end

	frozen sdl_pixeltype_index8: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PIXELTYPE_INDEX8"
		end

	frozen sdl_pixeltype_packed16: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PIXELTYPE_PACKED16"
		end

	frozen sdl_pixeltype_packed32: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PIXELTYPE_PACKED32"
		end

	frozen sdl_pixeltype_packed8: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PIXELTYPE_PACKED8"
		end

	frozen sdl_pixeltype_unknown: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_PIXELTYPE_UNKNOWN"
		end

	frozen sdl_powerstate_charged: NATURAL_32
		external
			"C [macro <SDL.h>] : SDL_PowerState"
		alias
			"SDL_POWERSTATE_CHARGED"
		end

	frozen sdl_powerstate_charging: NATURAL_32
		external
			"C [macro <SDL.h>] : SDL_PowerState"
		alias
			"SDL_POWERSTATE_CHARGING"
		end

	frozen sdl_powerstate_no_battery: NATURAL_32
		external
			"C [macro <SDL.h>] : SDL_PowerState"
		alias
			"SDL_POWERSTATE_NO_BATTERY"
		end

	frozen sdl_powerstate_on_battery: NATURAL_32
		external
			"C [macro <SDL.h>] : SDL_PowerState"
		alias
			"SDL_POWERSTATE_ON_BATTERY"
		end

	frozen sdl_powerstate_unknown: NATURAL_32
		external
			"C [macro <SDL.h>] : SDL_PowerState"
		alias
			"SDL_POWERSTATE_UNKNOWN"
		end

	frozen sdl_query: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_QUERY"
		end

	frozen sdl_quit: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_QUIT"
		end

	frozen sdl_renderer_accelerated: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_RENDERER_ACCELERATED"
		end

	frozen sdl_renderer_presentvsync: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_RENDERER_PRESENTVSYNC"
		end

	frozen sdl_renderer_software: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_RENDERER_SOFTWARE"
		end

	frozen sdl_renderer_targettexture: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_RENDERER_TARGETTEXTURE"
		end

	frozen sdl_system_cursor_arrow: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_SYSTEM_CURSOR_ARROW"
		end

	frozen sdl_system_cursor_crosshair: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_SYSTEM_CURSOR_CROSSHAIR"
		end

	frozen sdl_system_cursor_hand: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_SYSTEM_CURSOR_HAND"
		end

	frozen sdl_system_cursor_ibeam: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_SYSTEM_CURSOR_IBEAM"
		end

	frozen sdl_system_cursor_no: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_SYSTEM_CURSOR_NO"
		end

	frozen sdl_system_cursor_sizeall: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_SYSTEM_CURSOR_SIZEALL"
		end

	frozen sdl_system_cursor_sizenesw: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_SYSTEM_CURSOR_SIZENESW"
		end

	frozen sdl_system_cursor_sizens: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_SYSTEM_CURSOR_SIZENS"
		end

	frozen sdl_system_cursor_sizenwse: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_SYSTEM_CURSOR_SIZENWSE"
		end

	frozen sdl_system_cursor_sizewe: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_SYSTEM_CURSOR_SIZEWE"
		end

	frozen sdl_system_cursor_wait: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_SYSTEM_CURSOR_WAIT"
		end

	frozen sdl_system_cursor_waitarrow: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_SYSTEM_CURSOR_WAITARROW"
		end

	frozen sdl_syswm_cocoa: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_SYSWM_COCOA"
		end

	frozen sdl_syswm_directfb: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_SYSWM_DIRECTFB"
		end

	frozen sdl_syswm_uikit: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_SYSWM_UIKIT"
		end

	frozen sdl_syswm_unknown: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_SYSWM_UNKNOWN"
		end

	frozen sdl_syswm_windows: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_SYSWM_WINDOWS"
		end

	frozen sdl_syswm_x11: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_SYSWM_X11"
		end

	frozen sdl_textediting: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_TEXTEDITING"
		end

	frozen sdl_textinput: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_TEXTINPUT"
		end

	frozen sdl_textureaccess_static: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_TEXTUREACCESS_STATIC"
		end

	frozen sdl_textureaccess_streaming: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_TEXTUREACCESS_STREAMING"
		end

	frozen sdl_textureaccess_target: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_TEXTUREACCESS_TARGET"
		end

	frozen sdl_touch_mouseid: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_TOUCH_MOUSEID"
		end

	frozen sdl_true: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_TRUE"
		end

	frozen sdl_window_borderless: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_WINDOW_BORDERLESS"
		end

	frozen sdl_window_foreign: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_WINDOW_FOREIGN"
		end

	frozen sdl_window_fullscreen: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_WINDOW_FULLSCREEN"
		end

	frozen sdl_window_fullscreen_desktop: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_WINDOW_FULLSCREEN_DESKTOP"
		end

	frozen sdl_window_hidden: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_WINDOW_HIDDEN"
		end

	frozen sdl_window_input_focus: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_WINDOW_INPUT_FOCUS"
		end

	frozen sdl_window_input_grabbed: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_WINDOW_INPUT_GRABBED"
		end

	frozen sdl_window_maximized: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_WINDOW_MAXIMIZED"
		end

	frozen sdl_window_minimized: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_WINDOW_MINIMIZED"
		end

	frozen sdl_window_mouse_focus: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_WINDOW_MOUSE_FOCUS"
		end

	frozen sdl_window_opengl: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_WINDOW_OPENGL"
		end

	frozen sdl_window_resizable: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_WINDOW_RESIZABLE"
		end

	frozen sdl_window_shown: NATURAL_32
		external
			"C [macro <SDL.h>] : Uint32"
		alias
			"SDL_WINDOW_SHOWN"
		end

	frozen sdl_windowevent: NATURAL_32
		external
			"C [macro <SDL.h>] : EIF_NATURAL_32"
		alias
			"SDL_WINDOWEVENT"
		end

	frozen sdl_windowevent_close: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_CLOSE"
		end

	frozen sdl_windowevent_enter: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_ENTER"
		end

	frozen sdl_windowevent_exposed: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_EXPOSED"
		end

	frozen sdl_windowevent_focus_gained: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_FOCUS_GAINED"
		end

	frozen sdl_windowevent_focus_lost: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_FOCUS_LOST"
		end

	frozen sdl_windowevent_hidden: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_HIDDEN"
		end

	frozen sdl_windowevent_leave: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_LEAVE"
		end

	frozen sdl_windowevent_maximized: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_MAXIMIZED"
		end

	frozen sdl_windowevent_minimized: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_MINIMIZED"
		end

	frozen sdl_windowevent_moved: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_MOVED"
		end

	frozen sdl_windowevent_resized: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_RESIZED"
		end

	frozen sdl_windowevent_restored: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_RESTORED"
		end

	frozen sdl_windowevent_shown: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_SHOWN"
		end

	frozen sdl_windowevent_size_changed: NATURAL_8
		external
			"C [macro <SDL.h>] : EIF_NATURAL_8"
		alias
			"SDL_WINDOWEVENT_SIZE_CHANGED"
		end

	frozen sdl_windowpos_centered: INTEGER_32
		external
			"C [macro <SDL.h>] : int"
		alias
			"SDL_WINDOWPOS_CENTERED"
		end
	
feature -- Function SDL.h

	frozen c_sdl_joystickgetdeviceguidstring (deviceindex: INTEGER_32; pszguid: POINTER; cbguid: INTEGER_32)
		external
			"C inline use <SDL.h>"
		alias
			"[
				SDL_JoystickGUID guid = SDL_JoystickGetDeviceGUID((int)$deviceindex);
				SDL_JoystickGetGUIDString(guid, (char*)$pszguid, (int)$cbguid);
			]"
		end

	frozen c_sdl_joystickgetguidstring (joystick, pszguid: POINTER; cbguid: INTEGER_32)
		external
			"C inline use <SDL.h>"
		alias
			"[
				SDL_JoystickGUID guid = SDL_JoystickGetGUID((SDL_Joystick*)$joystick);
				SDL_JoystickGetGUIDString(guid, (char*)$pszguid, (int)$cbguid);
			]"
		end

	frozen sdl_allocformat (pixel_format: NATURAL_32): POINTER
		external
			"C (Uint32) :SDL_PixelFormat* | <SDL.h>"
		alias
			"SDL_AllocFormat"
		end

	frozen sdl_allocpalette (ncolors: INTEGER_32): POINTER
		external
			"C (int) : SDL_Palette* | <SDL.h>"
		alias
			"SDL_AllocPalette"
		end

	frozen sdl_allocrw: POINTER
		external
			"C :SDL_RWops* | <SDL.h>"
		alias
			"SDL_AllocRW"
		end

	frozen sdl_bitsperpixel (format: NATURAL_32): INTEGER_32
		external
			"C [macro <SDL.h>] (Uint32) : int"
		alias
			"SDL_BITSPERPIXEL"
		end

	frozen sdl_blitscaled (src, srcrect, dst, dstrect: POINTER): INTEGER_32
		external
			"C (SDL_Surface*, const SDL_Rect*, SDL_Surface*, SDL_Rect*) : int | <SDL.h>"
		alias
			"SDL_BlitScaled"
		end

	frozen sdl_blitsurface (src, srcrect, dst, dstrect: POINTER): INTEGER_32
		external
			"C (SDL_Surface*, const SDL_Rect*, SDL_Surface*, SDL_Rect*) :int | <SDL.h>"
		alias
			"SDL_BlitSurface"
		end

	frozen sdl_bytesperpixel (format: NATURAL_32): INTEGER_32
		external
			"C [macro <SDL.h>] (Uint32) : int"
		alias
			"SDL_BYTESPERPIXEL"
		end

	frozen sdl_clearerror
		external
			"C | <SDL.h>"
		alias
			"SDL_ClearError"
		end

	frozen sdl_convertsurface (src, fmt: POINTER; flags: NATURAL_32): POINTER
		external
			"C (SDL_Surface*, const SDL_PixelFormat*, Uint32) :SDL_Surface* | <SDL.h>"
		alias
			"SDL_ConvertSurface"
		end

	frozen sdl_convertsurfaceformat (src: POINTER; pixel_format, flags: NATURAL_32): POINTER
		external
			"C (SDL_Surface*, Uint32, Uint32) :SDL_Surface* | <SDL.h>"
		alias
			"SDL_ConvertSurfaceFormat"
		end

	frozen sdl_createcolorcursor (surface: POINTER; hot_x, hot_y: INTEGER_32): POINTER
		external
			"C (SDL_Surface*, int, int) : SDL_Cursor* | <SDL.h>"
		alias
			"SDL_CreateColorCursor"
		end

	frozen sdl_createrenderer (window: POINTER; index: INTEGER_32; flags: NATURAL_32): POINTER
		external
			"C (SDL_Window*, int, Uint32) : SDL_Renderer* | <SDL.h>"
		alias
			"SDL_CreateRenderer"
		end

	frozen sdl_creatergbsurface (flags: NATURAL_32; width, height, depth: INTEGER_32; rmask, gmask, bmask, amask: NATURAL_32): POINTER
		external
			"C (Uint32,int,int,int,Uint32,Uint32,Uint32,Uint32) :SDL_Surface* | <SDL.h>"
		alias
			"SDL_CreateRGBSurface"
		end

	frozen sdl_createsystemcursor (id: INTEGER_32): POINTER
		external
			"C (SDL_SystemCursor) : SDL_Cursor* | <SDL.h>"
		alias
			"SDL_CreateSystemCursor"
		end

	frozen sdl_createtexture (renderer: POINTER; format: NATURAL_32; access, w, h: INTEGER_32): POINTER
		external
			"C (SDL_Renderer*, Uint32, int, int, int) : SDL_Texture* | <SDL.h>"
		alias
			"SDL_CreateTexture"
		end

	frozen sdl_createtexturefromsurface (renderer, surface: POINTER): POINTER
		external
			"C (SDL_Renderer*, SDL_Surface*) : SDL_Texture* | <SDL.h>"
		alias
			"SDL_CreateTextureFromSurface"
		end

	frozen sdl_createwindow (title: POINTER; x, y, w, h: INTEGER_32; flags: NATURAL_32): POINTER
		external
			"C (const char*, int, int, int, int, Uint32) : SDL_Window* | <SDL.h>"
		alias
			"SDL_CreateWindow"
		end

	frozen sdl_delay (ms: NATURAL_32)
		external
			"C (Uint32) | <SDL.h>"
		alias
			"SDL_Delay"
		end

	frozen sdl_destroyrenderer (renderer: POINTER)
		external
			"C (SDL_Renderer*) | <SDL.h>"
		alias
			"SDL_DestroyRenderer"
		end

	frozen sdl_destroytexture (texture: POINTER)
		external
			"C (SDL_Texture*) | <SDL.h>"
		alias
			"SDL_DestroyTexture"
		end

	frozen sdl_destroywindow (window: POINTER)
		external
			"C (SDL_Window*) | <SDL.h>"
		alias
			"SDL_DestroyWindow"
		end

	frozen sdl_eventstate (type: NATURAL_32; state: INTEGER_32): NATURAL_8
		external
			"C (Uint32, int) : Uint8 | <SDL.h>"
		alias
			"SDL_EventState"
		end

	frozen sdl_fillrect (dst, rect: POINTER; collor: NATURAL_32): INTEGER_32
		external
			"C (SDL_Surface*, const SDL_Rect*, Uint32) :int | <SDL.h>"
		alias
			"SDL_FillRect"
		end

	frozen sdl_fillrects (dst, rects: POINTER; count: INTEGER_32; collor: NATURAL_32): INTEGER_32
		external
			"C (SDL_Surface*, const SDL_Rect*, int, Uint32) :int | <SDL.h>"
		alias
			"SDL_FillRects"
		end

	frozen sdl_free (mem: POINTER)
		external
			"C (void *) | <SDL.h>"
		alias
			"SDL_free"
		end

	frozen sdl_freecursor (cursor: POINTER)
		external
			"C (SDL_Cursor*) | <SDL.h>"
		alias
			"SDL_FreeCursor"
		end

	frozen sdl_freeformat (format: POINTER)
		external
			"C (SDL_PixelFormat*) | <SDL.h>"
		alias
			"SDL_FreeFormat"
		end

	frozen sdl_freepalette (palette: POINTER)
		external
			"C (SDL_Palette*) | <SDL.h>"
		alias
			"SDL_FreePalette"
		end

	frozen sdl_freerw (area: POINTER)
		external
			"C (SDL_RWops*) | <SDL.h>"
		alias
			"SDL_FreeRW"
		end

	frozen sdl_freesurface (surface: POINTER)
		external
			"C (SDL_Surface*) | <SDL.h>"
		alias
			"SDL_FreeSurface"
		end

	frozen sdl_getbasepath: POINTER
		external
			"C : char * | <SDL.h>"
		alias
			"SDL_GetBasePath"
		end

	frozen sdl_getclipboardtext: POINTER
		external
			"C : char* | <SDL.h>"
		alias
			"SDL_GetClipboardText"
		end

	frozen sdl_getclosestdisplaymode (displayindex: INTEGER_32; mode, closest: POINTER): POINTER
		external
			"C (int, const SDL_DisplayMode*, SDL_DisplayMode*) :SDL_DisplayMode* | <SDL.h>"
		alias
			"SDL_GetClosestDisplayMode"
		end

	frozen sdl_getcolorkey (surface, key: POINTER): INTEGER_32
		external
			"C (SDL_Surface*, Uint32*) : int | <SDL.h>"
		alias
			"SDL_GetColorKey"
		end

	frozen sdl_getcurrentdisplaymode (displayindex: INTEGER_32; mode: POINTER): INTEGER_32
		external
			"C (int, SDL_DisplayMode*) :int | <SDL.h>"
		alias
			"SDL_GetCurrentDisplayMode"
		end

	frozen sdl_getcursor: POINTER
		external
			"C : SDL_Cursor* | <SDL.h>"
		alias
			"SDL_GetCursor"
		end

	frozen sdl_getdefaultcursor: POINTER
		external
			"C : SDL_Cursor* | <SDL.h>"
		alias
			"SDL_GetDefaultCursor"
		end

	frozen sdl_getdesktopdisplaymode (displayindex: INTEGER_32; mode: POINTER): INTEGER_32
		external
			"C (int, SDL_DisplayMode*) :int | <SDL.h>"
		alias
			"SDL_GetDesktopDisplayMode"
		end

	frozen sdl_getdisplaybounds (displayindex: INTEGER_32; rect: POINTER): INTEGER_32
		external
			"C (int, SDL_Rect*) :int | <SDL.h>"
		alias
			"SDL_GetDisplayBounds"
		end

	frozen sdl_getdisplaymode (displayindex, modeindex: INTEGER_32; mode: POINTER): INTEGER_32
		external
			"C (int, int, SDL_DisplayMode*) :int | <SDL.h>"
		alias
			"SDL_GetDisplayMode"
		end

	frozen sdl_getdisplayname (displayindex: INTEGER_32): POINTER
		external
			"C (int) :const char* | <SDL.h>"
		alias
			"SDL_GetDisplayName"
		end

	frozen sdl_getenv (name: POINTER): POINTER
		external
			"C (const char *) : char * | <SDL.h>"
		alias
			"SDL_getenv"
		end

	frozen sdl_geterror: POINTER
		external
			"C : const char* | <SDL.h>"
		alias
			"SDL_GetError"
		end

	frozen sdl_getmousestate (x, y: POINTER): NATURAL_32
		external
			"C (int*, int*) : Uint32 | <SDL.h>"
		alias
			"SDL_GetMouseState"
		end

	frozen sdl_getnumdisplaymodes (displayindex: INTEGER_32): INTEGER_32
		external
			"C (int) :int | <SDL.h>"
		alias
			"SDL_GetNumDisplayModes"
		end

	frozen sdl_getnumrenderdrivers: INTEGER_32
		external
			"C : int | <SDL.h>"
		alias
			"SDL_GetNumRenderDrivers"
		end

	frozen sdl_getnumtouchdevices: INTEGER_32
		external
			"C  : int | <SDL.h>"
		alias
			"SDL_GetNumTouchDevices"
		end

	frozen sdl_getnumtouchfingers (touchid: INTEGER_64): INTEGER_32
		external
			"C (SDL_TouchID) : int | <SDL.h>"
		alias
			"SDL_GetNumTouchFingers"
		end

	frozen sdl_getnumvideodisplays: INTEGER_32
		external
			"C : int | <SDL.h>"
		alias
			"SDL_GetNumVideoDisplays"
		end

	frozen sdl_getpowerinfo (secs, pct: POINTER): NATURAL_32
		external
			"C (int*, int*) : SDL_PowerState | <SDL.h>"
		alias
			"SDL_GetPowerInfo"
		end

	frozen sdl_getprefpath (org, app: POINTER): POINTER
		external
			"C (const char*, const char*) : char * | <SDL.h>"
		alias
			"SDL_GetPrefPath"
		end

	frozen sdl_getrelativemousemode: BOOLEAN
		external
			"C : SDL_bool | <SDL.h>"
		alias
			"SDL_GetRelativeMouseMode"
		end

	frozen sdl_getrenderdrawblendmode (renderer, blendmode: POINTER): INTEGER_32
		external
			"C (SDL_Renderer*, SDL_BlendMode*) : int | <SDL.h>"
		alias
			"SDL_GetRenderDrawBlendMode"
		end

	frozen sdl_getrenderdrawcolor (renderer, r, g, b, a: POINTER): INTEGER_32
		external
			"C (SDL_Renderer*, Uint8*, Uint8*, Uint8*, Uint8*) : int | <SDL.h>"
		alias
			"SDL_GetRenderDrawColor"
		end

	frozen sdl_getrenderdriverinfo (index: INTEGER_32; info: POINTER): INTEGER_32
		external
			"C (int, SDL_RendererInfo*) : int | <SDL.h>"
		alias
			"SDL_GetRenderDriverInfo"
		end

	frozen sdl_getrenderer (window: POINTER): POINTER
		external
			"C (SDL_Window*) : SDL_Renderer* | <SDL.h>"
		alias
			"SDL_GetRenderer"
		end

	frozen sdl_getrendererinfo (renderer, info: POINTER): INTEGER_32
		external
			"C (SDL_Renderer*, SDL_RendererInfo*) : int | <SDL.h>"
		alias
			"SDL_GetRendererInfo"
		end

	frozen sdl_getrendereroutputsize (renderer, w, h: POINTER): INTEGER_32
		external
			"C (SDL_Renderer*, int*, int*) : int | <SDL.h>"
		alias
			"SDL_GetRendererOutputSize"
		end

	frozen sdl_getrgba (pixel: NATURAL_32; format, r, g, b, a: POINTER)
		external
			"C (Uint32, const SDL_PixelFormat*, Uint8*, Uint8*, Uint8*, Uint8*) | <SDL.h>"
		alias
			"SDL_GetRGBA"
		end

	frozen sdl_getsurfacealphamod (surface, alpha: POINTER): INTEGER_32
		external
			"C (SDL_Surface*, Uint8*) : int | <SDL.h>"
		alias
			"SDL_GetSurfaceAlphaMod"
		end

	frozen sdl_getsurfaceblendmode (surface, blendmode: POINTER): INTEGER_32
		external
			"C (SDL_Surface*, SDL_BlendMode*) : int | <SDL.h>"
		alias
			"SDL_GetSurfaceBlendMode"
		end

	frozen sdl_getsurfacecolormod (surface, r, g, b: POINTER): INTEGER_32
		external
			"C (SDL_Surface*, Uint8*, Uint8*, Uint8*) : int | <SDL.h>"
		alias
			"SDL_GetSurfaceColorMod"
		end

	frozen sdl_gettexturealphamod (texture, alpha: POINTER): INTEGER_32
		external
			"C (SDL_Texture*, Uint8*) : int | <SDL.h>"
		alias
			"SDL_GetTextureAlphaMod"
		end

	frozen sdl_gettextureblendmode (texture, blendmode: POINTER): INTEGER_32
		external
			"C (SDL_Texture*, SDL_BlendMode*) : int | <SDL.h>"
		alias
			"SDL_GetTextureBlendMode"
		end

	frozen sdl_gettexturecolormod (texture, r, g, b: POINTER): INTEGER_32
		external
			"C (SDL_Texture*, Uint8*, Uint8*, Uint8*) : int | <SDL.h>"
		alias
			"SDL_GetTextureColorMod"
		end

	frozen sdl_getticks: NATURAL_32
		external
			"C :Uint32 | <SDL.h>"
		alias
			"SDL_GetTicks"
		end

	frozen sdl_gettouchdevice (index: INTEGER_32): INTEGER_64
		external
			"C (int) : SDL_TouchID | <SDL.h>"
		alias
			"SDL_GetTouchDevice"
		end

	frozen sdl_gettouchfinger (touchid: INTEGER_64; index: INTEGER_32): POINTER
		external
			"C (SDL_TouchID, int) : SDL_Finger * | <SDL.h>"
		alias
			"SDL_GetTouchFinger"
		end

	frozen sdl_getwindowbrightness (window: POINTER): REAL_32
		external
			"C (SDL_Window*) : float | <SDL.h>"
		alias
			"SDL_GetWindowBrightness"
		end

	frozen sdl_getwindowdisplayindex (window: POINTER): INTEGER_32
		external
			"C (SDL_Window*) : int | <SDL.h>"
		alias
			"SDL_GetWindowDisplayIndex"
		end

	frozen sdl_getwindowdisplaymode (window, mode: POINTER): INTEGER_32
		external
			"C (SDL_Window*, SDL_DisplayMode*) : int | <SDL.h>"
		alias
			"SDL_GetWindowDisplayMode"
		end

	frozen sdl_getwindowflags (window: POINTER): NATURAL_32
		external
			"C (SDL_Window*) : Uint32 | <SDL.h>"
		alias
			"SDL_GetWindowFlags"
		end

	frozen sdl_getwindowgammaramp (window, red, green, blue: POINTER): INTEGER_32
		external
			"C (SDL_Window*, Uint16*, Uint16*, Uint16*) : int | <SDL.h>"
		alias
			"SDL_GetWindowGammaRamp"
		end

	frozen sdl_getwindowgrab (window: POINTER): BOOLEAN
		external
			"C (SDL_Window*) : SDL_bool | <SDL.h>"
		alias
			"SDL_GetWindowGrab"
		end

	frozen sdl_getwindowid (window: POINTER): NATURAL_32
		external
			"C (SDL_Window*) : Uint32 | <SDL.h>"
		alias
			"SDL_GetWindowID"
		end

	frozen sdl_getwindowmaximumsize (window, w, h: POINTER)
		external
			"C (SDL_Window*, int*, int*) | <SDL.h>"
		alias
			"SDL_GetWindowMaximumSize"
		end

	frozen sdl_getwindowminimumsize (window, w, h: POINTER)
		external
			"C (SDL_Window*, int*, int*) | <SDL.h>"
		alias
			"SDL_GetWindowMinimumSize"
		end

	frozen sdl_getwindowpixelformat (window: POINTER): NATURAL_32
		external
			"C (SDL_Window*) :Uint32 | <SDL.h>"
		alias
			"SDL_GetWindowPixelFormat"
		end

	frozen sdl_getwindowposition (window, x, y: POINTER)
		external
			"C (SDL_Window*, int*, int*) | <SDL.h>"
		alias
			"SDL_GetWindowPosition"
		end

	frozen sdl_getwindowsize (window, w, h: POINTER)
		external
			"C (SDL_Window*, int*, int*) | <SDL.h>"
		alias
			"SDL_GetWindowSize"
		end

	frozen sdl_getwindowsurface (window: POINTER): POINTER
		external
			"C (SDL_Window*) : SDL_Surface* | <SDL.h>"
		alias
			"SDL_GetWindowSurface"
		end

	frozen sdl_getwindowtitle (window: POINTER): POINTER
		external
			"C (SDL_Window*): const char* | <SDL.h>"
		alias
			"SDL_GetWindowTitle"
		end

	frozen sdl_getwindowwminfo (window, info: POINTER): BOOLEAN
		external
			"C (SDL_Window*, SDL_SysWMinfo*) :SDL_bool | <SDL_syswm.h>"
		alias
			"SDL_GetWindowWMInfo"
		end

	frozen sdl_gl_createcontext (a_window: POINTER): POINTER
		external
			"C (SDL_Window*) : SDL_GLContext | <SDL.h>"
		alias
			"SDL_GL_CreateContext"
		end

	frozen sdl_gl_deletecontext (a_context: POINTER)
		external
			"C (SDL_GLContext) | <SDL.h>"
		alias
			"SDL_GL_DeleteContext"
		end

	frozen sdl_gl_getattribute (a_attr: INTEGER_32; a_value: POINTER): INTEGER_32
		external
			"C (SDL_GLattr, int *) : int | <SDL.h>"
		alias
			"SDL_GL_GetAttribute"
		end

	frozen sdl_gl_getdrawablesize (a_window, a_width, a_height: POINTER)
		external
			"C (SDL_Window*, int *, int *) | <SDL.h>"
		alias
			"SDL_GL_GetDrawableSize"
		end

	frozen sdl_gl_getswapinterval: INTEGER_32
		external
			"C : int | <SDL.h>"
		alias
			"SDL_GL_GetSwapInterval"
		end

	frozen sdl_gl_loadlibrary (a_path: POINTER): INTEGER_32
		external
			"C (char *) : int | <SDL.h>"
		alias
			"SDL_GL_LoadLibrary"
		end

	frozen sdl_gl_resetattributes
		external
			"C | <SDL.h>"
		alias
			"SDL_GL_ResetAttributes"
		end

	frozen sdl_gl_setattribute (a_attr, a_value: INTEGER_32): INTEGER_32
		external
			"C (SDL_GLattr, int) : int | <SDL.h>"
		alias
			"SDL_GL_SetAttribute"
		end

	frozen sdl_gl_setswapinterval (a_interval: INTEGER_32): INTEGER_32
		external
			"C (int) : int | <SDL.h>"
		alias
			"SDL_GL_SetSwapInterval"
		end

	frozen sdl_gl_swapwindow (a_window: POINTER)
		external
			"C (SDL_Window*) | <SDL.h>"
		alias
			"SDL_GL_SwapWindow"
		end

	frozen sdl_gl_unloadlibrary
		external
			"C | <SDL.h>"
		alias
			"SDL_GL_UnloadLibrary"
		end

	frozen sdl_hapticclose (haptic: POINTER)
		external
			"C (SDL_Haptic*) | <SDL.h>"
		alias
			"SDL_HapticClose"
		end

	frozen sdl_hapticdestroyeffect (hapti: POINTER; effect: INTEGER_32)
		external
			"C (SDL_Haptic*, int) | <SDL.h>"
		alias
			"SDL_HapticDestroyEffect"
		end

	frozen sdl_hapticeffectsupported (haptic, effect: POINTER): INTEGER_32
		external
			"C (SDL_Haptic*, SDL_HapticEffect*) : int | <SDL.h>"
		alias
			"SDL_HapticEffectSupported"
		end

	frozen sdl_hapticgeteffectstatus (hapti: POINTER; effect: INTEGER_32): INTEGER_32
		external
			"C (SDL_Haptic*, int) : int | <SDL.h>"
		alias
			"SDL_HapticGetEffectStatus"
		end

	frozen sdl_hapticname (device_index: INTEGER_32): POINTER
		external
			"C (int) : const char* | <SDL.h>"
		alias
			"SDL_HapticName"
		end

	frozen sdl_hapticneweffect (haptic, effect: POINTER): INTEGER_32
		external
			"C (SDL_Haptic*, SDL_HapticEffect*) : int | <SDL.h>"
		alias
			"SDL_HapticNewEffect"
		end

	frozen sdl_hapticnumaxes (haptic: POINTER): INTEGER_32
		external
			"C (SDL_Haptic*) : int | <SDL.h>"
		alias
			"SDL_HapticNumAxes"
		end

	frozen sdl_hapticnumeffects (haptic: POINTER): INTEGER_32
		external
			"C (SDL_Haptic*) : int | <SDL.h>"
		alias
			"SDL_HapticNumEffects"
		end

	frozen sdl_hapticnumeffectsplaying (haptic: POINTER): INTEGER_32
		external
			"C (SDL_Haptic*) : int | <SDL.h>"
		alias
			"SDL_HapticNumEffectsPlaying"
		end

	frozen sdl_hapticopen (device_index: INTEGER_32): POINTER
		external
			"C (int) : SDL_Haptic* | <SDL.h>"
		alias
			"SDL_HapticOpen"
		end

	frozen sdl_hapticopened (device_index: INTEGER_32): BOOLEAN
		external
			"C (int) : int | <SDL.h>"
		alias
			"SDL_HapticOpened"
		end

	frozen sdl_hapticopenfromjoystick (joystick: POINTER): POINTER
		external
			"C (SDL_Joystick*) : SDL_Haptic* | <SDL.h>"
		alias
			"SDL_HapticOpenFromJoystick"
		end

	frozen sdl_hapticopenfrommouse: POINTER
		external
			"C : SDL_Haptic* | <SDL.h>"
		alias
			"SDL_HapticOpenFromMouse"
		end

	frozen sdl_hapticpause (haptic: POINTER): INTEGER_32
		external
			"C (SDL_Haptic*) : int | <SDL.h>"
		alias
			"SDL_HapticPause"
		end

	frozen sdl_hapticquery (haptic: POINTER): NATURAL_32
		external
			"C (SDL_Haptic*) : unsigned int | <SDL.h>"
		alias
			"SDL_HapticQuery"
		end

	frozen sdl_hapticrumbleinit (haptic: POINTER): INTEGER_32
		external
			"C (SDL_Haptic*) : int | <SDL.h>"
		alias
			"SDL_HapticRumbleInit"
		end

	frozen sdl_hapticrumbleplay (haptic: POINTER; strength: REAL_32; length: NATURAL_32): INTEGER_32
		external
			"C (SDL_Haptic*, float, Uint32) : int | <SDL.h>"
		alias
			"SDL_HapticRumblePlay"
		end

	frozen sdl_hapticrumblestop (haptic: POINTER): INTEGER_32
		external
			"C (SDL_Haptic*) : int | <SDL.h>"
		alias
			"SDL_HapticRumbleStop"
		end

	frozen sdl_hapticrumblesupported (haptic: POINTER): BOOLEAN
		external
			"C (SDL_Haptic*) : int | <SDL.h>"
		alias
			"SDL_HapticRumbleSupported"
		end

	frozen sdl_hapticruneffect (hapti: POINTER; effect: INTEGER_32; iteration: NATURAL_32): INTEGER_32
		external
			"C (SDL_Haptic*, int, Uint32) : int | <SDL.h>"
		alias
			"SDL_HapticRunEffect"
		end

	frozen sdl_hapticsetgain (haptic: POINTER; gain: INTEGER_32): INTEGER_32
		external
			"C (SDL_Haptic*, int) : int | <SDL.h>"
		alias
			"SDL_HapticSetGain"
		end

	frozen sdl_hapticstopall (haptic: POINTER): INTEGER_32
		external
			"C (SDL_Haptic*) : int | <SDL.h>"
		alias
			"SDL_HapticStopAll"
		end

	frozen sdl_hapticstopeffect (hapti: POINTER; effect: INTEGER_32): INTEGER_32
		external
			"C (SDL_Haptic*, int) : int | <SDL.h>"
		alias
			"SDL_HapticStopEffect"
		end

	frozen sdl_hapticunpause (haptic: POINTER): INTEGER_32
		external
			"C (SDL_Haptic*) : int | <SDL.h>"
		alias
			"SDL_HapticUnpause"
		end

	frozen sdl_hasclipboardtext: BOOLEAN
		external
			"C : SDL_bool | <SDL.h>"
		alias
			"SDL_HasClipboardText"
		end

	frozen sdl_hidewindow (window: POINTER)
		external
			"C (SDL_Window*) | <SDL.h>"
		alias
			"SDL_HideWindow"
		end

	frozen sdl_init (flags: NATURAL_32): INTEGER_32
		external
			"C (Uint32) : int | <SDL.h>"
		alias
			"SDL_Init"
		end

	frozen sdl_initsubsystem (flags: NATURAL_32): INTEGER_32
		external
			"C (Uint32) : int | <SDL.h>"
		alias
			"SDL_InitSubSystem"
		end

	frozen sdl_ispixelformat_alpha (format: NATURAL_32): BOOLEAN
		external
			"C [macro <SDL.h>] (Uint32) : SDL_bool"
		alias
			"SDL_ISPIXELFORMAT_ALPHA"
		end

	frozen sdl_ispixelformat_fourcc (format: NATURAL_32): BOOLEAN
		external
			"C [macro <SDL.h>] (Uint32) : SDL_bool"
		alias
			"SDL_ISPIXELFORMAT_FOURCC"
		end

	frozen sdl_ispixelformat_indexed (format: NATURAL_32): BOOLEAN
		external
			"C [macro <SDL.h>] (Uint32) : SDL_bool"
		alias
			"SDL_ISPIXELFORMAT_INDEXED"
		end

	frozen sdl_istextinputactive: BOOLEAN
		external
			"C : SDL_bool | <SDL.h>"
		alias
			"SDL_IsTextInputActive"
		end

	frozen sdl_joystickclose (joystick: POINTER)
		external
			"C (SDL_Joystick*) | <SDL.h>"
		alias
			"SDL_JoystickClose"
		end

	frozen sdl_joystickeventstate (state: INTEGER_32): INTEGER_32
		external
			"C (int) : int | <SDL.h>"
		alias
			"SDL_JoystickEventState"
		end

	frozen sdl_joystickgetattached (joystick: POINTER): BOOLEAN
		external
			"C (SDL_Joystick*) : SDL_bool | <SDL.h>"
		alias
			"SDL_JoystickGetAttached"
		end

	frozen sdl_joystickgetaxis (joystick: POINTER; axis: INTEGER_32): INTEGER_16
		external
			"C (SDL_Joystick*, int) : Sint16 | <SDL.h>"
		alias
			"SDL_JoystickGetAxis"
		end

	frozen sdl_joystickgetball (joystick: POINTER; ball: INTEGER_32; dx, dy: POINTER): INTEGER_32
		external
			"C (SDL_Joystick*, int, int*, int*) : int | <SDL.h>"
		alias
			"SDL_JoystickGetBall"
		end

	frozen sdl_joystickgetbutton (joystick: POINTER; button: INTEGER_32): BOOLEAN
		external
			"C (SDL_Joystick*, int) : Uint8 | <SDL.h>"
		alias
			"SDL_JoystickGetButton"
		end

	frozen sdl_joystickgethat (joystick: POINTER; hat: INTEGER_32): NATURAL_8
		external
			"C (SDL_Joystick*, int) : Uint8 | <SDL.h>"
		alias
			"SDL_JoystickGetHat"
		end

	frozen sdl_joystickinstanceid (joystick: POINTER): INTEGER_32
		external
			"C (SDL_Joystick*) : SDL_JoystickID | <SDL.h>"
		alias
			"SDL_JoystickInstanceID"
		end

	frozen sdl_joystickishaptic (joystick: POINTER): INTEGER_32
		external
			"C (SDL_Joystick*) : int | <SDL.h>"
		alias
			"SDL_JoystickIsHaptic"
		end

	frozen sdl_joystickname (joystick: POINTER): POINTER
		external
			"C (SDL_Joystick*) : const char* | <SDL.h>"
		alias
			"SDL_JoystickName"
		end

	frozen sdl_joysticknameforindex (device_index: INTEGER_32): POINTER
		external
			"C (int) : const char* | <SDL.h>"
		alias
			"SDL_JoystickNameForIndex"
		end

	frozen sdl_joysticknumaxes (joystick: POINTER): INTEGER_32
		external
			"C (SDL_Joystick*) : int | <SDL.h>"
		alias
			"SDL_JoystickNumAxes"
		end

	frozen sdl_joysticknumballs (joystick: POINTER): INTEGER_32
		external
			"C (SDL_Joystick*) : int | <SDL.h>"
		alias
			"SDL_JoystickNumBalls"
		end

	frozen sdl_joysticknumbuttons (joystick: POINTER): INTEGER_32
		external
			"C (SDL_Joystick*) : int | <SDL.h>"
		alias
			"SDL_JoystickNumButtons"
		end

	frozen sdl_joysticknumhats (joystick: POINTER): INTEGER_32
		external
			"C (SDL_Joystick*) : int | <SDL.h>"
		alias
			"SDL_JoystickNumHats"
		end

	frozen sdl_joystickopen (device_index: INTEGER_32): POINTER
		external
			"C (int) : SDL_Joystick* | <SDL.h>"
		alias
			"SDL_JoystickOpen"
		end

	frozen sdl_joystickupdate
		external
			"C | <SDL.h>"
		alias
			"SDL_JoystickUpdate"
		end

	frozen sdl_loadbmp (file: POINTER): POINTER
		external
			"C (const char*) :SDL_Surface* | <SDL.h>"
		alias
			"SDL_LoadBMP"
		end

	frozen sdl_loadbmp_rw (src: POINTER; freesrc: INTEGER_32): POINTER
		external
			"C (SDL_RWops*,int) :SDL_Surface* | <SDL.h>"
		alias
			"SDL_LoadBMP_RW"
		end

	frozen sdl_loaddollartemplates (touchid: INTEGER_64; src: POINTER): INTEGER_32
		external
			"C (SDL_TouchID, SDL_RWops *) : int | <SDL.h>"
		alias
			"SDL_LoadDollarTemplates"
		end

	frozen sdl_locksurface (a_surface: POINTER): INTEGER_32
		external
			"C (SDL_Surface*) : int | <SDL.h>"
		alias
			"SDL_LockSurface"
		end

	frozen sdl_locktexture (texture, rect, pixels, pitch: POINTER): INTEGER_32
		external
			"C (SDL_Texture*, SDL_Rect*, void**, int*) : int | <SDL.h>"
		alias
			"SDL_LockTexture"
		end

	frozen sdl_maprgb (format: POINTER; r, g, b: NATURAL_8): NATURAL_32
		external
			"C (const SDL_PixelFormat*, Uint8, Uint8, Uint8) :Uint32 | <SDL.h>"
		alias
			"SDL_MapRGB"
		end

	frozen sdl_maprgba (format: POINTER; r, g, b, a: NATURAL_8): NATURAL_32
		external
			"C (const SDL_PixelFormat*, Uint8, Uint8, Uint8, Uint8) :Uint32 | <SDL.h>"
		alias
			"SDL_MapRGBA"
		end

	frozen sdl_maskstopixelformatenum (bpp: INTEGER_32; rmask, gmask, bmask, amask: NATURAL_32): NATURAL_32
		external
			"C (int, Uint32, Uint32, Uint32, Uint32) : Uint32 | <SDL.h>"
		alias
			"SDL_MasksToPixelFormatEnum"
		end

	frozen sdl_maximizewindow (window: POINTER)
		external
			"C (SDL_Window*) | <SDL.h>"
		alias
			"SDL_MaximizeWindow"
		end

	frozen sdl_minimizewindow (window: POINTER)
		external
			"C (SDL_Window*) | <SDL.h>"
		alias
			"SDL_MinimizeWindow"
		end

	frozen sdl_mouseishaptic: BOOLEAN
		external
			"C : int | <SDL.h>"
		alias
			"SDL_MouseIsHaptic"
		end

	frozen sdl_mustlock (surface: POINTER): BOOLEAN
		external
			"C [macro <SDL.h>] (SDL_Surface *) : SDL_bool"
		alias
			"SDL_MUSTLOCK"
		end

	frozen sdl_numhaptics: INTEGER_32
		external
			"C : int | <SDL.h>"
		alias
			"SDL_NumHaptics"
		end

	frozen sdl_numjoysticks: INTEGER_32
		external
			"C : int | <SDL.h>"
		alias
			"SDL_NumJoysticks"
		end

	frozen sdl_pixelformatenumtomasks (format: NATURAL_32; bpp, rmask, gmask, bmask, amask: POINTER): BOOLEAN
		external
			"C (Uint32,int*,Uint32*,Uint32*,Uint32*,Uint32*) :SDL_bool | <SDL.h>"
		alias
			"SDL_PixelFormatEnumToMasks"
		end

	frozen sdl_pixellayout (format: NATURAL_32): NATURAL_32
		external
			"C [macro <SDL.h>] (Uint32) : Uint32"
		alias
			"SDL_PIXELLAYOUT"
		end

	frozen sdl_pixelorder (format: NATURAL_32): NATURAL_32
		external
			"C [macro <SDL.h>] (Uint32) : Uint32"
		alias
			"SDL_PIXELORDER"
		end

	frozen sdl_pixeltype (format: NATURAL_32): NATURAL_32
		external
			"C [macro <SDL.h>] (Uint32) : Uint32"
		alias
			"SDL_PIXELTYPE"
		end

	frozen sdl_pollevent (event: POINTER): INTEGER_32
		external
			"C (SDL_Event*) : int | <SDL.h>"
		alias
			"SDL_PollEvent"
		end

	frozen sdl_querytexture (texture, format, access, w, h: POINTER): INTEGER_32
		external
			"C (SDL_Texture*, Uint32*, int*, int*, int*) : int | <SDL.h>"
		alias
			"SDL_QueryTexture"
		end

	frozen sdl_quit_lib
		external
			"C | <SDL.h>"
		alias
			"SDL_Quit"
		end

	frozen sdl_quitsubsystem (flags: NATURAL_32)
		external
			"C (Uint32) | <SDL.h>"
		alias
			"SDL_QuitSubSystem"
		end

	frozen sdl_raisewindow (window: POINTER)
		external
			"C (SDL_Window*) | <SDL.h>"
		alias
			"SDL_RaiseWindow"
		end

	frozen sdl_recordgesture (touchid: INTEGER_64): INTEGER_32
		external
			"C (SDL_TouchID) : int | <SDL.h>"
		alias
			"SDL_RecordGesture"
		end

	frozen sdl_renderclear (renderer: POINTER): INTEGER_32
		external
			"C (SDL_Renderer*) :int | <SDL.h>"
		alias
			"SDL_RenderClear"
		end

	frozen sdl_rendercopy (renderer, texture, srcrect, dstrect: POINTER): INTEGER_32
		external
			"C (SDL_Renderer*, SDL_Texture*, const SDL_Rect*, const SDL_Rect*) :int | <SDL.h>"
		alias
			"SDL_RenderCopy"
		end

	frozen sdl_rendercopyex (renderer, texture, srcrect, dstrect: POINTER; angle: REAL_64; center: POINTER; flip: INTEGER_32): INTEGER_32
		external
			"C (SDL_Renderer*, SDL_Texture*, const SDL_Rect*, const SDL_Rect*, const double, const SDL_Point*, const SDL_RendererFlip) :int | <SDL.h>"
		alias
			"SDL_RenderCopyEx"
		end

	frozen sdl_renderdrawline (renderer: POINTER; x1, y1, x2, y2: INTEGER_32): INTEGER_32
		external
			"C (SDL_Renderer*, int, int, int, int) : int | <SDL.h>"
		alias
			"SDL_RenderDrawLine"
		end

	frozen sdl_renderdrawlines (renderer, points: POINTER; count: INTEGER_32): INTEGER_32
		external
			"C (SDL_Renderer*, const SDL_Point*, int) : int | <SDL.h>"
		alias
			"SDL_RenderDrawLines"
		end

	frozen sdl_renderdrawpoint (renderer: POINTER; x, y: INTEGER_32): INTEGER_32
		external
			"C (SDL_Renderer*, int, int) : int | <SDL.h>"
		alias
			"SDL_RenderDrawPoint"
		end

	frozen sdl_renderdrawpoints (renderer, points: POINTER; count: INTEGER_32): INTEGER_32
		external
			"C (SDL_Renderer*, const SDL_Point*, int) : int | <SDL.h>"
		alias
			"SDL_RenderDrawPoints"
		end

	frozen sdl_renderdrawrect (renderer, rect: POINTER): INTEGER_32
		external
			"C (SDL_Renderer*, const SDL_Rect*) : int | <SDL.h>"
		alias
			"SDL_RenderDrawRect"
		end

	frozen sdl_renderdrawrects (renderer, rects: POINTER; count: INTEGER_32): INTEGER_32
		external
			"C (SDL_Renderer*, const SDL_Rect*, int) : int | <SDL.h>"
		alias
			"SDL_RenderDrawRects"
		end

	frozen sdl_renderfillrect (renderer, rect: POINTER): INTEGER_32
		external
			"C (SDL_Renderer*, const SDL_Rect*) : int | <SDL.h>"
		alias
			"SDL_RenderFillRect"
		end

	frozen sdl_renderfillrects (renderer, rects: POINTER; count: INTEGER_32): INTEGER_32
		external
			"C (SDL_Renderer*, const SDL_Rect*, int) : int | <SDL.h>"
		alias
			"SDL_RenderFillRects"
		end

	frozen sdl_rendergetcliprect (renderer, rect: POINTER)
		external
			"C (SDL_Renderer*, SDL_Rect*) | <SDL.h>"
		alias
			"SDL_RenderGetClipRect"
		end

	frozen sdl_rendergetlogicalsize (renderer, w, h: POINTER)
		external
			"C (SDL_Renderer*, int*, int*) | <SDL.h>"
		alias
			"SDL_RenderGetLogicalSize"
		end

	frozen sdl_rendergetscale (renderer, scalex, scaley: POINTER)
		external
			"C (SDL_Renderer*, float*, float*) | <SDL.h>"
		alias
			"SDL_RenderGetScale"
		end

	frozen sdl_rendergetviewport (renderer, rect: POINTER)
		external
			"C (SDL_Renderer*, SDL_Rect*) | <SDL.h>"
		alias
			"SDL_RenderGetViewport"
		end

	frozen sdl_renderpresent (renderer: POINTER)
		external
			"C (SDL_Renderer*) | <SDL.h>"
		alias
			"SDL_RenderPresent"
		end

	frozen sdl_rendersetcliprect (renderer, rect: POINTER): INTEGER_32
		external
			"C (SDL_Renderer*, const SDL_Rect*) : int | <SDL.h>"
		alias
			"SDL_RenderSetClipRect"
		end

	frozen sdl_rendersetlogicalsize (renderer: POINTER; w, h: INTEGER_32): INTEGER_32
		external
			"C (SDL_Renderer*, int, int) : int | <SDL.h>"
		alias
			"SDL_RenderSetLogicalSize"
		end

	frozen sdl_rendersetscale (renderer: POINTER; scalex, scaley: REAL_32): INTEGER_32
		external
			"C (SDL_Renderer*, float, float) : int | <SDL.h>"
		alias
			"SDL_RenderSetScale"
		end

	frozen sdl_rendersetviewport (renderer, rect: POINTER): INTEGER_32
		external
			"C (SDL_Renderer*, const SDL_Rect*) : int | <SDL.h>"
		alias
			"SDL_RenderSetViewport"
		end

	frozen sdl_restorewindow (window: POINTER)
		external
			"C (SDL_Window*) | <SDL.h>"
		alias
			"SDL_RestoreWindow"
		end

	frozen sdl_rwclose (context: POINTER): INTEGER_32
		external
			"C (struct SDL_RWops*) : int | <SDL.h>"
		alias
			"SDL_RWclose"
		end

	frozen sdl_rwfromconstmem (mem: POINTER; size: INTEGER_32): POINTER
		external
			"C (const void*, int) : SDL_RWops* | <SDL.h>"
		alias
			"SDL_RWFromConstMem"
		end

	frozen sdl_rwfromfile (file, mode: POINTER): POINTER
		external
			"C (const char*, const char*) : SDL_RWops* | <SDL.h>"
		alias
			"SDL_RWFromFile"
		end

	frozen sdl_rwfromfp (mem: POINTER; autoclose: BOOLEAN): POINTER
		external
			"C (void*, SDL_bool) : SDL_RWops* | <SDL.h>"
		alias
			"SDL_RWFromFP"
		end

	frozen sdl_rwfrommem (mem: POINTER; size: INTEGER_32): POINTER
		external
			"C (void*, int) : SDL_RWops* | <SDL.h>"
		alias
			"SDL_RWFromMem"
		end

	frozen sdl_savealldollartemplates (dst: POINTER): INTEGER_32
		external
			"C (SDL_RWops *) : int | <SDL.h>"
		alias
			"SDL_SaveAllDollarTemplates"
		end

	frozen sdl_savebmp (surface, file: POINTER): INTEGER_32
		external
			"C (SDL_Surface*, const char*) : int | <SDL.h>"
		alias
			"SDL_SaveBMP"
		end

	frozen sdl_savedollartemplate (gestureid: INTEGER_64; dst: POINTER): INTEGER_32
		external
			"C (SDL_GestureID, SDL_RWops *) : int | <SDL.h>"
		alias
			"SDL_SaveDollarTemplate"
		end

	frozen sdl_setclipboardtext (text: POINTER): INTEGER_32
		external
			"C (char*) : int | <SDL.h>"
		alias
			"SDL_SetClipboardText"
		end

	frozen sdl_setcolorkey (surface: POINTER; flag: INTEGER_32; key: NATURAL_32): INTEGER_32
		external
			"C (SDL_Surface*, int, Uint32) : int | <SDL.h>"
		alias
			"SDL_SetColorKey"
		end

	frozen sdl_setcursor (cursor: POINTER)
		external
			"C (SDL_Cursor*) | <SDL.h>"
		alias
			"SDL_SetCursor"
		end

	frozen sdl_setenv (name, value: POINTER; overwrite: BOOLEAN): INTEGER_32
		external
			"C (const char *, const char *, int) : int | <SDL.h>"
		alias
			"SDL_setenv"
		end

	frozen sdl_setpixelformatpalette (format, palette: POINTER): INTEGER_32
		external
			"C (SDL_PixelFormat*, SDL_Palette*) : int | <SDL.h>"
		alias
			"SDL_SetPixelFormatPalette"
		end

	frozen sdl_setrelativemousemode (enable: BOOLEAN): INTEGER_32
		external
			"C (SDL_bool) : int | <SDL.h>"
		alias
			"SDL_SetRelativeMouseMode"
		end

	frozen sdl_setrenderdrawblendmode (renderer: POINTER; blendmode: INTEGER_32): INTEGER_32
		external
			"C (SDL_Renderer*, SDL_BlendMode) : int | <SDL.h>"
		alias
			"SDL_SetRenderDrawBlendMode"
		end

	frozen sdl_setrenderdrawcolor (renderer: POINTER; r, g, b, a: NATURAL_8): INTEGER_32
		external
			"C (SDL_Renderer*, Uint8, Uint8, Uint8, Uint8) : int | <SDL.h>"
		alias
			"SDL_SetRenderDrawColor"
		end

	frozen sdl_setrendertarget (renderer, texture: POINTER): INTEGER_32
		external
			"C (SDL_Renderer*, SDL_Texture*) :int | <SDL.h>"
		alias
			"SDL_SetRenderTarget"
		end

	frozen sdl_setsurfacealphamod (surface: POINTER; alpha: NATURAL_8): INTEGER_32
		external
			"C (SDL_Surface*, Uint8) : int | <SDL.h>"
		alias
			"SDL_SetSurfaceAlphaMod"
		end

	frozen sdl_setsurfaceblendmode (surface: POINTER; blendmode: INTEGER_32): INTEGER_32
		external
			"C (SDL_Surface*, SDL_BlendMode) : int | <SDL.h>"
		alias
			"SDL_SetSurfaceBlendMode"
		end

	frozen sdl_setsurfacecolormod (surface: POINTER; r, g, b: NATURAL_8): INTEGER_32
		external
			"C (SDL_Surface*, Uint8, Uint8, Uint8) : int | <SDL.h>"
		alias
			"SDL_SetSurfaceColorMod"
		end

	frozen sdl_setsurfacerle (surface: POINTER; flag: INTEGER_32): INTEGER_32
		external
			"C (SDL_Surface*, int) : int | <SDL.h>"
		alias
			"SDL_SetSurfaceRLE"
		end

	frozen sdl_settextinputrect (rect: POINTER)
		external
			"C (SDL_Rect*)| <SDL.h>"
		alias
			"SDL_SetTextInputRect"
		end

	frozen sdl_settexturealphamod (texture: POINTER; blendmode: NATURAL_8): INTEGER_32
		external
			"C (SDL_Texture*, Uint8) : int | <SDL.h>"
		alias
			"SDL_SetTextureAlphaMod"
		end

	frozen sdl_settextureblendmode (texture: POINTER; blendmode: INTEGER_32): INTEGER_32
		external
			"C (SDL_Texture*, SDL_BlendMode) : int | <SDL.h>"
		alias
			"SDL_SetTextureBlendMode"
		end

	frozen sdl_settexturecolormod (texture: POINTER; r, g, b: NATURAL_8): INTEGER_32
		external
			"C (SDL_Texture*, Uint8, Uint8, Uint8) : int | <SDL.h>"
		alias
			"SDL_SetTextureColorMod"
		end

	frozen sdl_setwindowbordered (window: POINTER; bordered: BOOLEAN)
		external
			"C (SDL_Window*, SDL_bool) | <SDL.h>"
		alias
			"SDL_SetWindowBordered"
		end

	frozen sdl_setwindowbrightness (window: POINTER; brightness: REAL_32): INTEGER_32
		external
			"C (SDL_Window*, float) : int | <SDL.h>"
		alias
			"SDL_SetWindowBrightness"
		end

	frozen sdl_setwindowdisplaymode (window, mode: POINTER): INTEGER_32
		external
			"C (SDL_Window*, const SDL_DisplayMode*) : int | <SDL.h>"
		alias
			"SDL_SetWindowDisplayMode"
		end

	frozen sdl_setwindowfullscreen (window: POINTER; flags: NATURAL_32): INTEGER_32
		external
			"C (SDL_Window*, Uint32) : int | <SDL.h>"
		alias
			"SDL_SetWindowFullscreen"
		end

	frozen sdl_setwindowgammaramp (window, red, green, blue: POINTER): INTEGER_32
		external
			"C (SDL_Window*, const Uint16*, const Uint16*, const Uint16*) : int | <SDL.h>"
		alias
			"SDL_SetWindowGammaRamp"
		end

	frozen sdl_setwindowgrab (window: POINTER; grabbed: BOOLEAN)
		external
			"C (SDL_Window*, SDL_bool) | <SDL.h>"
		alias
			"SDL_SetWindowGrab"
		end

	frozen sdl_setwindowicon (window, icon: POINTER)
		external
			"C (SDL_Window*, SDL_Surface*) | <SDL.h>"
		alias
			"SDL_SetWindowIcon"
		end

	frozen sdl_setwindowmaximumsize (window: POINTER; max_w, max_h: INTEGER_32)
		external
			"C (SDL_Window*, int, int) | <SDL.h>"
		alias
			"SDL_SetWindowMaximumSize"
		end

	frozen sdl_setwindowminimumsize (window: POINTER; min_w, min_h: INTEGER_32)
		external
			"C (SDL_Window*, int, int) | <SDL.h>"
		alias
			"SDL_SetWindowMinimumSize"
		end

	frozen sdl_setwindowposition (window: POINTER; x, y: INTEGER_32)
		external
			"C (SDL_Window*, int, int) | <SDL.h>"
		alias
			"SDL_SetWindowPosition"
		end

	frozen sdl_setwindowsize (window: POINTER; w, h: INTEGER_32)
		external
			"C (SDL_Window*, int, int) | <SDL.h>"
		alias
			"SDL_SetWindowSize"
		end

	frozen sdl_setwindowtitle (window, title: POINTER)
		external
			"C (SDL_Window*, const char*) | <SDL.h>"
		alias
			"SDL_SetWindowTitle"
		end

	frozen sdl_showcursor (toggle: INTEGER_32): INTEGER_32
		external
			"C (int) :int | <SDL.h>"
		alias
			"SDL_ShowCursor"
		end

	frozen sdl_showwindow (window: POINTER)
		external
			"C (SDL_Window*) | <SDL.h>"
		alias
			"SDL_ShowWindow"
		end

	frozen sdl_starttextinput
		external
			"C | <SDL.h>"
		alias
			"SDL_StartTextInput"
		end

	frozen sdl_stoptextinput
		external
			"C | <SDL.h>"
		alias
			"SDL_StopTextInput"
		end

	frozen sdl_unlocksurface (a_surface: POINTER)
		external
			"C (SDL_Surface*) | <SDL.h>"
		alias
			"SDL_UnlockSurface"
		end

	frozen sdl_unlocktexture (texture: POINTER)
		external
			"C (SDL_Texture*) | <SDL.h>"
		alias
			"SDL_UnlockTexture"
		end

	frozen sdl_updatetexture (texture, rect, pixels: POINTER; pitch: INTEGER_32): INTEGER_32
		external
			"C (SDL_Texture*, SDL_Rect*, void*, int) : int | <SDL.h>"
		alias
			"SDL_UpdateTexture"
		end

	frozen sdl_updatewindowsurface (window: POINTER): INTEGER_32
		external
			"C (SDL_Window*) : int | <SDL.h>"
		alias
			"SDL_UpdateWindowSurface"
		end

	frozen sdl_updatewindowsurfacerects (window, rects: POINTER; numrects: INTEGER_32): INTEGER_32
		external
			"C (SDL_Window*, const SDL_Rect*, int) : int | <SDL.h>"
		alias
			"SDL_UpdateWindowSurfaceRects"
		end

	frozen sdl_version_compile (x: POINTER)
		external
			"C [macro <SDL.h>] (SDL_version *)"
		alias
			"SDL_VERSION"
		end

	frozen sdl_warpmouseinwindow (window: POINTER; x, y: INTEGER_32)
		external
			"C (SDL_Window*, int, int) | <SDL.h>"
		alias
			"SDL_WarpMouseInWindow"
		end

	frozen sdl_wasinit (flags: NATURAL_32): NATURAL_32
		external
			"C (Uint32) : Uint32 | <SDL.h>"
		alias
			"SDL_WasInit"
		end

	frozen sdl_windowpos_centered_display (display: INTEGER_32): INTEGER_32
		external
			"C [macro <SDL.h>] (EIF_INTEGER) : EIF_INTEGER"
		alias
			"SDL_WINDOWPOS_CENTERED_DISPLAY"
		end

	frozen sdl_windowpos_undefined: INTEGER_32
		external
			"C [macro <SDL.h>] : EIF_INTEGER"
		alias
			"SDL_WINDOWPOS_UNDEFINED"
		end

	frozen sdl_windowpos_undefined_display (display: INTEGER_32): INTEGER_32
		external
			"C [macro <SDL.h>] (EIF_INTEGER) : EIF_INTEGER"
		alias
			"SDL_WINDOWPOS_UNDEFINED_DISPLAY"
		end
	
feature -- Manual C function (implemented in sdl_additions.c)

	frozen setsdlrwops (rwop, cpf_infos: POINTER)
			-- Set a CustomPackageFileInfos in the SDL ressource reader.
		external
			"C (SDL_RWops *,CustomPackageFileInfos*) | %"sdl_additions.h%""
		alias
			"setSDLRWops"
		end
	
feature -- Output

	Io: STD_FILES
			-- Handle to standard file setup
			-- (from ANY)
		once
			create Result;
			Result.set_output_default
		ensure -- from ANY
			instance_free: class
			io_not_void: Result /= Void
		end

	out: STRING_8
			-- New string containing terse printable representation
			-- of current object
			-- (from ANY)
		do
			Result := tagged_out
		ensure -- from ANY
			out_not_void: Result /= Void
		end

	print (o: detachable ANY)
			-- Write terse external representation of o
			-- on standard output.
			-- (from ANY)
		local
			s: READABLE_STRING_8
		do
			if attached o then
				s := o.out
				if attached {READABLE_STRING_32} s as s32 then
					Io.put_string_32 (s32)
				elseif attached {READABLE_STRING_8} s as s8 then
					Io.put_string (s8)
				else
					Io.put_string_32 (s.as_string_32)
				end
			end
		ensure -- from ANY
			instance_free: class
		end

	frozen tagged_out: STRING_8
			-- New string containing terse printable representation
			-- of current object
			-- (from ANY)
		external
			"built_in"
		ensure -- from ANY
			tagged_out_not_void: Result /= Void
		end
	
feature -- Platform

	Operating_environment: OPERATING_ENVIRONMENT
			-- Objects available from the operating system
			-- (from ANY)
		once
			create Result
		ensure -- from ANY
			instance_free: class
			operating_environment_not_void: Result /= Void
		end
	
feature {NONE} -- Retrieval

	frozen internal_correct_mismatch
			-- Called from runtime to perform a proper dynamic dispatch on correct_mismatch
			-- from MISMATCH_CORRECTOR.
			-- (from ANY)
		local
			l_msg: STRING_32
			l_exc: EXCEPTIONS
		do
			if attached {MISMATCH_CORRECTOR} Current as l_corrector then
				l_corrector.correct_mismatch
			else
				create l_msg.make_from_string ("Mismatch: ".as_string_32)
				create l_exc;
				l_msg.append (generating_type.name_32);
				l_exc.raise_retrieval_exception (l_msg)
			end
		end
	
feature -- Structure SDL_Color SDL.h

	frozen c_sizeof_sdl_color: INTEGER_32
			-- Size of an SDL_Color C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_Color)"
		end

	frozen get_sdl_color_struct_a (ptr: POINTER): NATURAL_8
			-- the alpha component in the range 0-255
		external
			"C [struct <SDL.h>] (SDL_Color):Uint8"
		alias
			"a"
		end

	frozen get_sdl_color_struct_b (ptr: POINTER): NATURAL_8
			-- the blue component in the range 0-255
		external
			"C [struct <SDL.h>] (SDL_Color):Uint8"
		alias
			"b"
		end

	frozen get_sdl_color_struct_g (ptr: POINTER): NATURAL_8
			-- the green component in the range 0-255
		external
			"C [struct <SDL.h>] (SDL_Color):Uint8"
		alias
			"g"
		end

	frozen get_sdl_color_struct_r (ptr: POINTER): NATURAL_8
			-- the red component in the range 0-255
		external
			"C [struct <SDL.h>] (SDL_Color):Uint8"
		alias
			"r"
		end

	frozen set_sdl_color_struct_a (ptr: POINTER; value: NATURAL_8)
			-- the alpha component in the range 0-255
		external
			"C [struct <SDL.h>] (SDL_Color, Uint8)"
		alias
			"a"
		end

	frozen set_sdl_color_struct_b (ptr: POINTER; value: NATURAL_8)
			-- the blue component in the range 0-255
		external
			"C [struct <SDL.h>] (SDL_Color, Uint8)"
		alias
			"b"
		end

	frozen set_sdl_color_struct_g (ptr: POINTER; value: NATURAL_8)
			-- the green component in the range 0-255
		external
			"C [struct <SDL.h>] (SDL_Color, Uint8)"
		alias
			"g"
		end

	frozen set_sdl_color_struct_r (ptr: POINTER; value: NATURAL_8)
			-- the red component in the range 0-255
		external
			"C [struct <SDL.h>] (SDL_Color, Uint8)"
		alias
			"r"
		end
	
feature -- Structure SDL_CommonEvent SDL.h

	frozen c_sizeof_sdl_common_event: INTEGER_32
			-- Size of an SDL_CommonEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_CommonEvent)"
		end

	frozen get_common_event_struct_timestamp (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_CommonEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_common_event_struct_type (event: POINTER): NATURAL_32
			-- Event type.
		external
			"C [struct <SDL.h>] (SDL_CommonEvent):Uint32"
		alias
			"type"
		end

	frozen set_common_event_struct_timestamp (event: POINTER; timestamp: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_CommonEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_common_event_struct_type (event: POINTER; type: NATURAL_32)
			-- Event type.
		external
			"C [struct <SDL.h>] (SDL_CommonEvent, Uint32)"
		alias
			"type"
		end
	
feature -- Structure SDL_ControllerAxisEvent SDL.h

	frozen c_sizeof_sdl_controller_axis_event: INTEGER_32
			-- Size of an SDL_ControllerAxisEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_ControllerAxisEvent)"
		end

	frozen get_controller_axis_event_struct_axis (ptr: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_ControllerAxisEvent):Uint8"
		alias
			"axis"
		end

	frozen get_controller_axis_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_ControllerAxisEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_controller_axis_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_CONTROLLERAXISMOTION
		external
			"C [struct <SDL.h>] (SDL_ControllerAxisEvent):Uint32"
		alias
			"type"
		end

	frozen get_controller_axis_event_struct_value (ptr: POINTER): INTEGER_16
		external
			"C [struct <SDL.h>] (SDL_ControllerAxisEvent):Sint16"
		alias
			"value"
		end

	frozen get_controller_axis_event_struct_which (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_ControllerAxisEvent):SDL_JoystickID"
		alias
			"which"
		end

	frozen set_controller_axis_event_struct_axis (ptr: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_ControllerAxisEvent, Uint8)"
		alias
			"axis"
		end

	frozen set_controller_axis_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_ControllerAxisEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_controller_axis_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_CONTROLLERAXISMOTION
		external
			"C [struct <SDL.h>] (SDL_ControllerAxisEvent, Uint32)"
		alias
			"type"
		end

	frozen set_controller_axis_event_struct_value (ptr: POINTER; value: INTEGER_16)
		external
			"C [struct <SDL.h>] (SDL_ControllerAxisEvent, Sint16)"
		alias
			"value"
		end

	frozen set_controller_axis_event_struct_which (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_ControllerAxisEvent, SDL_JoystickID)"
		alias
			"which"
		end
	
feature -- Structure SDL_ControllerButtonEvent SDL.h

	frozen c_sizeof_sdl_controller_button_event: INTEGER_32
			-- Size of an SDL_ControllerButtonEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_ControllerButtonEvent)"
		end

	frozen get_controller_button_event_struct_button (ptr: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_ControllerButtonEvent):Uint8"
		alias
			"button"
		end

	frozen get_controller_button_event_struct_state (ptr: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_ControllerButtonEvent):Uint8"
		alias
			"state"
		end

	frozen get_controller_button_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_ControllerButtonEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_controller_button_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_CONTROLLERBUTTONDOWN or SDL_CONTROLLERBUTTONUP
		external
			"C [struct <SDL.h>] (SDL_ControllerButtonEvent):Uint32"
		alias
			"type"
		end

	frozen get_controller_button_event_struct_which (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_ControllerButtonEvent):SDL_JoystickID"
		alias
			"which"
		end

	frozen set_controller_button_event_struct_button (ptr: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_ControllerButtonEvent, Uint8)"
		alias
			"button"
		end

	frozen set_controller_button_event_struct_state (ptr: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_ControllerButtonEvent, Uint8)"
		alias
			"state"
		end

	frozen set_controller_button_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_ControllerButtonEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_controller_button_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_CONTROLLERBUTTONDOWN or SDL_CONTROLLERBUTTONUP
		external
			"C [struct <SDL.h>] (SDL_ControllerButtonEvent, Uint32)"
		alias
			"type"
		end

	frozen set_controller_button_event_struct_which (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_ControllerButtonEvent, SDL_JoystickID)"
		alias
			"which"
		end
	
feature -- Structure SDL_ControllerDeviceEvent SDL.h

	frozen c_sizeof_sdl_controller_device_event: INTEGER_32
			-- Size of an SDL_ControllerDeviceEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_ControllerDeviceEvent)"
		end

	frozen get_controller_device_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_ControllerDeviceEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_controller_device_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_CONTROLLERDEVICEADDED, SDL_CONTROLLERDEVICEREMOVED or SDL_CONTROLLERDEVICEREMAPPED
		external
			"C [struct <SDL.h>] (SDL_ControllerDeviceEvent):Uint32"
		alias
			"type"
		end

	frozen get_controller_device_event_struct_which (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_ControllerDeviceEvent):SDL_JoystickID"
		alias
			"which"
		end

	frozen set_controller_device_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_ControllerDeviceEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_controller_device_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_CONTROLLERDEVICEADDED, SDL_CONTROLLERDEVICEREMOVED or SDL_CONTROLLERDEVICEREMAPPED
		external
			"C [struct <SDL.h>] (SDL_ControllerDeviceEvent, Uint32)"
		alias
			"type"
		end

	frozen set_controller_device_event_struct_which (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_ControllerDeviceEvent, SDL_JoystickID)"
		alias
			"which"
		end
	
feature -- Structure SDL_DisplayMode SDL.h

	frozen c_sizeof_sdl_display_mode: INTEGER_32
			-- Size of an SDL_DisplayMode C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_DisplayMode)"
		end

	frozen get_display_mode_struct_format (mode: POINTER): NATURAL_32
			-- One of the SDL_PixelFormatEnum values
		external
			"C [struct <SDL.h>] (SDL_DisplayMode):Uint32"
		alias
			"format"
		end

	frozen get_display_mode_struct_h (mode: POINTER): INTEGER_32
			-- Height
		external
			"C [struct <SDL.h>] (SDL_DisplayMode):int"
		alias
			"h"
		end

	frozen get_display_mode_struct_refresh_rate (mode: POINTER): INTEGER_32
			-- Refresh rate (in Hz), or 0 for unspecified
		external
			"C [struct <SDL.h>] (SDL_DisplayMode):int"
		alias
			"refresh_rate"
		end

	frozen get_display_mode_struct_w (mode: POINTER): INTEGER_32
			-- Width
		external
			"C [struct <SDL.h>] (SDL_DisplayMode):int"
		alias
			"w"
		end

	frozen set_display_mode_struct_format (mode: POINTER; format: NATURAL_32)
			-- One of the SDL_PixelFormatEnum values
		external
			"C [struct <SDL.h>] (SDL_DisplayMode, Uint32)"
		alias
			"format"
		end

	frozen set_display_mode_struct_h (mode: POINTER; h: INTEGER_32)
			-- Height
		external
			"C [struct <SDL.h>] (SDL_DisplayMode, int)"
		alias
			"h"
		end

	frozen set_display_mode_struct_refresh_rate (mode: POINTER; refresh_rate: INTEGER_32)
			-- Refresh rate (in Hz), or 0 for unspecified
		external
			"C [struct <SDL.h>] (SDL_DisplayMode, int)"
		alias
			"refresh_rate"
		end

	frozen set_display_mode_struct_w (mode: POINTER; w: INTEGER_32)
			-- Width
		external
			"C [struct <SDL.h>] (SDL_DisplayMode, int)"
		alias
			"w"
		end
	
feature -- Structure SDL_DollarGestureEvent SDL.h

	frozen c_sizeof_sdl_dollar_gesture_event: INTEGER_32
			-- Size of an SDL_DollarGestureEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_DollarGestureEvent)"
		end

	frozen get_dollar_gesture_event_struct_error (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent):float"
		alias
			"error"
		end

	frozen get_dollar_gesture_event_struct_gesture_id (ptr: POINTER): INTEGER_64
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent):SDL_GestureID"
		alias
			"gestureId"
		end

	frozen get_dollar_gesture_event_struct_num_fingers (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent):Uint32"
		alias
			"numFingers"
		end

	frozen get_dollar_gesture_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_dollar_gesture_event_struct_touch_id (ptr: POINTER): INTEGER_64
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent):SDL_TouchID"
		alias
			"touchId"
		end

	frozen get_dollar_gesture_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_DOLLARGESTURE
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent):Uint32"
		alias
			"type"
		end

	frozen get_dollar_gesture_event_struct_x (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent):float"
		alias
			"x"
		end

	frozen get_dollar_gesture_event_struct_y (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent):float"
		alias
			"y"
		end

	frozen set_dollar_gesture_event_struct_error (ptr: POINTER; value: REAL_32)
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent, float)"
		alias
			"error"
		end

	frozen set_dollar_gesture_event_struct_gesture_id (ptr: POINTER; value: INTEGER_64)
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent, SDL_GestureID)"
		alias
			"gestureId"
		end

	frozen set_dollar_gesture_event_struct_num_fingers (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent, Uint32)"
		alias
			"numFingers"
		end

	frozen set_dollar_gesture_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_dollar_gesture_event_struct_touch_id (ptr: POINTER; value: INTEGER_64)
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent, SDL_TouchID)"
		alias
			"touchId"
		end

	frozen set_dollar_gesture_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_DOLLARGESTURE
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent, Uint32)"
		alias
			"type"
		end

	frozen set_dollar_gesture_event_struct_x (ptr: POINTER; value: REAL_32)
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent, float)"
		alias
			"x"
		end

	frozen set_dollar_gesture_event_struct_y (ptr: POINTER; value: REAL_32)
		external
			"C [struct <SDL.h>] (SDL_DollarGestureEvent, float)"
		alias
			"y"
		end
	
feature -- Structure SDL_DropEvent SDL.h

	frozen c_sizeof_sdl_drop_event: INTEGER_32
			-- Size of an SDL_DropEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_DropEvent)"
		end

	frozen get_drop_event_struct_file (ptr: POINTER): POINTER
		external
			"C [struct <SDL.h>] (SDL_DropEvent):char*"
		alias
			"file"
		end

	frozen get_drop_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_DropEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_drop_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_DROPFILE
		external
			"C [struct <SDL.h>] (SDL_DropEvent):Uint32"
		alias
			"type"
		end

	frozen set_drop_event_struct_file (ptr: POINTER; value: POINTER)
		external
			"C [struct <SDL.h>] (SDL_DropEvent, char*)"
		alias
			"file"
		end

	frozen set_drop_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_DropEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_drop_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_DROPFILE
		external
			"C [struct <SDL.h>] (SDL_DropEvent, Uint32)"
		alias
			"type"
		end
	
feature -- Structure SDL_Event SDL.h

	frozen c_sizeof_sdl_event: INTEGER_32
			-- Size of an SDL_Event C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_Event)"
		end

	frozen get_event_struct_button_pointer (event: POINTER): POINTER
			-- Mouse button event
			-- Return a pointer to SDL_MouseMotionEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->button)"
		end

	frozen get_event_struct_caxis_pointer (event: POINTER): POINTER
			-- game controller axis event data
			-- Return a pointer to SDL_ControllerAxisEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->caxis)"
		end

	frozen get_event_struct_cbutton_pointer (event: POINTER): POINTER
			-- game controller button event data
			-- Return a pointer to SDL_ControllerButtonEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->cbutton)"
		end

	frozen get_event_struct_cdevice_pointer (event: POINTER): POINTER
			-- game controller device event data
			-- Return a pointer to SDL_ControllerDeviceEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->cdevice)"
		end

	frozen get_event_struct_dgesture_pointer (event: POINTER): POINTER
			-- multi finger gesture data
			-- Return a pointer to SDL_DollarGestureEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->dgesture)"
		end

	frozen get_event_struct_drop_pointer (event: POINTER): POINTER
			-- drag and drop event data
			-- Return a pointer to SDL_DropEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->drop)"
		end

	frozen get_event_struct_edit_pointer (event: POINTER): POINTER
			-- text editing event data
			-- Return a pointer to SDL_TextEditingEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->edit)"
		end

	frozen get_event_struct_jaxis_pointer (event: POINTER): POINTER
			-- Joystick Axis motion event
			-- Return a pointer to SDL_JoyAxisEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->jaxis)"
		end

	frozen get_event_struct_jball_pointer (event: POINTER): POINTER
			-- Joystick trackball motion event
			-- Return a pointer to SDL_JoyBallEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->jball)"
		end

	frozen get_event_struct_jbutton_pointer (event: POINTER): POINTER
			-- Joystick button event
			-- Return a pointer to SDL_JoyButtonEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->jbutton)"
		end

	frozen get_event_struct_jdevice_pointer (event: POINTER): POINTER
			-- joystick device event data
			-- Return a pointer to SDL_JoyDeviceEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->jdevice)"
		end

	frozen get_event_struct_jhat_pointer (event: POINTER): POINTER
			-- Joystick hat motion event
			-- Return a pointer to SDL_JoyHatEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->jhat)"
		end

	frozen get_event_struct_key_pointer (event: POINTER): POINTER
			-- keyboard event data
			-- Return a pointer to SDL_KeyboardEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->key)"
		end

	frozen get_event_struct_mgesture_pointer (event: POINTER): POINTER
			-- multi finger gesture data
			-- Return a pointer to SDL_MultiGestureEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->mgesture)"
		end

	frozen get_event_struct_motion_pointer (event: POINTER): POINTER
			-- Mouse motion event
			-- Return a pointer to SDL_MouseMotionEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->motion)"
		end

	frozen get_event_struct_quit_pointer (event: POINTER): POINTER
			-- Application quit request event
			-- Return a pointer to SDL_QuitEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->quit)"
		end

	frozen get_event_struct_syswm_pointer (event: POINTER): POINTER
			-- Undefined window manager event
			-- Return a pointer to SDL_SysWMEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->syswm)"
		end

	frozen get_event_struct_text_pointer (event: POINTER): POINTER
			-- text input event data
			-- Return a pointer to SDL_TextInputEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->text)"
		end

	frozen get_event_struct_tfinger_pointer (event: POINTER): POINTER
			-- touch finger event data
			-- Return a pointer to SDL_TouchFingerEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->tfinger)"
		end

	frozen get_event_struct_type (event: POINTER): NATURAL_32
			-- Event type
		external
			"C [struct <SDL.h>] (SDL_Event):Uint32"
		alias
			"type"
		end

	frozen get_event_struct_user_pointer (event: POINTER): POINTER
			-- User defined event
			-- Return a pointer to SDL_UserEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->user)"
		end

	frozen get_event_struct_wheel_pointer (event: POINTER): POINTER
			-- mouse wheel event data
			-- Return a pointer to SDL_MouseWheelEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->wheel)"
		end

	frozen get_event_struct_window_pointer (event: POINTER): POINTER
			-- Activation Event
			-- Return a pointer to SDL_ActiveEvent
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Event *)$event)->window)"
		end

	frozen set_event_struct_type (event: POINTER; type: NATURAL_32)
			-- Event type
		external
			"C [struct <SDL.h>] (SDL_Event, Uint32)"
		alias
			"type"
		end
	
feature -- Structure SDL_Finger SDL.h

	frozen get_sdl_finger_struct_id (ptr: POINTER): INTEGER_64
		external
			"C [struct <SDL.h>] (SDL_Finger):Sint64"
		alias
			"id"
		end

	frozen get_sdl_finger_struct_pressure (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_Finger):float"
		alias
			"pressure"
		end

	frozen get_sdl_finger_struct_x (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_Finger):float"
		alias
			"x"
		end

	frozen get_sdl_finger_struct_y (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_Finger):float"
		alias
			"y"
		end
	
feature -- Structure SDL_HapticCondition SDL.h

	frozen get_sdl_haptic_condition_button (ptr: POINTER): NATURAL_16
			-- button that triggers effect
		external
			"C [struct <SDL.h>] (SDL_HapticCondition):Uint16"
		alias
			"button"
		end

	frozen get_sdl_haptic_condition_delay (ptr: POINTER): NATURAL_16
			-- delay before starting effect
		external
			"C [struct <SDL.h>] (SDL_HapticCondition):Uint16"
		alias
			"delay"
		end

	frozen get_sdl_haptic_condition_interval (ptr: POINTER): NATURAL_16
			-- how soon before effect can be triggered again
		external
			"C [struct <SDL.h>] (SDL_HapticCondition):Uint16"
		alias
			"interval"
		end

	frozen get_sdl_haptic_condition_length (ptr: POINTER): NATURAL_32
			-- duration of effect (ms)
		external
			"C [struct <SDL.h>] (SDL_HapticCondition):Uint32"
		alias
			"length"
		end

	frozen get_sdl_haptic_condition_struct_center_i (ptr: POINTER; index: INTEGER_32): INTEGER_16
			-- position of the dead zone
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticCondition*)$ptr)->center[((int)$index)]"
		end

	frozen get_sdl_haptic_condition_struct_deadband_i (ptr: POINTER; index: INTEGER_32): NATURAL_16
			-- size of the dead zone; max 0xFFFF: whole axis-range when 0-centered
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticCondition*)$ptr)->deadband[((int)$index)]"
		end

	frozen get_sdl_haptic_condition_struct_left_coeff_i (ptr: POINTER; index: INTEGER_32): INTEGER_16
			-- how fast to increase the force towards the negative side
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticCondition*)$ptr)->left_coeff[((int)$index)]"
		end

	frozen get_sdl_haptic_condition_struct_left_sat_i (ptr: POINTER; index: INTEGER_32): NATURAL_16
			-- level when joystick is to the negative side; max 0xFFFF
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticCondition*)$ptr)->left_sat[((int)$index)]"
		end

	frozen get_sdl_haptic_condition_struct_right_coeff_i (ptr: POINTER; index: INTEGER_32): INTEGER_16
			-- how fast to increase the force towards the positive side
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticCondition*)$ptr)->right_coeff[((int)$index)]"
		end

	frozen get_sdl_haptic_condition_struct_right_sat_i (ptr: POINTER; index: INTEGER_32): NATURAL_16
			-- level when joystick is to the positive side; max 0xFFFF
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticCondition*)$ptr)->right_sat[((int)$index)]"
		end

	frozen set_sdl_haptic_condition_button (ptr: POINTER; value: NATURAL_16)
			-- button that triggers effect
		external
			"C [struct <SDL.h>] (SDL_HapticCondition, Uint16)"
		alias
			"button"
		end

	frozen set_sdl_haptic_condition_delay (ptr: POINTER; value: NATURAL_16)
			-- delay before starting effect
		external
			"C [struct <SDL.h>] (SDL_HapticCondition, Uint16)"
		alias
			"delay"
		end

	frozen set_sdl_haptic_condition_interval (ptr: POINTER; value: NATURAL_16)
			-- how soon before effect can be triggered again
		external
			"C [struct <SDL.h>] (SDL_HapticCondition, Uint16)"
		alias
			"interval"
		end

	frozen set_sdl_haptic_condition_length (ptr: POINTER; value: NATURAL_32)
			-- duration of effect (ms)
		external
			"C [struct <SDL.h>] (SDL_HapticCondition, Uint32)"
		alias
			"length"
		end

	frozen set_sdl_haptic_condition_struct_center_i (ptr: POINTER; index: INTEGER_32; value: INTEGER_16)
			-- position of the dead zone
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticCondition*)$ptr)->center[((int)$index)] = ((Sint32)$value)"
		end

	frozen set_sdl_haptic_condition_struct_deadband_i (ptr: POINTER; index: INTEGER_32; value: NATURAL_16)
			-- size of the dead zone; max 0xFFFF: whole axis-range when 0-centered
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticCondition*)$ptr)->deadband[((int)$index)] = ((Sint32)$value)"
		end

	frozen set_sdl_haptic_condition_struct_left_coeff_i (ptr: POINTER; index: INTEGER_32; value: INTEGER_16)
			-- how fast to increase the force towards the negative side
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticCondition*)$ptr)->left_coeff[((int)$index)] = ((Sint32)$value)"
		end

	frozen set_sdl_haptic_condition_struct_left_sat_i (ptr: POINTER; index: INTEGER_32; value: NATURAL_16)
			-- level when joystick is to the negative side; max 0xFFFF
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticCondition*)$ptr)->left_sat[((int)$index)] = ((Sint32)$value)"
		end

	frozen set_sdl_haptic_condition_struct_right_coeff_i (ptr: POINTER; index: INTEGER_32; value: INTEGER_16)
			-- how fast to increase the force towards the positive side
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticCondition*)$ptr)->right_coeff[((int)$index)] = ((Sint32)$value)"
		end

	frozen set_sdl_haptic_condition_struct_right_sat_i (ptr: POINTER; index: INTEGER_32; value: NATURAL_16)
			-- level when joystick is to the positive side; max 0xFFFF
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticCondition*)$ptr)->right_sat[((int)$index)] = ((Sint32)$value)"
		end
	
feature -- Structure SDL_HapticConstant SDL.h

	frozen get_sdl_haptic_constant_attack_length (ptr: POINTER): NATURAL_16
			-- duration of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticConstant):Uint16"
		alias
			"attack_length"
		end

	frozen get_sdl_haptic_constant_attack_level (ptr: POINTER): NATURAL_16
			-- level at the start of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticConstant):Uint16"
		alias
			"attack_level"
		end

	frozen get_sdl_haptic_constant_button (ptr: POINTER): NATURAL_16
			-- button that triggers effect
		external
			"C [struct <SDL.h>] (SDL_HapticConstant):Uint16"
		alias
			"button"
		end

	frozen get_sdl_haptic_constant_delay (ptr: POINTER): NATURAL_16
			-- delay before starting effect
		external
			"C [struct <SDL.h>] (SDL_HapticConstant):Uint16"
		alias
			"delay"
		end

	frozen get_sdl_haptic_constant_direction (ptr: POINTER): POINTER
			-- direction of the effect
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_HapticConstant*)$ptr)->direction)"
		end

	frozen get_sdl_haptic_constant_fade_length (ptr: POINTER): NATURAL_16
			-- duration of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticConstant):Uint16"
		alias
			"fade_length"
		end

	frozen get_sdl_haptic_constant_fade_level (ptr: POINTER): NATURAL_16
			-- level at the end of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticConstant):Uint16"
		alias
			"fade_level"
		end

	frozen get_sdl_haptic_constant_interval (ptr: POINTER): NATURAL_16
			-- how soon before effect can be triggered again
		external
			"C [struct <SDL.h>] (SDL_HapticConstant):Uint16"
		alias
			"interval"
		end

	frozen get_sdl_haptic_constant_length (ptr: POINTER): NATURAL_32
			-- duration of effect (ms)
		external
			"C [struct <SDL.h>] (SDL_HapticConstant):Uint32"
		alias
			"length"
		end

	frozen get_sdl_haptic_constant_level (ptr: POINTER): INTEGER_16
			-- strength of the constant effect
		external
			"C [struct <SDL.h>] (SDL_HapticConstant):Sint16"
		alias
			"level"
		end

	frozen set_sdl_haptic_constant_attack_length (ptr: POINTER; value: NATURAL_16)
			-- duration of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticConstant, Uint16)"
		alias
			"attack_length"
		end

	frozen set_sdl_haptic_constant_attack_level (ptr: POINTER; value: NATURAL_16)
			-- level at the start of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticConstant, Uint16)"
		alias
			"attack_level"
		end

	frozen set_sdl_haptic_constant_button (ptr: POINTER; value: NATURAL_16)
			-- button that triggers effect
		external
			"C [struct <SDL.h>] (SDL_HapticConstant, Uint16)"
		alias
			"button"
		end

	frozen set_sdl_haptic_constant_delay (ptr: POINTER; value: NATURAL_16)
			-- delay before starting effect
		external
			"C [struct <SDL.h>] (SDL_HapticConstant, Uint16)"
		alias
			"delay"
		end

	frozen set_sdl_haptic_constant_fade_length (ptr: POINTER; value: NATURAL_16)
			-- duration of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticConstant, Uint16)"
		alias
			"fade_length"
		end

	frozen set_sdl_haptic_constant_fade_level (ptr: POINTER; value: NATURAL_16)
			-- level at the end of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticConstant, Uint16)"
		alias
			"fade_level"
		end

	frozen set_sdl_haptic_constant_interval (ptr: POINTER; value: NATURAL_16)
			-- how soon before effect can be triggered again
		external
			"C [struct <SDL.h>] (SDL_HapticConstant, Uint16)"
		alias
			"interval"
		end

	frozen set_sdl_haptic_constant_length (ptr: POINTER; value: NATURAL_32)
			-- duration of effect (ms)
		external
			"C [struct <SDL.h>] (SDL_HapticConstant, Uint32)"
		alias
			"length"
		end

	frozen set_sdl_haptic_constant_level (ptr: POINTER; value: INTEGER_16)
			-- strength of the constant effect
		external
			"C [struct <SDL.h>] (SDL_HapticConstant, Sint16)"
		alias
			"level"
		end
	
feature -- Structure SDL_HapticCustom SDL.h

	frozen get_sdl_haptic_custom_attack_length (ptr: POINTER): NATURAL_16
			-- duration of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticCustom):Uint16"
		alias
			"attack_length"
		end

	frozen get_sdl_haptic_custom_attack_level (ptr: POINTER): NATURAL_16
			-- level at the start of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticCustom):Uint16"
		alias
			"attack_level"
		end

	frozen get_sdl_haptic_custom_button (ptr: POINTER): NATURAL_16
			-- button that triggers effect
		external
			"C [struct <SDL.h>] (SDL_HapticCustom):Uint16"
		alias
			"button"
		end

	frozen get_sdl_haptic_custom_channels (ptr: POINTER): NATURAL_8
			-- axes to use, minimum of 1
		external
			"C [struct <SDL.h>] (SDL_HapticCustom):Uint8"
		alias
			"channels"
		end

	frozen get_sdl_haptic_custom_data (ptr: POINTER): POINTER
			-- duration of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticCustom):Uint16*"
		alias
			"data"
		end

	frozen get_sdl_haptic_custom_delay (ptr: POINTER): NATURAL_16
			-- delay before starting effect
		external
			"C [struct <SDL.h>] (SDL_HapticCustom):Uint16"
		alias
			"delay"
		end

	frozen get_sdl_haptic_custom_direction (ptr: POINTER): POINTER
			-- direction of the effect
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_HapticCustom*)$ptr)->direction)"
		end

	frozen get_sdl_haptic_custom_fade_length (ptr: POINTER): NATURAL_16
			-- duration of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticCustom):Uint16"
		alias
			"fade_length"
		end

	frozen get_sdl_haptic_custom_fade_level (ptr: POINTER): NATURAL_16
			-- level at the end of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticCustom):Uint16"
		alias
			"fade_level"
		end

	frozen get_sdl_haptic_custom_interval (ptr: POINTER): NATURAL_16
			-- how soon before effect can be triggered again
		external
			"C [struct <SDL.h>] (SDL_HapticCustom):Uint16"
		alias
			"interval"
		end

	frozen get_sdl_haptic_custom_length (ptr: POINTER): NATURAL_32
			-- duration of effect (ms)
		external
			"C [struct <SDL.h>] (SDL_HapticCustom):Uint32"
		alias
			"length"
		end

	frozen get_sdl_haptic_custom_period (ptr: POINTER): NATURAL_16
			-- period of the samples
		external
			"C [struct <SDL.h>] (SDL_HapticCustom):Uint16"
		alias
			"period"
		end

	frozen get_sdl_haptic_custom_samples (ptr: POINTER): NATURAL_16
			-- number of samples
		external
			"C [struct <SDL.h>] (SDL_HapticCustom):Uint16"
		alias
			"samples"
		end

	frozen set_sdl_haptic_custom_attack_length (ptr: POINTER; value: NATURAL_16)
			-- should contain channels*samples items
		external
			"C [struct <SDL.h>] (SDL_HapticCustom, Uint16)"
		alias
			"attack_length"
		end

	frozen set_sdl_haptic_custom_attack_level (ptr: POINTER; value: NATURAL_16)
			-- level at the start of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticCustom, Uint16)"
		alias
			"attack_level"
		end

	frozen set_sdl_haptic_custom_button (ptr: POINTER; value: NATURAL_16)
			-- button that triggers effect
		external
			"C [struct <SDL.h>] (SDL_HapticCustom, Uint16)"
		alias
			"button"
		end

	frozen set_sdl_haptic_custom_channels (ptr: POINTER; value: NATURAL_8)
			-- axes to use, minimum of 1
		external
			"C [struct <SDL.h>] (SDL_HapticCustom, Uint8)"
		alias
			"channels"
		end

	frozen set_sdl_haptic_custom_data (ptr, value: POINTER)
			-- should contain channels*samples items
		external
			"C [struct <SDL.h>] (SDL_HapticCustom, Uint16*)"
		alias
			"data"
		end

	frozen set_sdl_haptic_custom_delay (ptr: POINTER; value: NATURAL_16)
			-- delay before starting effect
		external
			"C [struct <SDL.h>] (SDL_HapticCustom, Uint16)"
		alias
			"delay"
		end

	frozen set_sdl_haptic_custom_fade_length (ptr: POINTER; value: NATURAL_16)
			-- duration of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticCustom, Uint16)"
		alias
			"fade_length"
		end

	frozen set_sdl_haptic_custom_fade_level (ptr: POINTER; value: NATURAL_16)
			-- level at the end of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticCustom, Uint16)"
		alias
			"fade_level"
		end

	frozen set_sdl_haptic_custom_interval (ptr: POINTER; value: NATURAL_16)
			-- how soon before effect can be triggered again
		external
			"C [struct <SDL.h>] (SDL_HapticCustom, Uint16)"
		alias
			"interval"
		end

	frozen set_sdl_haptic_custom_length (ptr: POINTER; value: NATURAL_32)
			-- duration of effect (ms)
		external
			"C [struct <SDL.h>] (SDL_HapticCustom, Uint32)"
		alias
			"length"
		end

	frozen set_sdl_haptic_custom_period (ptr: POINTER; value: NATURAL_16)
			-- period of the samples
		external
			"C [struct <SDL.h>] (SDL_HapticCustom, Uint16)"
		alias
			"period"
		end

	frozen set_sdl_haptic_custom_samples (ptr: POINTER; value: NATURAL_16)
			-- number of samples
		external
			"C [struct <SDL.h>] (SDL_HapticCustom, Uint16)"
		alias
			"samples"
		end
	
feature -- Structure SDL_HapticDirection SDL.h

	frozen c_sizeof_sdl_haptic_direction: INTEGER_32
			-- Size of an SDL_HapticDirection C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_HapticDirection)"
		end

	frozen get_sdl_haptic_direction_struct_dir_i (ptr: POINTER; index: INTEGER_32): INTEGER_32
			-- the type of encoding
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticDirection*)$ptr)->dir[((int)$index)]"
		end

	frozen get_sdl_haptic_direction_struct_type (ptr: POINTER): NATURAL_8
			-- the type of encoding
		external
			"C [struct <SDL.h>] (SDL_HapticDirection):Uint8"
		alias
			"type"
		end

	frozen set_sdl_haptic_direction_struct_dir_i (ptr: POINTER; index: INTEGER_32; value: INTEGER_32)
			-- the encoded direction
		external
			"C inline use <SDL.h>"
		alias
			"((SDL_HapticDirection*)$ptr)->dir[((int)$index)] = ((Sint32)$value)"
		end

	frozen set_sdl_haptic_direction_struct_type (ptr: POINTER; value: NATURAL_8)
			-- the type of encoding
		external
			"C [struct <SDL.h>] (SDL_HapticDirection, Uint8)"
		alias
			"type"
		end
	
feature -- Structure SDL_HapticEffect SDL.h

	frozen c_sizeof_sdl_haptic_effect: INTEGER_32
			-- Size of an SDL_HapticEffect C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_HapticEffect)"
		end

	frozen get_sdl_haptic_effect_condition (ptr: POINTER): POINTER
			-- condition effect
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_HapticEffect*)$ptr)->condition)"
		end

	frozen get_sdl_haptic_effect_constant (ptr: POINTER): POINTER
			-- constant effect
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_HapticEffect*)$ptr)->constant)"
		end

	frozen get_sdl_haptic_effect_custom (ptr: POINTER): POINTER
			-- custom effect
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_HapticEffect*)$ptr)->custom)"
		end

	frozen get_sdl_haptic_effect_leftright (ptr: POINTER): POINTER
			-- leftright effect
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_HapticEffect*)$ptr)->leftright)"
		end

	frozen get_sdl_haptic_effect_periodic (ptr: POINTER): POINTER
			-- periodic effect
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_HapticEffect*)$ptr)->periodic)"
		end

	frozen get_sdl_haptic_effect_ramp (ptr: POINTER): POINTER
			-- ramp effect
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_HapticEffect*)$ptr)->ramp)"
		end

	frozen get_sdl_haptic_effect_type (ptr: POINTER): NATURAL_16
			-- delay before starting effect
		external
			"C [struct <SDL.h>] (SDL_HapticEffect):Uint16"
		alias
			"type"
		end

	frozen set_sdl_haptic_effect_type (ptr: POINTER; value: NATURAL_16)
			-- delay before starting effect
		external
			"C [struct <SDL.h>] (SDL_HapticEffect, Uint16)"
		alias
			"type"
		end
	
feature -- Structure SDL_HapticLeftRight SDL.h

	frozen get_sdl_haptic_leftright_large_magnitude (ptr: POINTER): NATURAL_16
			-- control of the large controller motor
		external
			"C [struct <SDL.h>] (SDL_HapticLeftRight):Uint16"
		alias
			"large_magnitude"
		end

	frozen get_sdl_haptic_leftright_length (ptr: POINTER): NATURAL_32
			-- duration of effect (ms)
		external
			"C [struct <SDL.h>] (SDL_HapticLeftRight):Uint32"
		alias
			"length"
		end

	frozen get_sdl_haptic_leftright_small_magnitude (ptr: POINTER): NATURAL_16
			-- control of the large controller motor
		external
			"C [struct <SDL.h>] (SDL_HapticLeftRight):Uint16"
		alias
			"small_magnitude"
		end

	frozen set_sdl_haptic_leftright_large_magnitude (ptr: POINTER; value: NATURAL_16)
			-- control of the large controller motor
		external
			"C [struct <SDL.h>] (SDL_HapticLeftRight, Uint16)"
		alias
			"large_magnitude"
		end

	frozen set_sdl_haptic_leftright_length (ptr: POINTER; value: NATURAL_32)
			-- duration of effect (ms)
		external
			"C [struct <SDL.h>] (SDL_HapticLeftRight, Uint32)"
		alias
			"length"
		end

	frozen set_sdl_haptic_leftright_small_magnitude (ptr: POINTER; value: NATURAL_16)
			-- control of the large controller motor
		external
			"C [struct <SDL.h>] (SDL_HapticLeftRight, Uint16)"
		alias
			"small_magnitude"
		end
	
feature -- Structure SDL_HapticPeriodic SDL.h

	frozen get_sdl_haptic_periodic_attack_length (ptr: POINTER): NATURAL_16
			-- duration of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic):Uint16"
		alias
			"attack_length"
		end

	frozen get_sdl_haptic_periodic_attack_level (ptr: POINTER): NATURAL_16
			-- level at the start of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic):Uint16"
		alias
			"attack_level"
		end

	frozen get_sdl_haptic_periodic_button (ptr: POINTER): NATURAL_16
			-- button that triggers effect
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic):Uint16"
		alias
			"button"
		end

	frozen get_sdl_haptic_periodic_delay (ptr: POINTER): NATURAL_16
			-- delay before starting effect
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic):Uint16"
		alias
			"delay"
		end

	frozen get_sdl_haptic_periodic_direction (ptr: POINTER): POINTER
			-- direction of the effect
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_HapticPeriodic*)$ptr)->direction)"
		end

	frozen get_sdl_haptic_periodic_fade_length (ptr: POINTER): NATURAL_16
			-- duration of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic):Uint16"
		alias
			"fade_length"
		end

	frozen get_sdl_haptic_periodic_fade_level (ptr: POINTER): NATURAL_16
			-- level at the end of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic):Uint16"
		alias
			"fade_level"
		end

	frozen get_sdl_haptic_periodic_interval (ptr: POINTER): NATURAL_16
			-- how soon before effect can be triggered again
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic):Uint16"
		alias
			"interval"
		end

	frozen get_sdl_haptic_periodic_length (ptr: POINTER): NATURAL_32
			-- duration of effect (ms)
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic):Uint32"
		alias
			"length"
		end

	frozen get_sdl_haptic_periodic_magnitude (ptr: POINTER): INTEGER_16
			-- peak value; if negative, equivalent to 180 degrees extra phase shift
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic):Sint16"
		alias
			"magnitude"
		end

	frozen get_sdl_haptic_periodic_offset (ptr: POINTER): INTEGER_16
			-- mean value of the wave
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic):Sint16"
		alias
			"offset"
		end

	frozen get_sdl_haptic_periodic_period (ptr: POINTER): NATURAL_16
			-- period of the wave
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic):Uint16"
		alias
			"period"
		end

	frozen get_sdl_haptic_periodic_phase (ptr: POINTER): NATURAL_16
			-- positive phase shift given by hundredth of a degree
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic):Uint16"
		alias
			"phase"
		end

	frozen set_sdl_haptic_periodic_attack_length (ptr: POINTER; value: NATURAL_16)
			-- duration of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic, Uint16)"
		alias
			"attack_length"
		end

	frozen set_sdl_haptic_periodic_attack_level (ptr: POINTER; value: NATURAL_16)
			-- level at the start of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic, Uint16)"
		alias
			"attack_level"
		end

	frozen set_sdl_haptic_periodic_button (ptr: POINTER; value: NATURAL_16)
			-- button that triggers effect
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic, Uint16)"
		alias
			"button"
		end

	frozen set_sdl_haptic_periodic_delay (ptr: POINTER; value: NATURAL_16)
			-- delay before starting effect
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic, Uint16)"
		alias
			"delay"
		end

	frozen set_sdl_haptic_periodic_fade_length (ptr: POINTER; value: NATURAL_16)
			-- duration of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic, Uint16)"
		alias
			"fade_length"
		end

	frozen set_sdl_haptic_periodic_fade_level (ptr: POINTER; value: NATURAL_16)
			-- level at the end of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic, Uint16)"
		alias
			"fade_level"
		end

	frozen set_sdl_haptic_periodic_interval (ptr: POINTER; value: NATURAL_16)
			-- how soon before effect can be triggered again
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic, Uint16)"
		alias
			"interval"
		end

	frozen set_sdl_haptic_periodic_length (ptr: POINTER; value: NATURAL_32)
			-- duration of effect (ms)
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic, Uint32)"
		alias
			"length"
		end

	frozen set_sdl_haptic_periodic_magnitude (ptr: POINTER; value: INTEGER_16)
			-- peak value; if negative, equivalent to 180 degrees extra phase shift
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic, Sint16)"
		alias
			"magnitude"
		end

	frozen set_sdl_haptic_periodic_offset (ptr: POINTER; value: INTEGER_16)
			-- mean value of the wave
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic, Sint16)"
		alias
			"offset"
		end

	frozen set_sdl_haptic_periodic_period (ptr: POINTER; value: NATURAL_16)
			-- period of the wave
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic, Uint16)"
		alias
			"period"
		end

	frozen set_sdl_haptic_periodic_phase (ptr: POINTER; value: NATURAL_16)
			-- positive phase shift given by hundredth of a degree
		external
			"C [struct <SDL.h>] (SDL_HapticPeriodic, Uint16)"
		alias
			"phase"
		end
	
feature -- Structure SDL_HapticRamp SDL.h

	frozen get_sdl_haptic_ramp_attack_length (ptr: POINTER): NATURAL_16
			-- duration of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticRamp):Uint16"
		alias
			"attack_length"
		end

	frozen get_sdl_haptic_ramp_attack_level (ptr: POINTER): NATURAL_16
			-- level at the start of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticRamp):Uint16"
		alias
			"attack_level"
		end

	frozen get_sdl_haptic_ramp_button (ptr: POINTER): NATURAL_16
			-- button that triggers effect
		external
			"C [struct <SDL.h>] (SDL_HapticRamp):Uint16"
		alias
			"button"
		end

	frozen get_sdl_haptic_ramp_delay (ptr: POINTER): NATURAL_16
			-- delay before starting effect
		external
			"C [struct <SDL.h>] (SDL_HapticRamp):Uint16"
		alias
			"delay"
		end

	frozen get_sdl_haptic_ramp_direction (ptr: POINTER): POINTER
			-- direction of the effect
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_HapticRamp*)$ptr)->direction)"
		end

	frozen get_sdl_haptic_ramp_end (ptr: POINTER): INTEGER_16
			-- strength of the ramp effect at the end
		external
			"C [struct <SDL.h>] (SDL_HapticRamp):Sint16"
		alias
			"end"
		end

	frozen get_sdl_haptic_ramp_fade_length (ptr: POINTER): NATURAL_16
			-- duration of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticRamp):Uint16"
		alias
			"fade_length"
		end

	frozen get_sdl_haptic_ramp_fade_level (ptr: POINTER): NATURAL_16
			-- level at the end of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticRamp):Uint16"
		alias
			"fade_level"
		end

	frozen get_sdl_haptic_ramp_interval (ptr: POINTER): NATURAL_16
			-- how soon before effect can be triggered again
		external
			"C [struct <SDL.h>] (SDL_HapticRamp):Uint16"
		alias
			"interval"
		end

	frozen get_sdl_haptic_ramp_length (ptr: POINTER): NATURAL_32
			-- duration of effect (ms)
		external
			"C [struct <SDL.h>] (SDL_HapticRamp):Uint32"
		alias
			"length"
		end

	frozen get_sdl_haptic_ramp_start (ptr: POINTER): INTEGER_16
			-- strength of the ramp effect at the start
		external
			"C [struct <SDL.h>] (SDL_HapticRamp):Sint16"
		alias
			"start"
		end

	frozen set_sdl_haptic_ramp_attack_length (ptr: POINTER; value: NATURAL_16)
			-- duration of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticRamp, Uint16)"
		alias
			"attack_length"
		end

	frozen set_sdl_haptic_ramp_attack_level (ptr: POINTER; value: NATURAL_16)
			-- level at the start of the attack
		external
			"C [struct <SDL.h>] (SDL_HapticRamp, Uint16)"
		alias
			"attack_level"
		end

	frozen set_sdl_haptic_ramp_button (ptr: POINTER; value: NATURAL_16)
			-- button that triggers effect
		external
			"C [struct <SDL.h>] (SDL_HapticRamp, Uint16)"
		alias
			"button"
		end

	frozen set_sdl_haptic_ramp_delay (ptr: POINTER; value: NATURAL_16)
			-- delay before starting effect
		external
			"C [struct <SDL.h>] (SDL_HapticRamp, Uint16)"
		alias
			"delay"
		end

	frozen set_sdl_haptic_ramp_end (ptr: POINTER; value: INTEGER_16)
			-- strength of the ramp effect at the end
		external
			"C [struct <SDL.h>] (SDL_HapticRamp, Sint16)"
		alias
			"end"
		end

	frozen set_sdl_haptic_ramp_fade_length (ptr: POINTER; value: NATURAL_16)
			-- duration of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticRamp, Uint16)"
		alias
			"fade_length"
		end

	frozen set_sdl_haptic_ramp_fade_level (ptr: POINTER; value: NATURAL_16)
			-- level at the end of the fade
		external
			"C [struct <SDL.h>] (SDL_HapticRamp, Uint16)"
		alias
			"fade_level"
		end

	frozen set_sdl_haptic_ramp_interval (ptr: POINTER; value: NATURAL_16)
			-- how soon before effect can be triggered again
		external
			"C [struct <SDL.h>] (SDL_HapticRamp, Uint16)"
		alias
			"interval"
		end

	frozen set_sdl_haptic_ramp_length (ptr: POINTER; value: NATURAL_32)
			-- duration of effect (ms)
		external
			"C [struct <SDL.h>] (SDL_HapticRamp, Uint32)"
		alias
			"length"
		end

	frozen set_sdl_haptic_ramp_start (ptr: POINTER; value: INTEGER_16)
			-- strength of the ramp effect at the start
		external
			"C [struct <SDL.h>] (SDL_HapticRamp, Sint16)"
		alias
			"start"
		end
	
feature -- Structure SDL_JoyAxisEvent SDL.h

	frozen c_sizeof_sdl_joy_axis_event: INTEGER_32
			-- Size of an SDL_JoyAxisEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_JoyAxisEvent)"
		end

	frozen get_joy_axis_event_struct_axis (ptr: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_JoyAxisEvent):Uint8"
		alias
			"axis"
		end

	frozen get_joy_axis_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_JoyAxisEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_joy_axis_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_JOYAXISMOTION
		external
			"C [struct <SDL.h>] (SDL_JoyAxisEvent):Uint32"
		alias
			"type"
		end

	frozen get_joy_axis_event_struct_value (ptr: POINTER): INTEGER_16
		external
			"C [struct <SDL.h>] (SDL_JoyAxisEvent):Sint16"
		alias
			"value"
		end

	frozen get_joy_axis_event_struct_which (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_JoyAxisEvent):SDL_JoystickID"
		alias
			"which"
		end

	frozen set_joy_axis_event_struct_axis (ptr: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_JoyAxisEvent, Uint8)"
		alias
			"axis"
		end

	frozen set_joy_axis_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_JoyAxisEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_joy_axis_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_JOYAXISMOTION
		external
			"C [struct <SDL.h>] (SDL_JoyAxisEvent, Uint32)"
		alias
			"type"
		end

	frozen set_joy_axis_event_struct_value (ptr: POINTER; value: INTEGER_16)
		external
			"C [struct <SDL.h>] (SDL_JoyAxisEvent, Sint16)"
		alias
			"value"
		end

	frozen set_joy_axis_event_struct_which (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_JoyAxisEvent, SDL_JoystickID)"
		alias
			"which"
		end
	
feature -- Structure SDL_JoyBallEvent SDL.h

	frozen c_sizeof_sdl_joy_ball_event: INTEGER_32
			-- Size of an SDL_JoyBallEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_JoyBallEvent)"
		end

	frozen get_joy_ball_event_struct_ball (ptr: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_JoyBallEvent):Uint8"
		alias
			"ball"
		end

	frozen get_joy_ball_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_JoyBallEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_joy_ball_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_JOYBALLMOTION
		external
			"C [struct <SDL.h>] (SDL_JoyBallEvent):Uint32"
		alias
			"type"
		end

	frozen get_joy_ball_event_struct_which (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_JoyBallEvent):SDL_JoystickID"
		alias
			"which"
		end

	frozen get_joy_ball_event_struct_xrel (ptr: POINTER): INTEGER_16
		external
			"C [struct <SDL.h>] (SDL_JoyBallEvent):Sint16"
		alias
			"xrel"
		end

	frozen get_joy_ball_event_struct_yrel (ptr: POINTER): INTEGER_16
		external
			"C [struct <SDL.h>] (SDL_JoyBallEvent):Sint16"
		alias
			"yrel"
		end

	frozen set_joy_ball_event_struct_ball (ptr: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_JoyBallEvent, Uint8)"
		alias
			"ball"
		end

	frozen set_joy_ball_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_JoyBallEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_joy_ball_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_JOYBALLMOTION
		external
			"C [struct <SDL.h>] (SDL_JoyBallEvent, Uint32)"
		alias
			"type"
		end

	frozen set_joy_ball_event_struct_which (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_JoyBallEvent, SDL_JoystickID)"
		alias
			"which"
		end

	frozen set_joy_ball_event_struct_xrel (ptr: POINTER; value: INTEGER_16)
		external
			"C [struct <SDL.h>] (SDL_JoyBallEvent, Sint16)"
		alias
			"xrel"
		end

	frozen set_joy_ball_event_struct_yrel (ptr: POINTER; value: INTEGER_16)
		external
			"C [struct <SDL.h>] (SDL_JoyBallEvent, Sint16)"
		alias
			"yrel"
		end
	
feature -- Structure SDL_JoyButtonEvent SDL.h

	frozen c_sizeof_sdl_joy_button_event: INTEGER_32
			-- Size of an SDL_JoyButtonEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_JoyButtonEvent)"
		end

	frozen get_joy_button_event_struct_button (ptr: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_JoyButtonEvent):Uint8"
		alias
			"button"
		end

	frozen get_joy_button_event_struct_state (ptr: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_JoyButtonEvent):Uint8"
		alias
			"state"
		end

	frozen get_joy_button_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_JoyButtonEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_joy_button_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP
		external
			"C [struct <SDL.h>] (SDL_JoyButtonEvent):Uint32"
		alias
			"type"
		end

	frozen get_joy_button_event_struct_which (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_JoyButtonEvent):SDL_JoystickID"
		alias
			"which"
		end

	frozen set_joy_button_event_struct_button (ptr: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_JoyButtonEvent, Uint8)"
		alias
			"button"
		end

	frozen set_joy_button_event_struct_state (ptr: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_JoyButtonEvent, Uint8)"
		alias
			"state"
		end

	frozen set_joy_button_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_JoyButtonEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_joy_button_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP
		external
			"C [struct <SDL.h>] (SDL_JoyButtonEvent, Uint32)"
		alias
			"type"
		end

	frozen set_joy_button_event_struct_which (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_JoyButtonEvent, SDL_JoystickID)"
		alias
			"which"
		end
	
feature -- Structure SDL_JoyDeviceEvent SDL.h

	frozen c_sizeof_sdl_joy_device_event: INTEGER_32
			-- Size of an SDL_JoyDeviceEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_JoyDeviceEvent)"
		end

	frozen get_joy_device_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_JoyDeviceEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_joy_device_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_JOYDEVICEADDED or SDL_JOYDEVICEREMOVED
		external
			"C [struct <SDL.h>] (SDL_JoyDeviceEvent):Uint32"
		alias
			"type"
		end

	frozen get_joy_device_event_struct_which (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_JoyDeviceEvent):SDL_JoystickID"
		alias
			"which"
		end

	frozen set_joy_device_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_JoyDeviceEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_joy_device_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_JOYDEVICEADDED or SDL_JOYDEVICEREMOVED
		external
			"C [struct <SDL.h>] (SDL_JoyDeviceEvent, Uint32)"
		alias
			"type"
		end

	frozen set_joy_device_event_struct_which (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_JoyDeviceEvent, SDL_JoystickID)"
		alias
			"which"
		end
	
feature -- Structure SDL_JoyHatEvent SDL.h

	frozen c_sizeof_sdl_joy_hat_event: INTEGER_32
			-- Size of an SDL_JoyHatEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_JoyHatEvent)"
		end

	frozen get_joy_hat_event_struct_hat (ptr: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_JoyHatEvent):Uint8"
		alias
			"hat"
		end

	frozen get_joy_hat_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_JoyHatEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_joy_hat_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_JOYHATMOTION
		external
			"C [struct <SDL.h>] (SDL_JoyHatEvent):Uint32"
		alias
			"type"
		end

	frozen get_joy_hat_event_struct_value (ptr: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_JoyHatEvent):Uint8"
		alias
			"value"
		end

	frozen get_joy_hat_event_struct_which (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_JoyHatEvent):SDL_JoystickID"
		alias
			"which"
		end

	frozen set_joy_hat_event_struct_hat (ptr: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_JoyHatEvent, Uint8)"
		alias
			"hat"
		end

	frozen set_joy_hat_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_JoyHatEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_joy_hat_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_JOYHATMOTION
		external
			"C [struct <SDL.h>] (SDL_JoyHatEvent, Uint32)"
		alias
			"type"
		end

	frozen set_joy_hat_event_struct_value (ptr: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_JoyHatEvent, Uint8)"
		alias
			"value"
		end

	frozen set_joy_hat_event_struct_which (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_JoyHatEvent, SDL_JoystickID)"
		alias
			"which"
		end
	
feature -- Structure SDL_KeyboardEvent SDL.h

	frozen c_sizeof_sdl_keyboard_event: INTEGER_32
			-- Size of an SDL_KeyboardEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_KeyboardEvent)"
		end

	frozen get_keyboard_event_struct_keysym_pointer (event: POINTER): POINTER
			-- Contains key press information
			-- Return a pointer to SDL_Keysym
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_KeyboardEvent *)$event)->keysym)"
		end

	frozen get_keyboard_event_struct_repeat (event: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_KeyboardEvent):Uint8"
		alias
			"repeat"
		end

	frozen get_keyboard_event_struct_state (event: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_KeyboardEvent):Uint8"
		alias
			"state"
		end

	frozen get_keyboard_event_struct_timestamp (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_KeyboardEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_keyboard_event_struct_type (event: POINTER): NATURAL_32
			-- Event type. Always SDL_KEYDOWN or SDL_KEYUP.
		external
			"C [struct <SDL.h>] (SDL_KeyboardEvent):Uint32"
		alias
			"type"
		end

	frozen get_keyboard_event_struct_window_id (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_KeyboardEvent):Uint32"
		alias
			"windowID"
		end

	frozen set_keyboard_event_struct_repeat (event: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_KeyboardEvent, Uint8)"
		alias
			"repeat"
		end

	frozen set_keyboard_event_struct_state (event: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_KeyboardEvent, Uint8)"
		alias
			"state"
		end

	frozen set_keyboard_event_struct_timestamp (event: POINTER; timestamp: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_KeyboardEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_keyboard_event_struct_type (event: POINTER; type: NATURAL_32)
			-- Event type. Always SDL_KEYDOWN or SDL_KEYUP.
		external
			"C [struct <SDL.h>] (SDL_KeyboardEvent, Uint32)"
		alias
			"type"
		end

	frozen set_keyboard_event_struct_window_id (event: POINTER; window_id: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_KeyboardEvent, Uint32)"
		alias
			"windowID"
		end
	
feature -- Structure SDL_Keysym SDL.h

	frozen c_sizeof_sdl_keysym: INTEGER_32
			-- Size of an SDL_keysym C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_Keysym)"
		end

	frozen get_key_sym_struct_mod (ptr: POINTER): NATURAL_16
		external
			"C [struct <SDL.h>] (SDL_Keysym):Uint16"
		alias
			"mod"
		end

	frozen get_key_sym_struct_scancode (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_Keysym):int"
		alias
			"scancode"
		end

	frozen get_key_sym_struct_sym (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_Keysym):int"
		alias
			"sym"
		end

	frozen set_key_sym_struct_mod (ptr: POINTER; value: NATURAL_16)
		external
			"C [struct <SDL.h>] (SDL_Keysym, Uint16)"
		alias
			"mod"
		end

	frozen set_key_sym_struct_scancode (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_Keysym, int)"
		alias
			"scancode"
		end

	frozen set_key_sym_struct_sym (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_Keysym, int)"
		alias
			"sym"
		end
	
feature -- Structure SDL_MouseButtonEvent SDL.h

	frozen c_sizeof_sdl_mouse_button_event: INTEGER_32
			-- Size of an SDL_MouseButtonEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_MouseButtonEvent)"
		end

	frozen get_mouse_button_event_struct_button (ptr: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent):Uint8"
		alias
			"button"
		end

	frozen get_mouse_button_event_struct_clicks (ptr: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent):Uint8"
		alias
			"clicks"
		end

	frozen get_mouse_button_event_struct_state (ptr: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent):Uint8"
		alias
			"state"
		end

	frozen get_mouse_button_event_struct_timestamp (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_mouse_button_event_struct_type (event: POINTER): NATURAL_32
			-- Event type. Always SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent):Uint32"
		alias
			"type"
		end

	frozen get_mouse_button_event_struct_which (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent):Uint32"
		alias
			"which"
		end

	frozen get_mouse_button_event_struct_window_id (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent):Uint32"
		alias
			"windowID"
		end

	frozen get_mouse_button_event_struct_x (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent):Sint32"
		alias
			"x"
		end

	frozen get_mouse_button_event_struct_y (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent):Sint32"
		alias
			"y"
		end

	frozen set_mouse_button_event_struct_button (ptr: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent, Uint8)"
		alias
			"button"
		end

	frozen set_mouse_button_event_struct_clicks (ptr: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent, Uint8)"
		alias
			"clicks"
		end

	frozen set_mouse_button_event_struct_state (ptr: POINTER; value: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent, Uint8)"
		alias
			"state"
		end

	frozen set_mouse_button_event_struct_timestamp (event: POINTER; timestamp: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_mouse_button_event_struct_type (event: POINTER; type: NATURAL_32)
			-- Event type. Always SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent, Uint32)"
		alias
			"type"
		end

	frozen set_mouse_button_event_struct_which (event: POINTER; which: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent, Uint32)"
		alias
			"which"
		end

	frozen set_mouse_button_event_struct_window_id (event: POINTER; window_id: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent, Uint32)"
		alias
			"windowID"
		end

	frozen set_mouse_button_event_struct_x (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent, Sint32)"
		alias
			"x"
		end

	frozen set_mouse_button_event_struct_y (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_MouseButtonEvent, Sint32)"
		alias
			"y"
		end
	
feature -- Structure SDL_MouseMotionEvent SDL.h

	frozen c_sizeof_sdl_mouse_motion_event: INTEGER_32
			-- Size of an SDL_MouseMotionEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_MouseMotionEvent)"
		end

	frozen get_mouse_motion_event_struct_state (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent):Uint32"
		alias
			"state"
		end

	frozen get_mouse_motion_event_struct_timestamp (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_mouse_motion_event_struct_type (event: POINTER): NATURAL_32
			-- Event type. Always SDL_MOUSEMOTION
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent):Uint32"
		alias
			"type"
		end

	frozen get_mouse_motion_event_struct_which (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent):Uint32"
		alias
			"which"
		end

	frozen get_mouse_motion_event_struct_window_id (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent):Uint32"
		alias
			"windowID"
		end

	frozen get_mouse_motion_event_struct_x (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent):Sint32"
		alias
			"x"
		end

	frozen get_mouse_motion_event_struct_xrel (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent):Sint32"
		alias
			"xrel"
		end

	frozen get_mouse_motion_event_struct_y (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent):Sint32"
		alias
			"y"
		end

	frozen get_mouse_motion_event_struct_yrel (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent):Sint32"
		alias
			"yrel"
		end

	frozen set_mouse_motion_event_struct_state (event: POINTER; state: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent, Uint32)"
		alias
			"state"
		end

	frozen set_mouse_motion_event_struct_timestamp (event: POINTER; timestamp: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_mouse_motion_event_struct_type (event: POINTER; type: NATURAL_32)
			-- Event type. Always SDL_MOUSEMOTION
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent, Uint32)"
		alias
			"type"
		end

	frozen set_mouse_motion_event_struct_which (event: POINTER; which: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent, Uint32)"
		alias
			"which"
		end

	frozen set_mouse_motion_event_struct_window_id (event: POINTER; window_id: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent, Uint32)"
		alias
			"windowID"
		end

	frozen set_mouse_motion_event_struct_x (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent, Sint32)"
		alias
			"x"
		end

	frozen set_mouse_motion_event_struct_xrel (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent, Sint32)"
		alias
			"xrel"
		end

	frozen set_mouse_motion_event_struct_y (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent, Sint32)"
		alias
			"y"
		end

	frozen set_mouse_motion_event_struct_yrel (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_MouseMotionEvent, Sint32)"
		alias
			"yrel"
		end
	
feature -- Structure SDL_MouseWheelEvent SDL.h

	frozen c_sizeof_sdl_mouse_wheel_event: INTEGER_32
			-- Size of an SDL_MouseWheelEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_MouseWheelEvent)"
		end

	frozen get_mouse_wheel_event_struct_timestamp (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_MouseWheelEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_mouse_wheel_event_struct_type (event: POINTER): NATURAL_32
			-- Event type. Always SDL_MOUSEWHEEL
		external
			"C [struct <SDL.h>] (SDL_MouseWheelEvent):Uint32"
		alias
			"type"
		end

	frozen get_mouse_wheel_event_struct_which (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_MouseWheelEvent):Uint32"
		alias
			"which"
		end

	frozen get_mouse_wheel_event_struct_window_id (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_MouseWheelEvent):Uint32"
		alias
			"windowID"
		end

	frozen get_mouse_wheel_event_struct_x (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_MouseWheelEvent):Sint32"
		alias
			"x"
		end

	frozen get_mouse_wheel_event_struct_y (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_MouseWheelEvent):Sint32"
		alias
			"y"
		end

	frozen set_mouse_wheel_event_struct_timestamp (event: POINTER; timestamp: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_MouseWheelEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_mouse_wheel_event_struct_type (event: POINTER; type: NATURAL_32)
			-- Event type. Always SDL_MOUSEWHEEL
		external
			"C [struct <SDL.h>] (SDL_MouseWheelEvent, Uint32)"
		alias
			"type"
		end

	frozen set_mouse_wheel_event_struct_which (event: POINTER; which: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_MouseWheelEvent, Uint32)"
		alias
			"which"
		end

	frozen set_mouse_wheel_event_struct_window_id (event: POINTER; window_id: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_MouseWheelEvent, Uint32)"
		alias
			"windowID"
		end

	frozen set_mouse_wheel_event_struct_x (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_MouseWheelEvent, Sint32)"
		alias
			"x"
		end

	frozen set_mouse_wheel_event_struct_y (ptr: POINTER; value: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_MouseWheelEvent, Sint32)"
		alias
			"y"
		end
	
feature -- Structure SDL_MultiGestureEvent SDL.h

	frozen c_sizeof_sdl_multi_gesture_event: INTEGER_32
			-- Size of an SDL_MultiGestureEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_MultiGestureEvent)"
		end

	frozen get_multi_gesture_event_struct_ddist (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent):float"
		alias
			"dDist"
		end

	frozen get_multi_gesture_event_struct_dtheta (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent):float"
		alias
			"dTheta"
		end

	frozen get_multi_gesture_event_struct_num_fingers (ptr: POINTER): NATURAL_16
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent):Uint16"
		alias
			"numFingers"
		end

	frozen get_multi_gesture_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_multi_gesture_event_struct_touch_id (ptr: POINTER): INTEGER_64
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent):SDL_TouchID"
		alias
			"touchId"
		end

	frozen get_multi_gesture_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_MULTIGESTURE
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent):Uint32"
		alias
			"type"
		end

	frozen get_multi_gesture_event_struct_x (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent):float"
		alias
			"x"
		end

	frozen get_multi_gesture_event_struct_y (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent):float"
		alias
			"y"
		end

	frozen set_multi_gesture_event_struct_ddist (ptr: POINTER; value: REAL_32)
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent, float)"
		alias
			"dDist"
		end

	frozen set_multi_gesture_event_struct_dtheta (ptr: POINTER; value: REAL_32)
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent, float)"
		alias
			"dTheta"
		end

	frozen set_multi_gesture_event_struct_num_fingers (ptr: POINTER; value: NATURAL_16)
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent, Uint16)"
		alias
			"numFingers"
		end

	frozen set_multi_gesture_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_multi_gesture_event_struct_touch_id (ptr: POINTER; value: INTEGER_64)
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent, SDL_TouchID)"
		alias
			"touchId"
		end

	frozen set_multi_gesture_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_MULTIGESTURE
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent, Uint32)"
		alias
			"type"
		end

	frozen set_multi_gesture_event_struct_x (ptr: POINTER; value: REAL_32)
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent, float)"
		alias
			"x"
		end

	frozen set_multi_gesture_event_struct_y (ptr: POINTER; value: REAL_32)
		external
			"C [struct <SDL.h>] (SDL_MultiGestureEvent, float)"
		alias
			"y"
		end
	
feature -- Structure SDL_Palette SDL.h

	frozen get_sdl_palette_struct_color_i (ptr: POINTER; index: INTEGER_32): POINTER
			-- SDL_Color at index
		external
			"C inline use <SDL.h>"
		alias
			"&(((SDL_Palette*)$ptr)->colors[(int) $index])"
		end

	frozen get_sdl_palette_struct_ncolors (ptr: POINTER): INTEGER_32
			-- the number of colors in the palette
		external
			"C [struct <SDL.h>] (SDL_Palette):int"
		alias
			"ncolors"
		end

	frozen set_sdl_palette_struct_ncolors (ptr: POINTER; value: INTEGER_32)
			-- the number of colors in the palette
		external
			"C [struct <SDL.h>] (SDL_Palette, int)"
		alias
			"ncolors"
		end
	
feature -- Structure SDL_PixelFormat SDL.h

	frozen get_sdl_pixel_format_struct_amask (ptr: POINTER): NATURAL_32
			-- a mask representing the location of the alpha component of the pixel
		external
			"C [struct <SDL.h>] (SDL_PixelFormat):Uint32"
		alias
			"Amask"
		end

	frozen get_sdl_pixel_format_struct_bits_per_pixel (ptr: POINTER): NATURAL_8
			-- the number of significant bits in a pixel value, eg: 8, 15, 16, 24, 32
		external
			"C [struct <SDL.h>] (SDL_PixelFormat):Uint8"
		alias
			"BitsPerPixel"
		end

	frozen get_sdl_pixel_format_struct_bmask (ptr: POINTER): NATURAL_32
			-- a mask representing the location of the blue component of the pixel
		external
			"C [struct <SDL.h>] (SDL_PixelFormat):Uint32"
		alias
			"Bmask"
		end

	frozen get_sdl_pixel_format_struct_bytes_per_pixel (ptr: POINTER): NATURAL_8
			-- the number of bytes required to hold a pixel value, eg: 1, 2, 3, 4
		external
			"C [struct <SDL.h>] (SDL_PixelFormat):Uint8"
		alias
			"BytesPerPixel"
		end

	frozen get_sdl_pixel_format_struct_format (ptr: POINTER): NATURAL_32
			-- the SDL_PixelFormatEnum values
		external
			"C [struct <SDL.h>] (SDL_PixelFormat):Uint32"
		alias
			"format"
		end

	frozen get_sdl_pixel_format_struct_gmask (ptr: POINTER): NATURAL_32
			-- a mask representing the location of the green component of the pixel
		external
			"C [struct <SDL.h>] (SDL_PixelFormat):Uint32"
		alias
			"Gmask"
		end

	frozen get_sdl_pixel_format_struct_palette (ptr: POINTER): POINTER
			-- an SDL_Palette structure associated with this pixel format, or NULL if the format doesn't have a palette
		external
			"C [struct <SDL.h>] (SDL_PixelFormat):SDL_Palette*"
		alias
			"palette"
		end

	frozen get_sdl_pixel_format_struct_rmask (ptr: POINTER): NATURAL_32
			-- a mask representing the location of the red component of the pixel
		external
			"C [struct <SDL.h>] (SDL_PixelFormat):Uint32"
		alias
			"Rmask"
		end
	
feature -- Structure SDL_Point SDL.h

	frozen c_sizeof_sdl_point: INTEGER_32
			-- Size of an SDL_Point C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_Point)"
		end

	frozen get_point_struct_x (point: POINTER): INTEGER_32
			-- X location of the point
		external
			"C [struct <SDL.h>] (SDL_Point):int"
		alias
			"x"
		end

	frozen get_point_struct_y (point: POINTER): INTEGER_32
			-- Y location of the point
		external
			"C [struct <SDL.h>] (SDL_Point):int"
		alias
			"y"
		end

	frozen set_point_struct_x (point: POINTER; x: INTEGER_32)
			-- X location of the point
		external
			"C [struct <SDL.h>] (SDL_Point, int)"
		alias
			"x"
		end

	frozen set_point_struct_y (point: POINTER; y: INTEGER_32)
			-- Y location of the point
		external
			"C [struct <SDL.h>] (SDL_Point, int)"
		alias
			"y"
		end
	
feature -- Structure SDL_QuitEvent SDL.h

	frozen c_sizeof_sdl_quit_event: INTEGER_32
			-- Size of an SDL_QuitEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_QuitEvent)"
		end

	frozen get_quit_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_ControllerDeviceEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_quit_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_QUIT
		external
			"C [struct <SDL.h>] (SDL_QuitEvent):Uint32"
		alias
			"type"
		end

	frozen set_quit_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_ControllerDeviceEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_quit_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_QUIT
		external
			"C [struct <SDL.h>] (SDL_QuitEvent, Uint32)"
		alias
			"type"
		end
	
feature -- Structure SDL_Rect SDL.h

	frozen c_sizeof_sdl_rect: INTEGER_32
			-- Size of an SDL_Rect C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_Rect)"
		end

	frozen get_rect_struct_h (rect: POINTER): INTEGER_32
			-- Height of the rectangle
		external
			"C [struct <SDL.h>] (SDL_Rect):int"
		alias
			"h"
		end

	frozen get_rect_struct_w (rect: POINTER): INTEGER_32
			-- Width of the rectangle
		external
			"C [struct <SDL.h>] (SDL_Rect):int"
		alias
			"w"
		end

	frozen get_rect_struct_x (rect: POINTER): INTEGER_32
			-- X location of the rectangle's upper left corner
		external
			"C [struct <SDL.h>] (SDL_Rect):int"
		alias
			"x"
		end

	frozen get_rect_struct_y (rect: POINTER): INTEGER_32
			-- Y location of the rectangle's upper left corner
		external
			"C [struct <SDL.h>] (SDL_Rect):int"
		alias
			"y"
		end

	frozen set_rect_struct_h (rect: POINTER; h: INTEGER_32)
			-- Height of the rectangle
		external
			"C [struct <SDL.h>] (SDL_Rect, int)"
		alias
			"h"
		end

	frozen set_rect_struct_w (rect: POINTER; w: INTEGER_32)
			-- Width of the rectangle
		external
			"C [struct <SDL.h>] (SDL_Rect, int)"
		alias
			"w"
		end

	frozen set_rect_struct_x (rect: POINTER; x: INTEGER_32)
			-- X location of the rectangle's upper left corner
		external
			"C [struct <SDL.h>] (SDL_Rect, int)"
		alias
			"x"
		end

	frozen set_rect_struct_y (rect: POINTER; y: INTEGER_32)
			-- Y location of the rectangle's upper left corner
		external
			"C [struct <SDL.h>] (SDL_Rect, int)"
		alias
			"y"
		end
	
feature -- Structure SDL_RendererInfo SDL.h

	frozen c_sizeof_sdl_renderer_info: INTEGER_32
			-- Size of an SDL_RendererInfo C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_RendererInfo)"
		end

	frozen get_sdl_renderer_info_flags (ptr: POINTER): NATURAL_32
			-- Every supported renderer flags
		external
			"C [struct <SDL.h>] (SDL_RendererInfo):Uint32"
		alias
			"flags"
		end

	frozen get_sdl_renderer_info_max_texture_height (ptr: POINTER): INTEGER_32
			-- The maximum height of texture that the renderer driver can manage
			-- (0 for unknown)
		external
			"C [struct <SDL.h>] (SDL_RendererInfo):int"
		alias
			"max_texture_height"
		end

	frozen get_sdl_renderer_info_max_texture_width (ptr: POINTER): INTEGER_32
			-- The maximum width of texture that the renderer driver can manage
			-- (0 for unknown)
		external
			"C [struct <SDL.h>] (SDL_RendererInfo):int"
		alias
			"max_texture_width"
		end

	frozen get_sdl_renderer_info_name (ptr: POINTER): POINTER
			-- Retreive the name of the renderer driver
		external
			"C [struct <SDL.h>] (SDL_RendererInfo):const char*"
		alias
			"name"
		end

	frozen get_sdl_renderer_info_num_texture_formats (ptr: POINTER): NATURAL_32
			-- The number of available texture formats
		external
			"C [struct <SDL.h>] (SDL_RendererInfo):Uint32"
		alias
			"num_texture_formats"
		end

	frozen get_sdl_renderer_info_texture_formats (ptr: POINTER; index: INTEGER_32): NATURAL_32
			-- The i-th texture format
		external
			"C inline use <SDL.h>"
		alias
			"((Uint32*)(((SDL_RendererInfo*)$ptr)->texture_formats))[(int)$index]"
		end
	
feature -- Structure SDL_Surface SDL.h

	frozen get_sdl_surface_struct_format (ptr: POINTER): POINTER
			-- the format of the pixels stored in the surface
		external
			"C [struct <SDL.h>] (SDL_Surface):SDL_PixelFormat*"
		alias
			"format"
		end

	frozen get_sdl_surface_struct_h (ptr: POINTER): INTEGER_32
			-- the height in pixels
		external
			"C [struct <SDL.h>] (SDL_Surface):int"
		alias
			"h"
		end

	frozen get_sdl_surface_struct_pitch (ptr: POINTER): INTEGER_32
			-- the length of a row of pixels in bytes
		external
			"C [struct <SDL.h>] (SDL_Surface):int"
		alias
			"pitch"
		end

	frozen get_sdl_surface_struct_pixels (ptr: POINTER): POINTER
			-- the pointer to the actual pixel data
		external
			"C [struct <SDL.h>] (SDL_Surface):void*"
		alias
			"pixels"
		end

	frozen get_sdl_surface_struct_refcount (ptr: POINTER): INTEGER_32
			-- reference count that can be incremented by the application
		external
			"C [struct <SDL.h>] (SDL_Surface):int"
		alias
			"refcount"
		end

	frozen get_sdl_surface_struct_w (ptr: POINTER): INTEGER_32
			-- the width in pixels
		external
			"C [struct <SDL.h>] (SDL_Surface):int"
		alias
			"w"
		end
	
feature -- Structure SDL_SysWMinfo SDL.h

	frozen c_sizeof_sdl_sys_wm_info: INTEGER_32
			-- Size of an SDL_SysWMinfo C structure.
		external
			"C inline use <SDL_syswm.h>"
		alias
			"sizeof(SDL_SysWMinfo)"
		end

	frozen get_sys_wm_struct_subsystem (ptr: POINTER): INTEGER_32
		external
			"C [struct <SDL_syswm.h>] (SDL_SysWMinfo):int"
		alias
			"subsystem"
		end

	frozen get_sys_wm_struct_version (ptr: POINTER): POINTER
			-- Set to the version of the current SDL library.
		external
			"C inline use <SDL_syswm.h>"
		alias
			"&(((SDL_SysWMinfo*)$ptr)->version)"
		end
	
feature -- Structure SDL_TextEditingEvent SDL.h

	frozen c_sizeof_sdl_text_editing_event: INTEGER_32
			-- Size of an SDL_TextEditingEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_TextEditingEvent)"
		end

	frozen get_text_editing_event_struct_length (event: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_TextEditingEvent):Sint32"
		alias
			"length"
		end

	frozen get_text_editing_event_struct_start (event: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_TextEditingEvent):Sint32"
		alias
			"start"
		end

	frozen get_text_editing_event_struct_text (event: POINTER): POINTER
		external
			"C inline use <SDL.h>"
		alias
			"&((((SDL_TextEditingEvent *)$event)->text)[0])"
		end

	frozen get_text_editing_event_struct_timestamp (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_TextEditingEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_text_editing_event_struct_type (event: POINTER): NATURAL_32
			-- Event type. Always SDL_TEXTEDITING
		external
			"C [struct <SDL.h>] (SDL_TextEditingEvent):Uint32"
		alias
			"type"
		end

	frozen get_text_editing_event_struct_window_id (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_TextEditingEvent):Uint32"
		alias
			"windowID"
		end

	frozen set_text_editing_event_struct_length (event: POINTER; length: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_TextEditingEvent, Sint32)"
		alias
			"length"
		end

	frozen set_text_editing_event_struct_start (event: POINTER; start: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_TextEditingEvent, Sint32)"
		alias
			"start"
		end

	frozen set_text_editing_event_struct_timestamp (event: POINTER; timestamp: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_TextEditingEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_text_editing_event_struct_type (event: POINTER; type: NATURAL_32)
			-- Event type. Always SDL_TEXTEDITING
		external
			"C [struct <SDL.h>] (SDL_TextEditingEvent, Uint32)"
		alias
			"type"
		end

	frozen set_text_editing_event_struct_window_id (event: POINTER; window_id: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_TextEditingEvent, Uint32)"
		alias
			"windowID"
		end
	
feature -- Structure SDL_TextInputEvent SDL.h

	frozen c_sizeof_sdl_text_input_event: INTEGER_32
			-- Size of an SDL_TextInputEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_TextInputEvent)"
		end

	frozen get_text_input_event_struct_text (event: POINTER): POINTER
		external
			"C inline use <SDL.h>"
		alias
			"&((((SDL_TextInputEvent *)$event)->text)[0])"
		end

	frozen get_text_input_event_struct_timestamp (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_TextInputEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_text_input_event_struct_type (event: POINTER): NATURAL_32
			-- Event type. Always SDL_TEXTINPUT
		external
			"C [struct <SDL.h>] (SDL_TextInputEvent):Uint32"
		alias
			"type"
		end

	frozen get_text_input_event_struct_window_id (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_TextInputEvent):Uint32"
		alias
			"windowID"
		end

	frozen set_text_input_event_struct_timestamp (event: POINTER; timestamp: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_TextInputEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_text_input_event_struct_type (event: POINTER; type: NATURAL_32)
			-- Event type. Always SDL_TEXTINPUT
		external
			"C [struct <SDL.h>] (SDL_TextInputEvent, Uint32)"
		alias
			"type"
		end

	frozen set_text_input_event_struct_window_id (event: POINTER; window_id: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_TextInputEvent, Uint32)"
		alias
			"windowID"
		end
	
feature -- Structure SDL_TouchFingerEvent SDL.h

	frozen c_sizeof_sdl_touch_finger_event: INTEGER_32
			-- Size of an SDL_TouchFingerEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_TouchFingerEvent)"
		end

	frozen get_touch_finger_event_struct_dx (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent):float"
		alias
			"dx"
		end

	frozen get_touch_finger_event_struct_dy (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent):float"
		alias
			"dy"
		end

	frozen get_touch_finger_event_struct_finger_id (ptr: POINTER): INTEGER_64
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent):SDL_FingerID"
		alias
			"fingerId"
		end

	frozen get_touch_finger_event_struct_pressure (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent):float"
		alias
			"pressure"
		end

	frozen get_touch_finger_event_struct_timestamp (ptr: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_touch_finger_event_struct_touch_id (ptr: POINTER): INTEGER_64
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent):SDL_TouchID"
		alias
			"touchId"
		end

	frozen get_touch_finger_event_struct_type (ptr: POINTER): NATURAL_32
			-- Event type. Always SDL_FINGERMOTION, SDL_FINGERDOWN, or SDL_FINGERUP
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent):Uint32"
		alias
			"type"
		end

	frozen get_touch_finger_event_struct_x (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent):float"
		alias
			"x"
		end

	frozen get_touch_finger_event_struct_y (ptr: POINTER): REAL_32
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent):float"
		alias
			"y"
		end

	frozen set_touch_finger_event_struct_dx (ptr: POINTER; value: REAL_32)
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent, float)"
		alias
			"dx"
		end

	frozen set_touch_finger_event_struct_dy (ptr: POINTER; value: REAL_32)
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent, float)"
		alias
			"dy"
		end

	frozen set_touch_finger_event_struct_finger_id (ptr: POINTER; value: INTEGER_64)
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent, SDL_FingerID)"
		alias
			"fingerId"
		end

	frozen set_touch_finger_event_struct_pressure (ptr: POINTER; value: REAL_32)
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent, float)"
		alias
			"pressure"
		end

	frozen set_touch_finger_event_struct_timestamp (ptr: POINTER; value: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_touch_finger_event_struct_touch_id (ptr: POINTER; value: INTEGER_64)
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent, SDL_TouchID)"
		alias
			"touchId"
		end

	frozen set_touch_finger_event_struct_type (ptr: POINTER; value: NATURAL_32)
			-- Event type. Always SDL_FINGERMOTION, SDL_FINGERDOWN, or SDL_FINGERUP
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent, Uint32)"
		alias
			"type"
		end

	frozen set_touch_finger_event_struct_x (ptr: POINTER; value: REAL_32)
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent, float)"
		alias
			"x"
		end

	frozen set_touch_finger_event_struct_y (ptr: POINTER; value: REAL_32)
		external
			"C [struct <SDL.h>] (SDL_TouchFingerEvent, float)"
		alias
			"y"
		end
	
feature -- Structure SDL_WindowEvent SDL.h

	frozen c_sizeof_sdl_window_event: INTEGER_32
			-- Size of an SDL_WindowEvent C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_WindowEvent)"
		end

	frozen get_window_event_struct_data1 (event: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_WindowEvent):Sint32"
		alias
			"data1"
		end

	frozen get_window_event_struct_data2 (event: POINTER): INTEGER_32
		external
			"C [struct <SDL.h>] (SDL_WindowEvent):Sint32"
		alias
			"data2"
		end

	frozen get_window_event_struct_event (event: POINTER): NATURAL_8
		external
			"C [struct <SDL.h>] (SDL_WindowEvent):Uint8"
		alias
			"event"
		end

	frozen get_window_event_struct_timestamp (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_WindowEvent):Uint32"
		alias
			"timestamp"
		end

	frozen get_window_event_struct_type (event: POINTER): NATURAL_32
			-- Event type. Always SDL_WINDOWEVENT.
		external
			"C [struct <SDL.h>] (SDL_WindowEvent):Uint32"
		alias
			"type"
		end

	frozen get_window_event_struct_window_id (event: POINTER): NATURAL_32
		external
			"C [struct <SDL.h>] (SDL_WindowEvent):Uint32"
		alias
			"windowID"
		end

	frozen set_window_event_struct_data1 (event: POINTER; data1: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_WindowEvent, Sint32)"
		alias
			"data1"
		end

	frozen set_window_event_struct_data2 (event: POINTER; data2: INTEGER_32)
		external
			"C [struct <SDL.h>] (SDL_WindowEvent, Sint32)"
		alias
			"data2"
		end

	frozen set_window_event_struct_event (event: POINTER; event_id: NATURAL_8)
		external
			"C [struct <SDL.h>] (SDL_WindowEvent, Uint8)"
		alias
			"event"
		end

	frozen set_window_event_struct_timestamp (event: POINTER; timestamp: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_WindowEvent, Uint32)"
		alias
			"timestamp"
		end

	frozen set_window_event_struct_type (event: POINTER; type: NATURAL_32)
			-- Event type. Always SDL_WINDOWEVENT.
		external
			"C [struct <SDL.h>] (SDL_WindowEvent, Uint32)"
		alias
			"type"
		end

	frozen set_window_event_struct_window_id (event: POINTER; window_id: NATURAL_32)
		external
			"C [struct <SDL.h>] (SDL_WindowEvent, Uint32)"
		alias
			"windowID"
		end
	
feature -- Structure SDL_version SDL.h

	frozen c_sizeof_sdl_version: INTEGER_32
			-- Size of an SDL_SysWMinfo C structure.
		external
			"C inline use <SDL.h>"
		alias
			"sizeof(SDL_version)"
		end

	frozen get_sdl_version_struct_major (ptr: POINTER): NATURAL_8
			-- The major version of the SDL library.
		external
			"C [struct <SDL.h>] (SDL_version):Uint8"
		alias
			"major"
		end

	frozen get_sdl_version_struct_minor (ptr: POINTER): NATURAL_8
			-- The minor version of the SDL library.
		external
			"C [struct <SDL.h>] (SDL_version):Uint8"
		alias
			"minor"
		end

	frozen get_sdl_version_struct_patch (ptr: POINTER): NATURAL_8
			-- The patch level version of the SDL library.
		external
			"C [struct <SDL.h>] (SDL_version):Uint8"
		alias
			"patch"
		end
	
invariant
		-- from ANY
	reflexive_equality: standard_is_equal (Current)
	reflexive_conformance: conforms_to (Current)

end -- class GAME_SDL_EXTERNAL

Generated by ISE EiffelStudio