From bc1780e8774a057a102f00e5c8ffbafd122aff6b Mon Sep 17 00:00:00 2001 From: Larpon Date: Wed, 29 Nov 2023 09:23:17 +0100 Subject: [PATCH] all: run vfmt to apply new `const` format (#639) --- audio.c.v | 81 +- endian.c.v | 8 +- events.c.v | 31 +- examples/basic_image/basic_image.v | 4 +- examples/basic_mixer/basic_mixer.v | 8 +- examples/tvintris/tvintris.v | 215 ++- haptic.c.v | 263 ++-- hints.c.v | 2096 ++++++++++++++-------------- image/image.c.v | 10 +- joystick.c.v | 35 +- keycode.c.v | 4 +- log.c.v | 4 +- mixer/mixer.c.v | 31 +- mouse.c.v | 31 +- pixels.c.v | 7 +- rwops.c.v | 31 +- sdl.c.v | 35 +- shape.c.v | 10 +- stdinc.c.v | 116 +- system_android.c.v | 7 +- touch.c.v | 11 +- ttf/ttf.c.v | 46 +- version.c.v | 10 +- video.c.v | 14 +- windows_install_dependencies.vsh | 14 +- 25 files changed, 1577 insertions(+), 1545 deletions(-) diff --git a/audio.c.v b/audio.c.v index adcab61a..8df1e251 100644 --- a/audio.c.v +++ b/audio.c.v @@ -29,12 +29,10 @@ module sdl pub type AudioFormat = u16 // Audio flags -pub const ( - audio_mask_bitsize = C.SDL_AUDIO_MASK_BITSIZE - audio_mask_datatype = C.SDL_AUDIO_MASK_DATATYPE - audio_mask_endian = C.SDL_AUDIO_MASK_ENDIAN - audio_mask_signed = C.SDL_AUDIO_MASK_SIGNED -) +pub const audio_mask_bitsize = C.SDL_AUDIO_MASK_BITSIZE +pub const audio_mask_datatype = C.SDL_AUDIO_MASK_DATATYPE +pub const audio_mask_endian = C.SDL_AUDIO_MASK_ENDIAN +pub const audio_mask_signed = C.SDL_AUDIO_MASK_SIGNED fn C.SDL_AUDIO_BITSIZE(x int) int pub fn audio_bitsize(x int) int { @@ -74,49 +72,54 @@ pub fn audio_isunsigned(x int) bool { // Audio format flags // // Defaults to LSB byte order. -pub const ( - audio_u8 = C.AUDIO_U8 // 0x0008, Unsigned 8-bit samples - audio_s8 = C.AUDIO_S8 // 0x8008, Signed 8-bit samples - audio_u16lsb = C.AUDIO_U16LSB // 0x0010, Unsigned 16-bit samples - audio_s16lsb = C.AUDIO_S16LSB // 0x8010, Signed 16-bit samples - audio_u16msb = C.AUDIO_U16MSB // 0x1010, As above, but big-endian byte order - audio_s16msb = C.AUDIO_S16MSB // 0x9010, As above, but big-endian byte order - audio_u16 = C.AUDIO_U16 // AUDIO_U16LSB - audio_s16 = C.AUDIO_S16 // AUDIO_S16LSB -) +pub const audio_u8 = C.AUDIO_U8 // 0x0008, Unsigned 8-bit samples + +pub const audio_s8 = C.AUDIO_S8 // 0x8008, Signed 8-bit samples + +pub const audio_u16lsb = C.AUDIO_U16LSB // 0x0010, Unsigned 16-bit samples + +pub const audio_s16lsb = C.AUDIO_S16LSB // 0x8010, Signed 16-bit samples + +pub const audio_u16msb = C.AUDIO_U16MSB // 0x1010, As above, but big-endian byte order + +pub const audio_s16msb = C.AUDIO_S16MSB // 0x9010, As above, but big-endian byte order + +pub const audio_u16 = C.AUDIO_U16 // AUDIO_U16LSB + +pub const audio_s16 = C.AUDIO_S16 // AUDIO_S16LSB // int32 support -pub const ( - audio_s32lsb = C.AUDIO_S32LSB // 0x8020, 32-bit integer samples - audio_s32msb = C.AUDIO_S32MSB // 0x9020, As above, but big-endian byte order - audio_s32 = C.AUDIO_S32 // AUDIO_S32LSB -) +pub const audio_s32lsb = C.AUDIO_S32LSB // 0x8020, 32-bit integer samples + +pub const audio_s32msb = C.AUDIO_S32MSB // 0x9020, As above, but big-endian byte order + +pub const audio_s32 = C.AUDIO_S32 // AUDIO_S32LSB // float32 support -pub const ( - audio_f32lsb = C.AUDIO_F32LSB // 0x8120, 32-bit floating point samples - audio_f32msb = C.AUDIO_F32MSB // 0x9120, As above, but big-endian byte order - audio_f32 = C.AUDIO_F32 -) +pub const audio_f32lsb = C.AUDIO_F32LSB // 0x8120, 32-bit floating point samples + +pub const audio_f32msb = C.AUDIO_F32MSB // 0x9120, As above, but big-endian byte order + +pub const audio_f32 = C.AUDIO_F32 // Native audio byte ordering -pub const ( - audio_u16sys = C.AUDIO_U16SYS - audio_s16sys = C.AUDIO_S16SYS - audio_s32sys = C.AUDIO_S32SYS - audio_f32sys = C.AUDIO_F32SYS -) +pub const audio_u16sys = C.AUDIO_U16SYS +pub const audio_s16sys = C.AUDIO_S16SYS +pub const audio_s32sys = C.AUDIO_S32SYS +pub const audio_f32sys = C.AUDIO_F32SYS // Allow change flags // // Which audio format changes are allowed when opening a device. -pub const ( - audio_allow_frequency_change = C.SDL_AUDIO_ALLOW_FREQUENCY_CHANGE // 0x00000001 - audio_allow_format_change = C.SDL_AUDIO_ALLOW_FORMAT_CHANGE // 0x00000002 - audio_allow_channels_change = C.SDL_AUDIO_ALLOW_CHANNELS_CHANGE // 0x00000004 - sdl_audio_allow_samples_change = C.SDL_AUDIO_ALLOW_SAMPLES_CHANGE // 0x00000008 - audio_allow_any_change = C.SDL_AUDIO_ALLOW_ANY_CHANGE -) +pub const audio_allow_frequency_change = C.SDL_AUDIO_ALLOW_FREQUENCY_CHANGE // 0x00000001 + +pub const audio_allow_format_change = C.SDL_AUDIO_ALLOW_FORMAT_CHANGE // 0x00000002 + +pub const audio_allow_channels_change = C.SDL_AUDIO_ALLOW_CHANNELS_CHANGE // 0x00000004 + +pub const sdl_audio_allow_samples_change = C.SDL_AUDIO_ALLOW_SAMPLES_CHANGE // 0x00000008 + +pub const audio_allow_any_change = C.SDL_AUDIO_ALLOW_ANY_CHANGE // This function is called when the audio device needs more data. // diff --git a/endian.c.v b/endian.c.v index 7d449c07..9c7be1eb 100644 --- a/endian.c.v +++ b/endian.c.v @@ -7,11 +7,9 @@ module sdl // SDL_endian.h // -pub const ( - lil_endian = C.SDL_LIL_ENDIAN - big_endian = C.SDL_BIG_ENDIAN - byteorder = C.SDL_BYTEORDER -) +pub const lil_endian = C.SDL_LIL_ENDIAN +pub const big_endian = C.SDL_BIG_ENDIAN +pub const byteorder = C.SDL_BYTEORDER fn C.SDL_Swap16(x u16) u16 pub fn swap16(x u16) u16 { diff --git a/events.c.v b/events.c.v index a6db8c2f..77052106 100644 --- a/events.c.v +++ b/events.c.v @@ -7,22 +7,21 @@ module sdl // SDL_events.h // -pub const ( - released = C.SDL_RELEASED // 0 - pressed = C.SDL_PRESSED // 1 -) - -pub const ( - textinputevent_text_size = C.SDL_TEXTINPUTEVENT_TEXT_SIZE // (32) - texteditingevent_text_size = C.SDL_TEXTEDITINGEVENT_TEXT_SIZE // (32) -) - -pub const ( - query = C.SDL_QUERY // -1 - ignore = C.SDL_IGNORE // 0 - disable = C.SDL_DISABLE // 0 - enable = C.SDL_ENABLE // 1 -) +pub const released = C.SDL_RELEASED // 0 + +pub const pressed = C.SDL_PRESSED // 1 + +pub const textinputevent_text_size = C.SDL_TEXTINPUTEVENT_TEXT_SIZE // (32) + +pub const texteditingevent_text_size = C.SDL_TEXTEDITINGEVENT_TEXT_SIZE // (32) + +pub const query = C.SDL_QUERY // -1 + +pub const ignore = C.SDL_IGNORE // 0 + +pub const disable = C.SDL_DISABLE // 0 + +pub const enable = C.SDL_ENABLE // 1 // EventFilter is equivalent to the SDL C callback: // `typedef int (SDLCALL * SDL_EventFilter) (void *userdata, SDL_Event * event);` diff --git a/examples/basic_image/basic_image.v b/examples/basic_image/basic_image.v index 48085f0f..e4ddd854 100644 --- a/examples/basic_image/basic_image.v +++ b/examples/basic_image/basic_image.v @@ -13,9 +13,7 @@ import os import sdl import sdl.image -const ( - images = ['v-logo.svg', 'v-logo.png', 'v-logo.jpg', 'v-logo.lossless.webp', 'v-logo.webp'] -) +const images = ['v-logo.svg', 'v-logo.png', 'v-logo.jpg', 'v-logo.lossless.webp', 'v-logo.webp'] fn get_asset_path(path string) string { $if android { diff --git a/examples/basic_mixer/basic_mixer.v b/examples/basic_mixer/basic_mixer.v index 3f39dc01..6fe82b46 100644 --- a/examples/basic_mixer/basic_mixer.v +++ b/examples/basic_mixer/basic_mixer.v @@ -16,11 +16,9 @@ import os import sdl import sdl.mixer -const ( - wav_sound = 'sounds/sound_01.wav' - sounds = ['sounds/sound_02.mp3', 'sounds/sound_03.flac', 'sounds/sound_04.ogg', - 'sounds/TwintrisThosenine.mod', 'sounds/IcyGarden.mid'] -) +const wav_sound = 'sounds/sound_01.wav' +const sounds = ['sounds/sound_02.mp3', 'sounds/sound_03.flac', 'sounds/sound_04.ogg', + 'sounds/TwintrisThosenine.mod', 'sounds/IcyGarden.mid'] struct PlayCycle { pub mut: diff --git a/examples/tvintris/tvintris.v b/examples/tvintris/tvintris.v index a01dcba7..f3d74d4a 100644 --- a/examples/tvintris/tvintris.v +++ b/examples/tvintris/tvintris.v @@ -17,114 +17,113 @@ import sdl.image as img import sdl.mixer as mix import sdl.ttf -const ( - title = 'tVintris' - font_name = get_asset_path(os.join_path('fonts', 'RobotoMono-Regular.ttf')) - music_name = get_asset_path(os.join_path('sounds', 'TwintrisThosenine.mod')) - snd_block_name = get_asset_path(os.join_path('sounds', 'block.wav')) - snd_line_name = get_asset_path(os.join_path('sounds', 'single.wav')) - snd_double_name = get_asset_path(os.join_path('sounds', 'triple.wav')) - v_logo = get_asset_path(os.join_path('images', 'v-logo_30_30.png')) - block_size = 20 // pixels - field_height = 20 // # of blocks - field_width = 10 - tetro_size = 4 - win_width = block_size * field_width * 3 - win_height = block_size * field_height - timer_period = 250 // ms - text_size = 16 - audio_buf_size = 1024 - - p2_fire = sdl.KeyCode.l - p2_up = sdl.KeyCode.up - p2_down = sdl.KeyCode.down - p2_left = sdl.KeyCode.left - p2_right = sdl.KeyCode.right - - p1_fire = sdl.KeyCode.s - p1_up = sdl.KeyCode.w - p1_down = sdl.KeyCode.x - p1_left = sdl.KeyCode.a - p1_right = sdl.KeyCode.d - - n_joy_max = 2 - // joystick name => enter your own device name - joy_p1_name = 'Generic X-Box pad' - // following are joystick button number - jb_p1_fire = 1 - // following are joystick hat value - jh_p1_up = 1 - jh_p1_down = 4 - jh_p1_left = 8 - jh_p1_right = 3 - - // joystick name => enter your own device name - joy_p2_name = 'RedOctane Guitar Hero X-plorer' - // following are joystick button number - jb_p2_fire = 0 - // following are joystick hat value - jh_p2_up = 4 - jh_p2_down = 1 - jh_p2_left = 8 - jh_p2_right = 2 -) - -const ( - // Tetros' 4 possible states are encoded in binaries - b_tetros = [ - // 0000 0 - // 0000 0 - // 0110 6 - // 0110 6 - [66, 66, 66, 66], - // 0000 0 - // 0000 0 - // 0010 2 - // 0111 7 - [27, 131, 72, 232], - // 0000 0 - // 0000 0 - // 0011 3 - // 0110 6 - [36, 231, 36, 231], - // 0000 0 - // 0000 0 - // 0110 6 - // 0011 3 - [63, 132, 63, 132], - // 0000 0 - // 0011 3 - // 0001 1 - // 0001 1 - [311, 17, 223, 74], - // 0000 0 - // 0011 3 - // 0010 2 - // 0010 2 - [322, 71, 113, 47], - // Special case since 15 can't be used - // 1111 - [1111, 9, 1111, 9], - ] - // Each tetro has its unique color - colors = [ - sdl.Color{0, 0, 0, 0}, // unused ? - sdl.Color{0, 0x62, 0xc0, 0}, // quad : darkblue 0062c0 - sdl.Color{0xca, 0x7d, 0x5f, 0}, // tricorn : lightbrown ca7d5f - sdl.Color{0, 0xc1, 0xbf, 0}, // short topright : lightblue 00c1bf - sdl.Color{0, 0xc1, 0, 0}, // short topleft : lightgreen 00c100 - sdl.Color{0xbf, 0xbe, 0, 0}, // long topleft : yellowish bfbe00 - sdl.Color{0xd1, 0, 0xbf, 0}, // long topright : pink d100bf - sdl.Color{0xd1, 0, 0, 0}, // longest : lightred d10000 - sdl.Color{0, 170, 170, 0}, // unused ? - ] - // Background color - background_color = sdl.Color{0, 0, 0, 0} - // Foreground color - foreground_color = sdl.Color{0, 170, 170, 0} - // Text color - text_color = sdl.Color{0xca, 0x7d, 0x5f, 0} -) +const title = 'tVintris' +const font_name = get_asset_path(os.join_path('fonts', 'RobotoMono-Regular.ttf')) +const music_name = get_asset_path(os.join_path('sounds', 'TwintrisThosenine.mod')) +const snd_block_name = get_asset_path(os.join_path('sounds', 'block.wav')) +const snd_line_name = get_asset_path(os.join_path('sounds', 'single.wav')) +const snd_double_name = get_asset_path(os.join_path('sounds', 'triple.wav')) +const v_logo = get_asset_path(os.join_path('images', 'v-logo_30_30.png')) +const block_size = 20 // pixels + +const field_height = 20 // # of blocks + +const field_width = 10 +const tetro_size = 4 +const win_width = block_size * field_width * 3 +const win_height = block_size * field_height +const timer_period = 250 // ms + +const text_size = 16 +const audio_buf_size = 1024 + +const p2_fire = sdl.KeyCode.l +const p2_up = sdl.KeyCode.up +const p2_down = sdl.KeyCode.down +const p2_left = sdl.KeyCode.left +const p2_right = sdl.KeyCode.right + +const p1_fire = sdl.KeyCode.s +const p1_up = sdl.KeyCode.w +const p1_down = sdl.KeyCode.x +const p1_left = sdl.KeyCode.a +const p1_right = sdl.KeyCode.d + +const n_joy_max = 2 +// joystick name => enter your own device name +const joy_p1_name = 'Generic X-Box pad' +// following are joystick button number +const jb_p1_fire = 1 +// following are joystick hat value +const jh_p1_up = 1 +const jh_p1_down = 4 +const jh_p1_left = 8 +const jh_p1_right = 3 + +// joystick name => enter your own device name +const joy_p2_name = 'RedOctane Guitar Hero X-plorer' +// following are joystick button number +const jb_p2_fire = 0 +// following are joystick hat value +const jh_p2_up = 4 +const jh_p2_down = 1 +const jh_p2_left = 8 +const jh_p2_right = 2 + +// Tetros' 4 possible states are encoded in binaries +const b_tetros = [ + // 0000 0 + // 0000 0 + // 0110 6 + // 0110 6 + [66, 66, 66, 66], + // 0000 0 + // 0000 0 + // 0010 2 + // 0111 7 + [27, 131, 72, 232], + // 0000 0 + // 0000 0 + // 0011 3 + // 0110 6 + [36, 231, 36, 231], + // 0000 0 + // 0000 0 + // 0110 6 + // 0011 3 + [63, 132, 63, 132], + // 0000 0 + // 0011 3 + // 0001 1 + // 0001 1 + [311, 17, 223, 74], + // 0000 0 + // 0011 3 + // 0010 2 + // 0010 2 + [322, 71, 113, 47], + // Special case since 15 can't be used + // 1111 + [1111, 9, 1111, 9], +] +// Each tetro has its unique color +const colors = [ + sdl.Color{0, 0, 0, 0}, // unused ? + sdl.Color{0, 0x62, 0xc0, 0}, // quad : darkblue 0062c0 + sdl.Color{0xca, 0x7d, 0x5f, 0}, // tricorn : lightbrown ca7d5f + sdl.Color{0, 0xc1, 0xbf, 0}, // short topright : lightblue 00c1bf + sdl.Color{0, 0xc1, 0, 0}, // short topleft : lightgreen 00c100 + sdl.Color{0xbf, 0xbe, 0, 0}, // long topleft : yellowish bfbe00 + sdl.Color{0xd1, 0, 0xbf, 0}, // long topright : pink d100bf + sdl.Color{0xd1, 0, 0, 0}, // longest : lightred d10000 + sdl.Color{0, 170, 170, 0}, // unused ? +] +// Background color +const background_color = sdl.Color{0, 0, 0, 0} +// Foreground color +const foreground_color = sdl.Color{0, 170, 170, 0} +// Text color +const text_color = sdl.Color{0xca, 0x7d, 0x5f, 0} // TODO: type Tetro [tetro_size]struct{ x, y int } struct Block { diff --git a/haptic.c.v b/haptic.c.v index 09437440..c5974308 100644 --- a/haptic.c.v +++ b/haptic.c.v @@ -7,129 +7,146 @@ module sdl // SDL_haptic.h // -pub const ( - // Constant effect supported. - // - // Constant haptic effect. - // - // See also: SDL_HapticCondition - haptic_constant = C.SDL_HAPTIC_CONSTANT // (1u<<0) // u32(1) << 0 - // Sine wave effect supported. - // - // Periodic haptic effect that simulates sine waves. - // - // See also: SDL_HapticPeriodic - haptic_sine = C.SDL_HAPTIC_SINE // (1u<<1) - // Left/Right effect supported. - // - // Haptic effect for direct control over high/low frequency motors. - // - // See also: SDL_HapticLeftRight - // WARNING this value was SDL_HAPTIC_SQUARE right before 2.0.0 shipped. Sorry, - // we ran out of bits, and this is important for XInput devices. - haptic_leftright = C.SDL_HAPTIC_LEFTRIGHT // (1u<<2) - // Triangle wave effect supported. - // - // Periodic haptic effect that simulates triangular waves. - // - // See also: SDL_HapticPeriodic - haptic_triangle = C.SDL_HAPTIC_TRIANGLE // (1u<<3) - // Sawtoothup wave effect supported. - // - // Periodic haptic effect that simulates saw tooth up waves. - // - // See also: SDL_HapticPeriodic - haptic_sawtoothup = C.SDL_HAPTIC_SAWTOOTHUP //(1u<<4) - // Sawtoothdown wave effect supported. - // - // Periodic haptic effect that simulates saw tooth down waves. - // - // See also: SDL_HapticPeriodic - haptic_sawtoothdown = C.SDL_HAPTIC_SAWTOOTHDOWN //(1u<<5) - // Ramp effect supported. - // - // Ramp haptic effect. - // - // See also: SDL_HapticRamp - haptic_ramp = C.SDL_HAPTIC_RAMP // (1u<<6) - // Spring effect supported - uses axes position. - // - // Condition haptic effect that simulates a spring. Effect is based on the - // axes position. - // - // See also: SDL_HapticCondition - haptic_spring = C.SDL_HAPTIC_SPRING // (1u<<7) - // Damper effect supported - uses axes velocity. - // - // Condition haptic effect that simulates dampening. Effect is based on the - // axes velocity. - // - // See also: SDL_HapticCondition - haptic_damper = C.SDL_HAPTIC_DAMPER // (1u<<8) - // Inertia effect supported - uses axes acceleration. - // - // Condition haptic effect that simulates inertia. Effect is based on the axes - // acceleration. - // - // See also: SDL_HapticCondition - haptic_inertia = C.SDL_HAPTIC_INERTIA // (1u<<9) - // Friction effect supported - uses axes movement. - // - // Condition haptic effect that simulates friction. Effect is based on the - // axes movement. - // - // See also: SDL_HapticCondition - haptic_friction = C.SDL_HAPTIC_FRICTION // (1u<<10) - // Custom effect is supported. - // - // User defined custom haptic effect. - haptic_custom = C.SDL_HAPTIC_CUSTOM // (1u<<11) - // Haptic effects - // These last few are features the device has, not effects - // Device can set global gain. - // - // Device supports setting the global gain. - // - // See also: SDL_HapticSetGain - haptic_gain = C.SDL_HAPTIC_GAIN // (1u<<12) - // Device can set autocenter. - // - // Device supports setting autocenter. - // - // See also: SDL_HapticSetAutocenter - haptic_autocenter = C.SDL_HAPTIC_AUTOCENTER //(1u<<13) - // Device can be queried for effect status. - // - // Device supports querying effect status. - // - // See also: SDL_HapticGetEffectStatus - haptic_status = C.SDL_HAPTIC_STATUS // (1u<<14) - // Device can be paused. - // - // Devices supports being paused. - // - // See also: SDL_HapticPause - // See also: SDL_HapticUnpause - haptic_pause = C.SDL_HAPTIC_PAUSE // (1u<<15) - // Direction encodings - //@{ - // Uses polar coordinates for the direction. - // - // See also: SDL_HapticDirection - haptic_polar = C.SDL_HAPTIC_POLAR // 0 - // Uses cartesian coordinates for the direction. - // - // See also: SDL_HapticDirection - haptic_cartesian = C.SDL_HAPTIC_CARTESIAN // 1 - // Uses spherical coordinates for the direction. - // - // See also: SDL_HapticDirection - haptic_spherical = C.SDL_HAPTIC_SPHERICAL // 2 - // Used to play a device an infinite number of times. - // - // See also: SDL_HapticRunEffect - haptic_infinity = C.SDL_HAPTIC_INFINITY // 4294967295U -) +// Constant effect supported. +// +// Constant haptic effect. +// +// See also: SDL_HapticCondition +pub const haptic_constant = C.SDL_HAPTIC_CONSTANT // (1u<<0) // u32(1) << 0 + +// Sine wave effect supported. +// +// Periodic haptic effect that simulates sine waves. +// +// See also: SDL_HapticPeriodic +pub const haptic_sine = C.SDL_HAPTIC_SINE // (1u<<1) + +// Left/Right effect supported. +// +// Haptic effect for direct control over high/low frequency motors. +// +// See also: SDL_HapticLeftRight +// WARNING this value was SDL_HAPTIC_SQUARE right before 2.0.0 shipped. Sorry, +// we ran out of bits, and this is important for XInput devices. +pub const haptic_leftright = C.SDL_HAPTIC_LEFTRIGHT // (1u<<2) + +// Triangle wave effect supported. +// +// Periodic haptic effect that simulates triangular waves. +// +// See also: SDL_HapticPeriodic +pub const haptic_triangle = C.SDL_HAPTIC_TRIANGLE // (1u<<3) + +// Sawtoothup wave effect supported. +// +// Periodic haptic effect that simulates saw tooth up waves. +// +// See also: SDL_HapticPeriodic +pub const haptic_sawtoothup = C.SDL_HAPTIC_SAWTOOTHUP //(1u<<4) + +// Sawtoothdown wave effect supported. +// +// Periodic haptic effect that simulates saw tooth down waves. +// +// See also: SDL_HapticPeriodic +pub const haptic_sawtoothdown = C.SDL_HAPTIC_SAWTOOTHDOWN //(1u<<5) + +// Ramp effect supported. +// +// Ramp haptic effect. +// +// See also: SDL_HapticRamp +pub const haptic_ramp = C.SDL_HAPTIC_RAMP // (1u<<6) + +// Spring effect supported - uses axes position. +// +// Condition haptic effect that simulates a spring. Effect is based on the +// axes position. +// +// See also: SDL_HapticCondition +pub const haptic_spring = C.SDL_HAPTIC_SPRING // (1u<<7) + +// Damper effect supported - uses axes velocity. +// +// Condition haptic effect that simulates dampening. Effect is based on the +// axes velocity. +// +// See also: SDL_HapticCondition +pub const haptic_damper = C.SDL_HAPTIC_DAMPER // (1u<<8) + +// Inertia effect supported - uses axes acceleration. +// +// Condition haptic effect that simulates inertia. Effect is based on the axes +// acceleration. +// +// See also: SDL_HapticCondition +pub const haptic_inertia = C.SDL_HAPTIC_INERTIA // (1u<<9) + +// Friction effect supported - uses axes movement. +// +// Condition haptic effect that simulates friction. Effect is based on the +// axes movement. +// +// See also: SDL_HapticCondition +pub const haptic_friction = C.SDL_HAPTIC_FRICTION // (1u<<10) + +// Custom effect is supported. +// +// User defined custom haptic effect. +pub const haptic_custom = C.SDL_HAPTIC_CUSTOM // (1u<<11) + +// Haptic effects +// These last few are features the device has, not effects +// Device can set global gain. +// +// Device supports setting the global gain. +// +// See also: SDL_HapticSetGain +pub const haptic_gain = C.SDL_HAPTIC_GAIN // (1u<<12) + +// Device can set autocenter. +// +// Device supports setting autocenter. +// +// See also: SDL_HapticSetAutocenter +pub const haptic_autocenter = C.SDL_HAPTIC_AUTOCENTER //(1u<<13) + +// Device can be queried for effect status. +// +// Device supports querying effect status. +// +// See also: SDL_HapticGetEffectStatus +pub const haptic_status = C.SDL_HAPTIC_STATUS // (1u<<14) + +// Device can be paused. +// +// Devices supports being paused. +// +// See also: SDL_HapticPause +// See also: SDL_HapticUnpause +pub const haptic_pause = C.SDL_HAPTIC_PAUSE // (1u<<15) + +// Direction encodings +//@{ +// Uses polar coordinates for the direction. +// +// See also: SDL_HapticDirection +pub const haptic_polar = C.SDL_HAPTIC_POLAR // 0 + +// Uses cartesian coordinates for the direction. +// +// See also: SDL_HapticDirection +pub const haptic_cartesian = C.SDL_HAPTIC_CARTESIAN // 1 + +// Uses spherical coordinates for the direction. +// +// See also: SDL_HapticDirection +pub const haptic_spherical = C.SDL_HAPTIC_SPHERICAL // 2 + +// Used to play a device an infinite number of times. +// +// See also: SDL_HapticRunEffect +pub const haptic_infinity = C.SDL_HAPTIC_INFINITY // 4294967295U @[typedef] pub struct C.SDL_Haptic { diff --git a/hints.c.v b/hints.c.v index a4b251a2..7036bde2 100644 --- a/hints.c.v +++ b/hints.c.v @@ -6,1055 +6,1053 @@ module sdl // // SDL_hints.h // -pub const ( - // A variable controlling how 3D acceleration is used to accelerate the SDL screen surface. - // - // SDL can try to accelerate the SDL screen surface by using streaming - // textures with a 3D rendering engine. This variable controls whether and - // how this is done. - // - // This variable can be set to the following values: - // "0" - Disable 3D acceleration - // "1" - Enable 3D acceleration, using the default renderer. - // "X" - Enable 3D acceleration, using X where X is one of the valid rendering drivers. (e.g. "direct3d", "opengl", etc.) - // - // By default SDL tries to make a best guess for each platform whether - // to use acceleration or not. - hint_framebuffer_acceleration = 'SDL_FRAMEBUFFER_ACCELERATION' - - // A variable specifying which render driver to use. - // - // If the application doesn't pick a specific renderer to use, this variable - // specifies the name of the preferred renderer. If the preferred renderer - // can't be initialized, the normal default renderer is used. - // - // This variable is case insensitive and can be set to the following values: - // "direct3d" - // "opengl" - // "opengles2" - // "opengles" - // "metal" - // "software" - // - // The default varies by platform, but it's the first one in the list that - // is available on the current platform. - hint_render_driver = 'SDL_RENDER_DRIVER' - - // A variable controlling whether the OpenGL render driver uses shaders if they are available. - // - // This variable can be set to the following values: - // "0" - Disable shaders - // "1" - Enable shaders - // - // By default shaders are used if OpenGL supports them. - hint_render_opengl_shaders = 'SDL_RENDER_OPENGL_SHADERS' - - // A variable controlling whether the Direct3D device is initialized for thread-safe operations. - // - // This variable can be set to the following values: - // "0" - Thread-safety is not enabled (faster) - // "1" - Thread-safety is enabled - // - // By default the Direct3D device is created with thread-safety disabled. - hint_render_direct3d_threadsafe = 'SDL_RENDER_DIRECT3D_THREADSAFE' - - // A variable controlling whether to enable Direct3D 11+'s Debug Layer. - // - // This variable does not have any effect on the Direct3D 9 based renderer. - // - // This variable can be set to the following values: - // "0" - Disable Debug Layer use - // "1" - Enable Debug Layer use - // - // By default, SDL does not use Direct3D Debug Layer. - hint_render_direct3d11_debug = 'SDL_RENDER_DIRECT3D11_DEBUG' - - // A variable controlling the scaling policy for SDL_RenderSetLogicalSize. - // - // This variable can be set to the following values: - // "0" or "letterbox" - Uses letterbox/sidebars to fit the entire rendering on screen - // "1" or "overscan" - Will zoom the rendering so it fills the entire screen, allowing edges to be drawn offscreen - // - // By default letterbox is used - hint_render_logical_size_mode = 'SDL_RENDER_LOGICAL_SIZE_MODE' - - // A variable controlling the scaling quality - // - // This variable can be set to the following values: - // "0" or "nearest" - Nearest pixel sampling - // "1" or "linear" - Linear filtering (supported by OpenGL and Direct3D) - // "2" or "best" - Currently this is the same as "linear" - // - // By default nearest pixel sampling is used - hint_render_scale_quality = 'SDL_RENDER_SCALE_QUALITY' - - // A variable controlling whether updates to the SDL screen surface should be synchronized with the vertical refresh, to avoid tearing. - // - // This variable can be set to the following values: - // "0" - Disable vsync - // "1" - Enable vsync - // - // By default SDL does not sync screen surface updates with vertical refresh. - hint_render_vsync = 'SDL_RENDER_VSYNC' - - // A variable controlling whether the screensaver is enabled. - // - // This variable can be set to the following values: - // "0" - Disable screensaver - // "1" - Enable screensaver - // - // By default SDL will disable the screensaver. - hint_video_allow_screensaver = 'SDL_VIDEO_ALLOW_SCREENSAVER' - - // A variable controlling whether the graphics context is externally managed. - // - // This variable can be set to the following values: - // "0" - SDL will manage graphics contexts that are attached to windows. - // "1" - Disable graphics context management on windows. - // - // By default SDL will manage OpenGL contexts in certain situations. For example, on Android the - // context will be automatically saved and restored when pausing the application. Additionally, some - // platforms will assume usage of OpenGL if Vulkan isn't used. Setting this to "1" will prevent this - // behavior, which is desireable when the application manages the graphics context, such as - // an externally managed OpenGL context or attaching a Vulkan surface to the window. - hint_video_external_context = 'SDL_VIDEO_EXTERNAL_CONTEXT' - - // A variable controlling whether the X11 VidMode extension should be used. - // - // This variable can be set to the following values: - // "0" - Disable XVidMode - // "1" - Enable XVidMode - // - // By default SDL will use XVidMode if it is available. - hint_video_x11_xvidmode = 'SDL_VIDEO_X11_XVIDMODE' - - // A variable controlling whether the X11 Xinerama extension should be used. - // - // This variable can be set to the following values: - // "0" - Disable Xinerama - // "1" - Enable Xinerama - // - // By default SDL will use Xinerama if it is available. - hint_video_x11_xinerama = 'SDL_VIDEO_X11_XINERAMA' - - // A variable controlling whether the X11 XRandR extension should be used. - // - // This variable can be set to the following values: - // "0" - Disable XRandR - // "1" - Enable XRandR - // - // By default SDL will not use XRandR because of window manager issues. - hint_video_x11_xrandr = 'SDL_VIDEO_X11_XRANDR' - - // A variable forcing the visual ID chosen for new X11 windows - hint_video_x11_window_visualid = 'SDL_VIDEO_X11_WINDOW_VISUALID' - - // A variable controlling whether the X11 _NET_WM_PING protocol should be supported. - // - // This variable can be set to the following values: - // "0" - Disable _NET_WM_PING - // "1" - Enable _NET_WM_PING - // - // By default SDL will use _NET_WM_PING, but for applications that know they - // will not always be able to respond to ping requests in a timely manner they can - // turn it off to avoid the window manager thinking the app is hung. - // The hint is checked in CreateWindow. - hint_video_x11_net_wm_ping = 'SDL_VIDEO_X11_NET_WM_PING' - - // A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint should be used. - // - // This variable can be set to the following values: - // "0" - Disable _NET_WM_BYPASS_COMPOSITOR - // "1" - Enable _NET_WM_BYPASS_COMPOSITOR - // - // By default SDL will use _NET_WM_BYPASS_COMPOSITOR - // - hint_video_x11_net_wm_bypass_compositor = 'SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR' - - // A variable controlling whether X11 should use GLX or EGL by default - // - // This variable can be set to the following values: - // "0" - Use GLX - // "1" - Use EGL - // - // By default SDL will use GLX when both are present. - hint_video_x11_force_egl = 'SDL_VIDEO_X11_FORCE_EGL' - - // A variable controlling whether the window frame and title bar are interactive when the cursor is hidden - // - // This variable can be set to the following values: - // "0" - The window frame is not interactive when the cursor is hidden (no move, resize, etc) - // "1" - The window frame is interactive when the cursor is hidden - // - // By default SDL will allow interaction with the window frame when the cursor is hidden - hint_window_frame_usable_while_cursor_hidden = 'SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN' - - // A variable to specify custom icon resource id from RC file on Windows platform - hint_windows_intresource_icon = 'SDL_WINDOWS_INTRESOURCE_ICON' - hint_windows_intresource_icon_small = 'SDL_WINDOWS_INTRESOURCE_ICON_SMALL' - - // A variable controlling whether the windows message loop is processed by SDL - // - // This variable can be set to the following values: - // "0" - The window message loop is not run - // "1" - The window message loop is processed in SDL_PumpEvents() - // - // By default SDL will process the windows message loop - hint_windows_enable_messageloop = 'SDL_WINDOWS_ENABLE_MESSAGELOOP' - - // A variable controlling whether grabbing input grabs the keyboard - // - // This variable can be set to the following values: - // "0" - Grab will affect only the mouse - // "1" - Grab will affect mouse and keyboard - // - // By default SDL will not grab the keyboard so system shortcuts still work. - hint_grab_keyboard = 'SDL_GRAB_KEYBOARD' - - // A variable setting the double click time, in milliseconds. - hint_mouse_double_click_time = 'SDL_MOUSE_DOUBLE_CLICK_TIME' - - // A variable setting the double click radius, in pixels. - hint_mouse_double_click_radius = 'SDL_MOUSE_DOUBLE_CLICK_RADIUS' - - // A variable setting the speed scale for mouse motion, in floating point, when the mouse is not in relative mode - hint_mouse_normal_speed_scale = 'SDL_MOUSE_NORMAL_SPEED_SCALE' - - // A variable setting the scale for mouse motion, in floating point, when the mouse is in relative mode - hint_mouse_relative_speed_scale = 'SDL_MOUSE_RELATIVE_SPEED_SCALE' - - // A variable controlling whether relative mouse mode is implemented using mouse warping - // - // This variable can be set to the following values: - // "0" - Relative mouse mode uses raw input - // "1" - Relative mouse mode uses mouse warping - // - // By default SDL will use raw input for relative mouse mode - hint_mouse_relative_mode_warp = 'SDL_MOUSE_RELATIVE_MODE_WARP' - - // Allow mouse click events when clicking to focus an SDL window - // - // This variable can be set to the following values: - // "0" - Ignore mouse clicks that activate a window - // "1" - Generate events for mouse clicks that activate a window - // - // By default SDL will ignore mouse clicks that activate a window - hint_mouse_focus_clickthrough = 'SDL_MOUSE_FOCUS_CLICKTHROUGH' - - // A variable controlling whether touch events should generate synthetic mouse events - // - // This variable can be set to the following values: - // "0" - Touch events will not generate mouse events - // "1" - Touch events will generate mouse events - // - // By default SDL will generate mouse events for touch events - hint_touch_mouse_events = 'SDL_TOUCH_MOUSE_EVENTS' - - // A variable controlling whether mouse events should generate synthetic touch events - // - // This variable can be set to the following values: - // "0" - Mouse events will not generate touch events (default for desktop platforms) - // "1" - Mouse events will generate touch events (default for mobile platforms, such as Android and iOS) - hint_mouse_touch_events = 'SDL_MOUSE_TOUCH_EVENTS' - - // Minimize your SDL_Window if it loses key focus when in fullscreen mode. Defaults to true. - // - hint_video_minimize_on_focus_loss = 'SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS' - - // A variable controlling whether the idle timer is disabled on iOS. - // - // When an iOS app does not receive touches for some time, the screen is - // dimmed automatically. For games where the accelerometer is the only input - // this is problematic. This functionality can be disabled by setting this - // hint. - // - // As of SDL 2.0.4, SDL_EnableScreenSaver() and SDL_DisableScreenSaver() - // accomplish the same thing on iOS. They should be preferred over this hint. - // - // This variable can be set to the following values: - // "0" - Enable idle timer - // "1" - Disable idle timer - hint_idle_timer_disabled = 'SDL_IOS_IDLE_TIMER_DISABLED' - - // A variable controlling which orientations are allowed on iOS/Android. - // - // In some circumstances it is necessary to be able to explicitly control - // which UI orientations are allowed. - // - // This variable is a space delimited list of the following values: - // "LandscapeLeft", "LandscapeRight", "Portrait" "PortraitUpsideDown" - hint_orientations = 'SDL_IOS_ORIENTATIONS' - - // A variable controlling whether controllers used with the Apple TV - // generate UI events. - // - // When UI events are generated by controller input, the app will be - // backgrounded when the Apple TV remote's menu button is pressed, and when the - // pause or B buttons on gamepads are pressed. - // - // More information about properly making use of controllers for the Apple TV - // can be found here: - // https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/ - // - // This variable can be set to the following values: - // "0" - Controller input does not generate UI events (the default). - // "1" - Controller input generates UI events. - hint_apple_tv_controller_ui_events = 'SDL_APPLE_TV_CONTROLLER_UI_EVENTS' - - // A variable controlling whether the Apple TV remote's joystick axes - // will automatically match the rotation of the remote. - // - // This variable can be set to the following values: - // "0" - Remote orientation does not affect joystick axes (the default). - // "1" - Joystick axes are based on the orientation of the remote. - hint_apple_tv_remote_allow_rotation = 'SDL_APPLE_TV_REMOTE_ALLOW_ROTATION' - - // A variable controlling whether the home indicator bar on iPhone X - // should be hidden. - // - // This variable can be set to the following values: - // "0" - The indicator bar is not hidden (default for windowed applications) - // "1" - The indicator bar is hidden and is shown when the screen is touched (useful for movie playback applications) - // "2" - The indicator bar is dim and the first swipe makes it visible and the second swipe performs the "home" action (default for fullscreen applications) - hint_ios_hide_home_indicator = 'SDL_IOS_HIDE_HOME_INDICATOR' - - // A variable controlling whether the Android / iOS built-in - // accelerometer should be listed as a joystick device. - // - // This variable can be set to the following values: - // "0" - The accelerometer is not listed as a joystick - // "1" - The accelerometer is available as a 3 axis joystick (the default). - hint_accelerometer_as_joystick = 'SDL_ACCELEROMETER_AS_JOYSTICK' - - // A variable controlling whether the Android / tvOS remotes - // should be listed as joystick devices, instead of sending keyboard events. - // - // This variable can be set to the following values: - // "0" - Remotes send enter/escape/arrow key events - // "1" - Remotes are available as 2 axis, 2 button joysticks (the default). - hint_tv_remote_as_joystick = 'SDL_TV_REMOTE_AS_JOYSTICK' - - // A variable that lets you disable the detection and use of Xinput gamepad devices - // - // The variable can be set to the following values: - // "0" - Disable XInput detection (only uses direct input) - // "1" - Enable XInput detection (the default) - hint_xinput_enabled = 'SDL_XINPUT_ENABLED' - - // A variable that causes SDL to use the old axis and button mapping for XInput devices. - // - // This hint is for backwards compatibility only and will be removed in SDL 2.1 - // - // The default value is "0". This hint must be set before SDL_Init() - hint_xinput_use_old_joystick_mapping = 'SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING' - - // A variable that overrides the automatic controller type detection - // - // The variable should be comma separated entries, in the form: VID/PID=type - // - // The VID and PID should be hexadecimal with exactly 4 digits, e.g. 0x00fd - // - // The type should be one of: - // Xbox360 - // XboxOne - // PS3 - // PS4 - // SwitchPro - // - // This hint affects what driver is used, and must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) - hint_gamecontrollertype = 'SDL_GAMECONTROLLERTYPE' - - // A variable that lets you manually hint extra gamecontroller db entries. - // - // The variable should be newline delimited rows of gamecontroller config data, see SDL_gamecontroller.h - // - // This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) - // You can update mappings after the system is initialized with SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping() - hint_gamecontrollerconfig = 'SDL_GAMECONTROLLERCONFIG' - - // A variable that lets you provide a file with extra gamecontroller db entries. - // - // The file should contain lines of gamecontroller config data, see SDL_gamecontroller.h - // - // This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) - // You can update mappings after the system is initialized with SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping() - hint_gamecontrollerconfig_file = 'SDL_GAMECONTROLLERCONFIG_FILE' - - // A variable containing a list of devices to skip when scanning for game controllers. - // - // The format of the string is a comma separated list of USB VID/PID pairs - // in hexadecimal form, e.g. - // - // 0xAAAA/0xBBBB,0xCCCC/0xDDDD - // - // The variable can also take the form of @file, in which case the named - // file will be loaded and interpreted as the value of the variable. - hint_gamecontroller_ignore_devices = 'SDL_GAMECONTROLLER_IGNORE_DEVICES' - - // If set, all devices will be skipped when scanning for game controllers except for the ones listed in this variable. - // - // The format of the string is a comma separated list of USB VID/PID pairs - // in hexadecimal form, e.g. - // - // 0xAAAA/0xBBBB,0xCCCC/0xDDDD - // - // The variable can also take the form of @file, in which case the named - // file will be loaded and interpreted as the value of the variable. - hint_gamecontroller_ignore_devices_except = 'SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT' - - // If set, game controller face buttons report their values according to their labels instead of their positional layout. - // - // For example, on Nintendo Switch controllers, normally you'd get: - // - // (Y) - // (X) (B) - // (A) - // - // but if this hint is set, you'll get: - // - // (X) - // (Y) (A) - // (B) - // - // The variable can be set to the following values: - // "0" - Report the face buttons by position, as though they were on an Xbox controller. - // "1" - Report the face buttons by label instead of position - // - // The default value is "1". This hint may be set at any time. - hint_gamecontroller_use_button_labels = 'SDL_GAMECONTROLLER_USE_BUTTON_LABELS' - - // A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background. - // - // The variable can be set to the following values: - // "0" - Disable joystick & gamecontroller input events when the - // application is in the background. - // "1" - Enable joystick & gamecontroller input events when the - // application is in the background. - // - // The default value is "0". This hint may be set at any time. - hint_joystick_allow_background_events = 'SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS' - - // A variable controlling whether the HIDAPI joystick drivers should be used. - // - // This variable can be set to the following values: - // "0" - HIDAPI drivers are not used - // "1" - HIDAPI drivers are used (the default) - // - // This variable is the default for all drivers, but can be overridden by the hints for specific drivers below. - // - hint_joystick_hidapi = 'SDL_JOYSTICK_HIDAPI' - - // A variable controlling whether the HIDAPI driver for PS4 controllers should be used. - // - // This variable can be set to the following values: - // "0" - HIDAPI driver is not used - // "1" - HIDAPI driver is used - // - // The default is the value of SDL_HINT_JOYSTICK_HIDAPI - // - hint_joystick_hidapi_ps4 = 'SDL_JOYSTICK_HIDAPI_PS4' - - // A variable controlling whether extended input reports should be used for PS4 controllers when using the HIDAPI driver. - // - // This variable can be set to the following values: - // "0" - extended reports are not enabled (the default) - // "1" - extended reports - // - // Extended input reports allow rumble on Bluetooth PS4 controllers, but - // break DirectInput handling for applications that don't use SDL. - // - // Once extended reports are enabled, they can not be disabled without - // power cycling the controller. - // - hint_joystick_hidapi_ps4_rumble = 'SDL_JOYSTICK_HIDAPI_PS4_RUMBLE' - - // A variable controlling whether the HIDAPI driver for Steam Controllers should be used. - // - // This variable can be set to the following values: - // "0" - HIDAPI driver is not used - // "1" - HIDAPI driver is used - // - // The default is the value of SDL_HINT_JOYSTICK_HIDAPI - // - hint_joystick_hidapi_steam = 'SDL_JOYSTICK_HIDAPI_STEAM' - - // A variable controlling whether the HIDAPI driver for Nintendo Switch controllers should be used. - // - // This variable can be set to the following values: - // "0" - HIDAPI driver is not used - // "1" - HIDAPI driver is used - // - // The default is the value of SDL_HINT_JOYSTICK_HIDAPI - // - hint_joystick_hidapi_switch = 'SDL_JOYSTICK_HIDAPI_SWITCH' - - // A variable controlling whether the HIDAPI driver for XBox controllers should be used. - // - // This variable can be set to the following values: - // "0" - HIDAPI driver is not used - // "1" - HIDAPI driver is used - // - // The default is the value of SDL_HINT_JOYSTICK_HIDAPI - // - hint_joystick_hidapi_xbox = 'SDL_JOYSTICK_HIDAPI_XBOX' - - // A variable controlling whether the HIDAPI driver for Nintendo GameCube controllers should be used. - // - // This variable can be set to the following values: - // "0" - HIDAPI driver is not used - // "1" - HIDAPI driver is used - // - // The default is the value of SDL_HINT_JOYSTICK_HIDAPI - hint_joystick_hidapi_gamecube = 'SDL_JOYSTICK_HIDAPI_GAMECUBE' - - // A variable that controls whether Steam Controllers should be exposed using the SDL joystick and game controller APIs - // - // The variable can be set to the following values: - // "0" - Do not scan for Steam Controllers - // "1" - Scan for Steam Controllers (the default) - // - // The default value is "1". This hint must be set before initializing the joystick subsystem. - // - hint_enable_steam_controllers = 'SDL_ENABLE_STEAM_CONTROLLERS' - - // If set to "0" then never set the top most bit on a SDL Window, even if the video mode expects it. - // This is a debugging aid for developers and not expected to be used by end users. The default is "1" - // - // This variable can be set to the following values: - // "0" - don't allow topmost - // "1" - allow topmost - hint_allow_topmost = 'SDL_ALLOW_TOPMOST' - - // A variable that controls the timer resolution, in milliseconds. - // - // The higher resolution the timer, the more frequently the CPU services - // timer interrupts, and the more precise delays are, but this takes up - // power and CPU time. This hint is only used on Windows 7 and earlier. - // - // See this blog post for more information: - // http://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/ - // - // If this variable is set to "0", the system timer resolution is not set. - // - // The default value is "1". This hint may be set at any time. - hint_timer_resolution = 'SDL_TIMER_RESOLUTION' - - // A variable describing the content orientation on QtWayland-based platforms. - // - // On QtWayland platforms, windows are rotated client-side to allow for custom - // transitions. In order to correctly position overlays (e.g. volume bar) and - // gestures (e.g. events view, close/minimize gestures), the system needs to - // know in which orientation the application is currently drawing its contents. - // - // This does not cause the window to be rotated or resized, the application - // needs to take care of drawing the content in the right orientation (the - // framebuffer is always in portrait mode). - // - // This variable can be one of the following values: - // "primary" (default), "portrait", "landscape", "inverted-portrait", "inverted-landscape" - hint_qtwayland_content_orientation = 'SDL_QTWAYLAND_CONTENT_ORIENTATION' - - // Flags to set on QtWayland windows to integrate with the native window manager. - // - // On QtWayland platforms, this hint controls the flags to set on the windows. - // For example, on Sailfish OS "OverridesSystemGestures" disables swipe gestures. - // - // This variable is a space-separated list of the following values (empty = no flags): - // "OverridesSystemGestures", "StaysOnTop", "BypassWindowManager" - hint_qtwayland_window_flags = 'SDL_QTWAYLAND_WINDOW_FLAGS' - - // A string specifying SDL's threads stack size in bytes or "0" for the backend's default size - // - // Use this hint in case you need to set SDL's threads stack size to other than the default. - // This is specially useful if you build SDL against a non glibc libc library (such as musl) which - // provides a relatively small default thread stack size (a few kilobytes versus the default 8MB glibc uses). - // Support for this hint is currently available only in the pthread, Windows, and PSP backend. - // - // Instead of this hint, in 2.0.9 and later, you can use - // SDL_CreateThreadWithStackSize(). This hint only works with the classic - // SDL_CreateThread(). - hint_thread_stack_size = 'SDL_THREAD_STACK_SIZE' - - // If set to 1, then do not allow high-DPI windows. ("Retina" on Mac and iOS) - hint_video_highdpi_disabled = 'SDL_VIDEO_HIGHDPI_DISABLED' - - // A variable that determines whether ctrl+click should generate a right-click event on Mac - // - // If present, holding ctrl while left clicking will generate a right click - // event when on Mac. - hint_mac_ctrl_click_emulate_right_click = 'SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK' - - // A variable specifying which shader compiler to preload when using the Chrome ANGLE binaries - // - // SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It - // can use two different sets of binaries, those compiled by the user from source - // or those provided by the Chrome browser. In the later case, these binaries require - // that SDL loads a DLL providing the shader compiler. - // - // This variable can be set to the following values: - // "d3dcompiler_46.dll" - default, best for Vista or later. - // "d3dcompiler_43.dll" - for XP support. - // "none" - do not load any library, useful if you compiled ANGLE from source and included the compiler in your binaries. - // - hint_video_win_d3dcompiler = 'SDL_VIDEO_WIN_D3DCOMPILER' - - // A variable that is the address of another SDL_Window* (as a hex string formatted with "%p"). - // - // If this hint is set before SDL_CreateWindowFrom() and the SDL_Window* it is set to has - // SDL_WINDOW_OPENGL set (and running on WGL only, currently), then two things will occur on the newly - // created SDL_Window: - // - // 1. Its pixel format will be set to the same pixel format as this SDL_Window. This is - // needed for example when sharing an OpenGL context across multiple windows. - // - // 2. The flag SDL_WINDOW_OPENGL will be set on the new window so it can be used for - // OpenGL rendering. - // - // This variable can be set to the following values: - // The address (as a string "%p") of the SDL_Window* that new windows created with SDL_CreateWindowFrom() should - // share a pixel format with. - hint_video_window_share_pixel_format = 'SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT' - - // A URL to a WinRT app's privacy policy - // - // All network-enabled WinRT apps must make a privacy policy available to its - // users. On Windows 8, 8.1, and RT, Microsoft mandates that this policy be - // be available in the Windows Settings charm, as accessed from within the app. - // SDL provides code to add a URL-based link there, which can point to the app's - // privacy policy. - // - // To setup a URL to an app's privacy policy, set SDL_HINT_WINRT_PRIVACY_POLICY_URL - // before calling any SDL_Init() functions. The contents of the hint should - // be a valid URL. For example, "http://www.example.com". - // - // The default value is "", which will prevent SDL from adding a privacy policy - // link to the Settings charm. This hint should only be set during app init. - // - // The label text of an app's "Privacy Policy" link may be customized via another - // hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. - // - // Please note that on Windows Phone, Microsoft does not provide standard UI - // for displaying a privacy policy link, and as such, SDL_HINT_WINRT_PRIVACY_POLICY_URL - // will not get used on that platform. Network-enabled phone apps should display - // their privacy policy through some other, in-app means. - hint_winrt_privacy_policy_url = 'SDL_WINRT_PRIVACY_POLICY_URL' - - // Label text for a WinRT app's privacy policy link - // - // Network-enabled WinRT apps must include a privacy policy. On Windows 8, 8.1, and RT, - // Microsoft mandates that this policy be available via the Windows Settings charm. - // SDL provides code to add a link there, with its label text being set via the - // optional hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. - // - // Please note that a privacy policy's contents are not set via this hint. A separate - // hint, SDL_HINT_WINRT_PRIVACY_POLICY_URL, is used to link to the actual text of the - // policy. - // - // The contents of this hint should be encoded as a UTF8 string. - // - // The default value is "Privacy Policy". This hint should only be set during app - // initialization, preferably before any calls to SDL_Init(). - // - // For additional information on linking to a privacy policy, see the documentation for - // SDL_HINT_WINRT_PRIVACY_POLICY_URL. - hint_winrt_privacy_policy_label = 'SDL_WINRT_PRIVACY_POLICY_LABEL' - - // Allows back-button-press events on Windows Phone to be marked as handled - // - // Windows Phone devices typically feature a Back button. When pressed, - // the OS will emit back-button-press events, which apps are expected to - // handle in an appropriate manner. If apps do not explicitly mark these - // events as 'Handled', then the OS will invoke its default behavior for - // unhandled back-button-press events, which on Windows Phone 8 and 8.1 is to - // terminate the app (and attempt to switch to the previous app, or to the - // device's home screen). - // - // Setting the SDL_HINT_WINRT_HANDLE_BACK_BUTTON hint to "1" will cause SDL - // to mark back-button-press events as Handled, if and when one is sent to - // the app. - // - // Internally, Windows Phone sends back button events as parameters to - // special back-button-press callback functions. Apps that need to respond - // to back-button-press events are expected to register one or more - // callback functions for such, shortly after being launched (during the - // app's initialization phase). After the back button is pressed, the OS - // will invoke these callbacks. If the app's callback(s) do not explicitly - // mark the event as handled by the time they return, or if the app never - // registers one of these callback, the OS will consider the event - // un-handled, and it will apply its default back button behavior (terminate - // the app). - // - // SDL registers its own back-button-press callback with the Windows Phone - // OS. This callback will emit a pair of SDL key-press events (SDL_KEYDOWN - // and SDL_KEYUP), each with a scancode of SDL_SCANCODE_AC_BACK, after which - // it will check the contents of the hint, SDL_HINT_WINRT_HANDLE_BACK_BUTTON. - // If the hint's value is set to "1", the back button event's Handled - // property will get set to 'true'. If the hint's value is set to something - // else, or if it is unset, SDL will leave the event's Handled property - // alone. (By default, the OS sets this property to 'false', to note.) - // - // SDL apps can either set SDL_HINT_WINRT_HANDLE_BACK_BUTTON well before a - // back button is pressed, or can set it in direct-response to a back button - // being pressed. - // - // In order to get notified when a back button is pressed, SDL apps should - // register a callback function with SDL_AddEventWatch(), and have it listen - // for SDL_KEYDOWN events that have a scancode of SDL_SCANCODE_AC_BACK. - // (Alternatively, SDL_KEYUP events can be listened-for. Listening for - // either event type is suitable.) Any value of SDL_HINT_WINRT_HANDLE_BACK_BUTTON - // set by such a callback, will be applied to the OS' current - // back-button-press event. - // - // More details on back button behavior in Windows Phone apps can be found - // at the following page, on Microsoft's developer site: - // http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj247550(v=vs.105).aspx - hint_winrt_handle_back_button = 'SDL_WINRT_HANDLE_BACK_BUTTON' - - // A variable that dictates policy for fullscreen Spaces on Mac OS X. - // - // This hint only applies to Mac OS X. - // - // The variable can be set to the following values: - // "0" - Disable Spaces support (FULLSCREEN_DESKTOP won't use them and - // SDL_WINDOW_RESIZABLE windows won't offer the "fullscreen" - // button on their titlebars). - // "1" - Enable Spaces support (FULLSCREEN_DESKTOP will use them and - // SDL_WINDOW_RESIZABLE windows will offer the "fullscreen" - // button on their titlebars). - // - // The default value is "1". Spaces are disabled regardless of this hint if - // the OS isn't at least Mac OS X Lion (10.7). This hint must be set before - // any windows are created. - hint_video_mac_fullscreen_spaces = 'SDL_VIDEO_MAC_FULLSCREEN_SPACES' - - // When set don't force the SDL app to become a foreground process - // - // This hint only applies to Mac OS X. - // - hint_mac_background_app = 'SDL_MAC_BACKGROUND_APP' - - // Android APK expansion main file version. Should be a string number like "1", "2" etc. - // - // Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION. - // - // If both hints were set then SDL_RWFromFile() will look into expansion files - // after a given relative path was not found in the internal storage and assets. - // - // By default this hint is not set and the APK expansion files are not searched. - hint_android_apk_expansion_main_file_version = 'SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION' - - // Android APK expansion patch file version. Should be a string number like "1", "2" etc. - // - // Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION. - // - // If both hints were set then SDL_RWFromFile() will look into expansion files - // after a given relative path was not found in the internal storage and assets. - // - // By default this hint is not set and the APK expansion files are not searched. - hint_android_apk_expansion_patch_file_version = 'SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION' - - // A variable to control whether certain IMEs should handle text editing internally instead of sending SDL_TEXTEDITING events. - // - // The variable can be set to the following values: - // "0" - SDL_TEXTEDITING events are sent, and it is the application's - // responsibility to render the text from these events and - // differentiate it somehow from committed text. (default) - // "1" - If supported by the IME then SDL_TEXTEDITING events are not sent, - // and text that is being composed will be rendered in its own UI. - hint_ime_internal_editing = 'SDL_IME_INTERNAL_EDITING' - - // A variable to control whether we trap the Android back button to handle it manually. - // This is necessary for the right mouse button to work on some Android devices, or - // to be able to trap the back button for use in your code reliably. If set to true, - // the back button will show up as an SDL_KEYDOWN / SDL_KEYUP pair with a keycode of - // SDL_SCANCODE_AC_BACK. - // - // The variable can be set to the following values: - // "0" - Back button will be handled as usual for system. (default) - // "1" - Back button will be trapped, allowing you to handle the key press - // manually. (This will also let right mouse click work on systems - // where the right mouse button functions as back.) - // - // The value of this hint is used at runtime, so it can be changed at any time. - hint_android_trap_back_button = 'SDL_ANDROID_TRAP_BACK_BUTTON' - - // A variable to control whether the event loop will block itself when the app is paused. - // - // The variable can be set to the following values: - // "0" - Non blocking. - // "1" - Blocking. (default) - // - // The value should be set before SDL is initialized. - hint_android_block_on_pause = 'SDL_ANDROID_BLOCK_ON_PAUSE' - - // A variable to control whether the return key on the soft keyboard - // should hide the soft keyboard on Android and iOS. - // - // The variable can be set to the following values: - // "0" - The return key will be handled as a key event. This is the behaviour of SDL <= 2.0.3. (default) - // "1" - The return key will hide the keyboard. - // - // The value of this hint is used at runtime, so it can be changed at any time. - hint_return_key_hides_ime = 'SDL_RETURN_KEY_HIDES_IME' - - // override the binding element for keyboard inputs for Emscripten builds - // - // This hint only applies to the emscripten platform - // - // The variable can be one of - // "#window" - The javascript window object (this is the default) - // "#document" - The javascript document object - // "#screen" - the javascript window.screen object - // "#canvas" - the WebGL canvas element - // any other string without a leading # sign applies to the element on the page with that ID. - hint_emscripten_keyboard_element = 'SDL_EMSCRIPTEN_KEYBOARD_ELEMENT' - - // Tell SDL not to catch the SIGINT or SIGTERM signals. - // - // This hint only applies to Unix-like platforms. - // - // The variable can be set to the following values: - // "0" - SDL will install a SIGINT and SIGTERM handler, and when it - // catches a signal, convert it into an SDL_QUIT event. - // "1" - SDL will not install a signal handler at all. - hint_no_signal_handlers = 'SDL_NO_SIGNAL_HANDLERS' - - // Tell SDL not to generate window-close events for Alt+F4 on Windows. - // - // The variable can be set to the following values: - // "0" - SDL will generate a window-close event when it sees Alt+F4. - // "1" - SDL will only do normal key handling for Alt+F4. - hint_windows_no_close_on_alt_f4 = 'SDL_WINDOWS_NO_CLOSE_ON_ALT_F4' - - // Prevent SDL from using version 4 of the bitmap header when saving BMPs. - // - // The bitmap header version 4 is required for proper alpha channel support and - // SDL will use it when required. Should this not be desired, this hint can - // force the use of the 40 byte header version which is supported everywhere. - // - // The variable can be set to the following values: - // "0" - Surfaces with a colorkey or an alpha channel are saved to a - // 32-bit BMP file with an alpha mask. SDL will use the bitmap - // header version 4 and set the alpha mask accordingly. - // "1" - Surfaces with a colorkey or an alpha channel are saved to a - // 32-bit BMP file without an alpha mask. The alpha channel data - // will be in the file, but applications are going to ignore it. - // - // The default value is "0". - hint_bmp_save_legacy_format = 'SDL_BMP_SAVE_LEGACY_FORMAT' - - // Tell SDL not to name threads on Windows with the 0x406D1388 Exception. - // The 0x406D1388 Exception is a trick used to inform Visual Studio of a - // thread's name, but it tends to cause problems with other debuggers, - // and the .NET runtime. Note that SDL 2.0.6 and later will still use - // the (safer) SetThreadDescription API, introduced in the Windows 10 - // Creators Update, if available. - // - // The variable can be set to the following values: - // "0" - SDL will raise the 0x406D1388 Exception to name threads. - // This is the default behavior of SDL <= 2.0.4. - // "1" - SDL will not raise this exception, and threads will be unnamed. (default) - // This is necessary with .NET languages or debuggers that aren't Visual Studio. - hint_windows_disable_thread_naming = 'SDL_WINDOWS_DISABLE_THREAD_NAMING' - - // Tell SDL which Dispmanx layer to use on a Raspberry PI - // - // Also known as Z-order. The variable can take a negative or positive value. - // The default is 10000. - hint_rpi_video_layer = 'SDL_RPI_VIDEO_LAYER' - - // Tell the video driver that we only want a double buffer. - // - // By default, most lowlevel 2D APIs will use a triple buffer scheme that - // wastes no CPU time on waiting for vsync after issuing a flip, but - // introduces a frame of latency. On the other hand, using a double buffer - // scheme instead is recommended for cases where low latency is an important - // factor because we save a whole frame of latency. - // We do so by waiting for vsync immediately after issuing a flip, usually just - // after eglSwapBuffers call in the backend's *_SwapWindow function. - // - // Since it's driver-specific, it's only supported where possible and - // implemented. Currently supported the following drivers: - // - KMSDRM (kmsdrm) - // - Raspberry Pi (raspberrypi) - hint_video_double_buffer = 'SDL_VIDEO_DOUBLE_BUFFER' - - // A variable controlling what driver to use for OpenGL ES contexts. - // - // On some platforms, currently Windows and X11, OpenGL drivers may support - // creating contexts with an OpenGL ES profile. By default SDL uses these - // profiles, when available, otherwise it attempts to load an OpenGL ES - // library, e.g. that provided by the ANGLE project. This variable controls - // whether SDL follows this default behaviour or will always load an - // OpenGL ES library. - // - // Circumstances where this is useful include - // - Testing an app with a particular OpenGL ES implementation, e.g ANGLE, - // or emulator, e.g. those from ARM, Imagination or Qualcomm. - // - Resolving OpenGL ES function addresses at link time by linking with - // the OpenGL ES library instead of querying them at run time with - // SDL_GL_GetProcAddress(). - // - // Caution: for an application to work with the default behaviour across - // different OpenGL drivers it must query the OpenGL ES function - // addresses at run time using SDL_GL_GetProcAddress(). - // - // This variable is ignored on most platforms because OpenGL ES is native - // or not supported. - // - // This variable can be set to the following values: - // "0" - Use ES profile of OpenGL, if available. (Default when not set.) - // "1" - Load OpenGL ES library using the default library names. - // - hint_opengl_es_driver = 'SDL_OPENGL_ES_DRIVER' - - // A variable controlling speed/quality tradeoff of audio resampling. - // - // If available, SDL can use libsamplerate ( http://www.mega-nerd.com/SRC/ ) - // to handle audio resampling. There are different resampling modes available - // that produce different levels of quality, using more CPU. - // - // If this hint isn't specified to a valid setting, or libsamplerate isn't - // available, SDL will use the default, internal resampling algorithm. - // - // Note that this is currently only applicable to resampling audio that is - // being written to a device for playback or audio being read from a device - // for capture. SDL_AudioCVT always uses the default resampler (although this - // might change for SDL 2.1). - // - // This hint is currently only checked at audio subsystem initialization. - // - // This variable can be set to the following values: - // - // "0" or "default" - Use SDL's internal resampling (Default when not set - low quality, fast) - // "1" or "fast" - Use fast, slightly higher quality resampling, if available - // "2" or "medium" - Use medium quality resampling, if available - // "3" or "best" - Use high quality resampling, if available - hint_audio_resampling_mode = 'SDL_AUDIO_RESAMPLING_MODE' - - // A variable controlling the audio category on iOS and Mac OS X - // - // This variable can be set to the following values: - // - // "ambient" - Use the AVAudioSessionCategoryAmbient audio category, will be muted by the phone mute switch (default) - // "playback" - Use the AVAudioSessionCategoryPlayback category - // - // For more information, see Apple's documentation: - // https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html - hint_audio_category = 'SDL_AUDIO_CATEGORY' - - // A variable controlling whether the 2D render API is compatible or efficient. - // - // This variable can be set to the following values: - // - // "0" - Don't use batching to make rendering more efficient. - // "1" - Use batching, but might cause problems if app makes its own direct OpenGL calls. - // - // Up to SDL 2.0.9, the render API would draw immediately when requested. Now - // it batches up draw requests and sends them all to the GPU only when forced - // to (during SDL_RenderPresent, when changing render targets, by updating a - // texture that the batch needs, etc). This is significantly more efficient, - // but it can cause problems for apps that expect to render on top of the - // render API's output. As such, SDL will disable batching if a specific - // render backend is requested (since this might indicate that the app is - // planning to use the underlying graphics API directly). This hint can - // be used to explicitly request batching in this instance. It is a contract - // that you will either never use the underlying graphics API directly, or - // if you do, you will call SDL_RenderFlush() before you do so any current - // batch goes to the GPU before your work begins. Not following this contract - // will result in undefined behavior. - // / - hint_render_batching = 'SDL_RENDER_BATCHING' - - // A variable controlling whether SDL logs all events pushed onto its internal queue. - // - // This variable can be set to the following values: - // - // "0" - Don't log any events (default) - // "1" - Log all events except mouse and finger motion, which are pretty spammy. - // "2" - Log all events. - // - // This is generally meant to be used to debug SDL itself, but can be useful - // for application developers that need better visibility into what is going - // on in the event queue. Logged events are sent through SDL_Log(), which - // means by default they appear on stdout on most platforms or maybe - // OutputDebugString() on Windows, and can be funneled by the app with - // SDL_LogSetOutputFunction(), etc. - // - // This hint can be toggled on and off at runtime, if you only need to log - // events for a small subset of program execution. - hint_event_logging = 'SDL_EVENT_LOGGING' - - // Controls how the size of the RIFF chunk affects the loading of a WAVE file. - // - // The size of the RIFF chunk (which includes all the sub-chunks of the WAVE - // file) is not always reliable. In case the size is wrong, it's possible to - // just ignore it and step through the chunks until a fixed limit is reached. - // - // Note that files that have trailing data unrelated to the WAVE file or - // corrupt files may slow down the loading process without a reliable boundary. - // By default, SDL stops after 10000 chunks to prevent wasting time. Use the - // environment variable SDL_WAVE_CHUNK_LIMIT to adjust this value. - // - // This variable can be set to the following values: - // - // "force" - Always use the RIFF chunk size as a boundary for the chunk search - // "ignorezero" - Like "force", but a zero size searches up to 4 GiB (default) - // "ignore" - Ignore the RIFF chunk size and always search up to 4 GiB - // "maximum" - Search for chunks until the end of file (not recommended) - hint_wave_riff_chunk_size = 'SDL_WAVE_RIFF_CHUNK_SIZE' - - // Controls how a truncated WAVE file is handled. - // - // A WAVE file is considered truncated if any of the chunks are incomplete or - // the data chunk size is not a multiple of the block size. By default, SDL - // decodes until the first incomplete block, as most applications seem to do. - // - // This variable can be set to the following values: - // - // "verystrict" - Raise an error if the file is truncated - // "strict" - Like "verystrict", but the size of the RIFF chunk is ignored - // "dropframe" - Decode until the first incomplete sample frame - // "dropblock" - Decode until the first incomplete block (default) - hint_wave_truncation = 'SDL_WAVE_TRUNCATION' - - // Controls how the fact chunk affects the loading of a WAVE file. - // - // The fact chunk stores information about the number of samples of a WAVE - // file. The Standards Update from Microsoft notes that this value can be used - // to 'determine the length of the data in seconds'. This is especially useful - // for compressed formats (for which this is a mandatory chunk) if they produce - // multiple sample frames per block and truncating the block is not allowed. - // The fact chunk can exactly specify how many sample frames there should be - // in this case. - // - // Unfortunately, most application seem to ignore the fact chunk and so SDL - // ignores it by default as well. - // - // This variable can be set to the following values: - // - // "truncate" - Use the number of samples to truncate the wave data if - // the fact chunk is present and valid - // "strict" - Like "truncate", but raise an error if the fact chunk - // is invalid, not present for non-PCM formats, or if the - // data chunk doesn't have that many samples - // "ignorezero" - Like "truncate", but ignore fact chunk if the number of - // samples is zero - // "ignore" - Ignore fact chunk entirely (default) - hint_wave_fact_chunk = 'SDL_WAVE_FACT_CHUNK' - - // Override for SDL_GetDisplayUsableBounds() - // - // If set, this hint will override the expected results for - // SDL_GetDisplayUsableBounds() for display index 0. Generally you don't want - // to do this, but this allows an embedded system to request that some of the - // screen be reserved for other uses when paired with a well-behaved - // application. - // - // The contents of this hint must be 4 comma-separated integers, the first - // is the bounds x, then y, width and height, in that order. - hint_display_usable_bounds = 'SDL_DISPLAY_USABLE_BOUNDS' -) +// A variable controlling how 3D acceleration is used to accelerate the SDL screen surface. +// +// SDL can try to accelerate the SDL screen surface by using streaming +// textures with a 3D rendering engine. This variable controls whether and +// how this is done. +// +// This variable can be set to the following values: +// "0" - Disable 3D acceleration +// "1" - Enable 3D acceleration, using the default renderer. +// "X" - Enable 3D acceleration, using X where X is one of the valid rendering drivers. (e.g. "direct3d", "opengl", etc.) +// +// By default SDL tries to make a best guess for each platform whether +// to use acceleration or not. +pub const hint_framebuffer_acceleration = 'SDL_FRAMEBUFFER_ACCELERATION' + +// A variable specifying which render driver to use. +// +// If the application doesn't pick a specific renderer to use, this variable +// specifies the name of the preferred renderer. If the preferred renderer +// can't be initialized, the normal default renderer is used. +// +// This variable is case insensitive and can be set to the following values: +// "direct3d" +// "opengl" +// "opengles2" +// "opengles" +// "metal" +// "software" +// +// The default varies by platform, but it's the first one in the list that +// is available on the current platform. +pub const hint_render_driver = 'SDL_RENDER_DRIVER' + +// A variable controlling whether the OpenGL render driver uses shaders if they are available. +// +// This variable can be set to the following values: +// "0" - Disable shaders +// "1" - Enable shaders +// +// By default shaders are used if OpenGL supports them. +pub const hint_render_opengl_shaders = 'SDL_RENDER_OPENGL_SHADERS' + +// A variable controlling whether the Direct3D device is initialized for thread-safe operations. +// +// This variable can be set to the following values: +// "0" - Thread-safety is not enabled (faster) +// "1" - Thread-safety is enabled +// +// By default the Direct3D device is created with thread-safety disabled. +pub const hint_render_direct3d_threadsafe = 'SDL_RENDER_DIRECT3D_THREADSAFE' + +// A variable controlling whether to enable Direct3D 11+'s Debug Layer. +// +// This variable does not have any effect on the Direct3D 9 based renderer. +// +// This variable can be set to the following values: +// "0" - Disable Debug Layer use +// "1" - Enable Debug Layer use +// +// By default, SDL does not use Direct3D Debug Layer. +pub const hint_render_direct3d11_debug = 'SDL_RENDER_DIRECT3D11_DEBUG' + +// A variable controlling the scaling policy for SDL_RenderSetLogicalSize. +// +// This variable can be set to the following values: +// "0" or "letterbox" - Uses letterbox/sidebars to fit the entire rendering on screen +// "1" or "overscan" - Will zoom the rendering so it fills the entire screen, allowing edges to be drawn offscreen +// +// By default letterbox is used +pub const hint_render_logical_size_mode = 'SDL_RENDER_LOGICAL_SIZE_MODE' + +// A variable controlling the scaling quality +// +// This variable can be set to the following values: +// "0" or "nearest" - Nearest pixel sampling +// "1" or "linear" - Linear filtering (supported by OpenGL and Direct3D) +// "2" or "best" - Currently this is the same as "linear" +// +// By default nearest pixel sampling is used +pub const hint_render_scale_quality = 'SDL_RENDER_SCALE_QUALITY' + +// A variable controlling whether updates to the SDL screen surface should be synchronized with the vertical refresh, to avoid tearing. +// +// This variable can be set to the following values: +// "0" - Disable vsync +// "1" - Enable vsync +// +// By default SDL does not sync screen surface updates with vertical refresh. +pub const hint_render_vsync = 'SDL_RENDER_VSYNC' + +// A variable controlling whether the screensaver is enabled. +// +// This variable can be set to the following values: +// "0" - Disable screensaver +// "1" - Enable screensaver +// +// By default SDL will disable the screensaver. +pub const hint_video_allow_screensaver = 'SDL_VIDEO_ALLOW_SCREENSAVER' + +// A variable controlling whether the graphics context is externally managed. +// +// This variable can be set to the following values: +// "0" - SDL will manage graphics contexts that are attached to windows. +// "1" - Disable graphics context management on windows. +// +// By default SDL will manage OpenGL contexts in certain situations. For example, on Android the +// context will be automatically saved and restored when pausing the application. Additionally, some +// platforms will assume usage of OpenGL if Vulkan isn't used. Setting this to "1" will prevent this +// behavior, which is desireable when the application manages the graphics context, such as +// an externally managed OpenGL context or attaching a Vulkan surface to the window. +pub const hint_video_external_context = 'SDL_VIDEO_EXTERNAL_CONTEXT' + +// A variable controlling whether the X11 VidMode extension should be used. +// +// This variable can be set to the following values: +// "0" - Disable XVidMode +// "1" - Enable XVidMode +// +// By default SDL will use XVidMode if it is available. +pub const hint_video_x11_xvidmode = 'SDL_VIDEO_X11_XVIDMODE' + +// A variable controlling whether the X11 Xinerama extension should be used. +// +// This variable can be set to the following values: +// "0" - Disable Xinerama +// "1" - Enable Xinerama +// +// By default SDL will use Xinerama if it is available. +pub const hint_video_x11_xinerama = 'SDL_VIDEO_X11_XINERAMA' + +// A variable controlling whether the X11 XRandR extension should be used. +// +// This variable can be set to the following values: +// "0" - Disable XRandR +// "1" - Enable XRandR +// +// By default SDL will not use XRandR because of window manager issues. +pub const hint_video_x11_xrandr = 'SDL_VIDEO_X11_XRANDR' + +// A variable forcing the visual ID chosen for new X11 windows +pub const hint_video_x11_window_visualid = 'SDL_VIDEO_X11_WINDOW_VISUALID' + +// A variable controlling whether the X11 _NET_WM_PING protocol should be supported. +// +// This variable can be set to the following values: +// "0" - Disable _NET_WM_PING +// "1" - Enable _NET_WM_PING +// +// By default SDL will use _NET_WM_PING, but for applications that know they +// will not always be able to respond to ping requests in a timely manner they can +// turn it off to avoid the window manager thinking the app is hung. +// The hint is checked in CreateWindow. +pub const hint_video_x11_net_wm_ping = 'SDL_VIDEO_X11_NET_WM_PING' + +// A variable controlling whether the X11 _NET_WM_BYPASS_COMPOSITOR hint should be used. +// +// This variable can be set to the following values: +// "0" - Disable _NET_WM_BYPASS_COMPOSITOR +// "1" - Enable _NET_WM_BYPASS_COMPOSITOR +// +// By default SDL will use _NET_WM_BYPASS_COMPOSITOR +// +pub const hint_video_x11_net_wm_bypass_compositor = 'SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR' + +// A variable controlling whether X11 should use GLX or EGL by default +// +// This variable can be set to the following values: +// "0" - Use GLX +// "1" - Use EGL +// +// By default SDL will use GLX when both are present. +pub const hint_video_x11_force_egl = 'SDL_VIDEO_X11_FORCE_EGL' + +// A variable controlling whether the window frame and title bar are interactive when the cursor is hidden +// +// This variable can be set to the following values: +// "0" - The window frame is not interactive when the cursor is hidden (no move, resize, etc) +// "1" - The window frame is interactive when the cursor is hidden +// +// By default SDL will allow interaction with the window frame when the cursor is hidden +pub const hint_window_frame_usable_while_cursor_hidden = 'SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN' + +// A variable to specify custom icon resource id from RC file on Windows platform +pub const hint_windows_intresource_icon = 'SDL_WINDOWS_INTRESOURCE_ICON' +pub const hint_windows_intresource_icon_small = 'SDL_WINDOWS_INTRESOURCE_ICON_SMALL' + +// A variable controlling whether the windows message loop is processed by SDL +// +// This variable can be set to the following values: +// "0" - The window message loop is not run +// "1" - The window message loop is processed in SDL_PumpEvents() +// +// By default SDL will process the windows message loop +pub const hint_windows_enable_messageloop = 'SDL_WINDOWS_ENABLE_MESSAGELOOP' + +// A variable controlling whether grabbing input grabs the keyboard +// +// This variable can be set to the following values: +// "0" - Grab will affect only the mouse +// "1" - Grab will affect mouse and keyboard +// +// By default SDL will not grab the keyboard so system shortcuts still work. +pub const hint_grab_keyboard = 'SDL_GRAB_KEYBOARD' + +// A variable setting the double click time, in milliseconds. +pub const hint_mouse_double_click_time = 'SDL_MOUSE_DOUBLE_CLICK_TIME' + +// A variable setting the double click radius, in pixels. +pub const hint_mouse_double_click_radius = 'SDL_MOUSE_DOUBLE_CLICK_RADIUS' + +// A variable setting the speed scale for mouse motion, in floating point, when the mouse is not in relative mode +pub const hint_mouse_normal_speed_scale = 'SDL_MOUSE_NORMAL_SPEED_SCALE' + +// A variable setting the scale for mouse motion, in floating point, when the mouse is in relative mode +pub const hint_mouse_relative_speed_scale = 'SDL_MOUSE_RELATIVE_SPEED_SCALE' + +// A variable controlling whether relative mouse mode is implemented using mouse warping +// +// This variable can be set to the following values: +// "0" - Relative mouse mode uses raw input +// "1" - Relative mouse mode uses mouse warping +// +// By default SDL will use raw input for relative mouse mode +pub const hint_mouse_relative_mode_warp = 'SDL_MOUSE_RELATIVE_MODE_WARP' + +// Allow mouse click events when clicking to focus an SDL window +// +// This variable can be set to the following values: +// "0" - Ignore mouse clicks that activate a window +// "1" - Generate events for mouse clicks that activate a window +// +// By default SDL will ignore mouse clicks that activate a window +pub const hint_mouse_focus_clickthrough = 'SDL_MOUSE_FOCUS_CLICKTHROUGH' + +// A variable controlling whether touch events should generate synthetic mouse events +// +// This variable can be set to the following values: +// "0" - Touch events will not generate mouse events +// "1" - Touch events will generate mouse events +// +// By default SDL will generate mouse events for touch events +pub const hint_touch_mouse_events = 'SDL_TOUCH_MOUSE_EVENTS' + +// A variable controlling whether mouse events should generate synthetic touch events +// +// This variable can be set to the following values: +// "0" - Mouse events will not generate touch events (default for desktop platforms) +// "1" - Mouse events will generate touch events (default for mobile platforms, such as Android and iOS) +pub const hint_mouse_touch_events = 'SDL_MOUSE_TOUCH_EVENTS' + +// Minimize your SDL_Window if it loses key focus when in fullscreen mode. Defaults to true. +// +pub const hint_video_minimize_on_focus_loss = 'SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS' + +// A variable controlling whether the idle timer is disabled on iOS. +// +// When an iOS app does not receive touches for some time, the screen is +// dimmed automatically. For games where the accelerometer is the only input +// this is problematic. This functionality can be disabled by setting this +// hint. +// +// As of SDL 2.0.4, SDL_EnableScreenSaver() and SDL_DisableScreenSaver() +// accomplish the same thing on iOS. They should be preferred over this hint. +// +// This variable can be set to the following values: +// "0" - Enable idle timer +// "1" - Disable idle timer +pub const hint_idle_timer_disabled = 'SDL_IOS_IDLE_TIMER_DISABLED' + +// A variable controlling which orientations are allowed on iOS/Android. +// +// In some circumstances it is necessary to be able to explicitly control +// which UI orientations are allowed. +// +// This variable is a space delimited list of the following values: +// "LandscapeLeft", "LandscapeRight", "Portrait" "PortraitUpsideDown" +pub const hint_orientations = 'SDL_IOS_ORIENTATIONS' + +// A variable controlling whether controllers used with the Apple TV +// generate UI events. +// +// When UI events are generated by controller input, the app will be +// backgrounded when the Apple TV remote's menu button is pressed, and when the +// pause or B buttons on gamepads are pressed. +// +// More information about properly making use of controllers for the Apple TV +// can be found here: +// https://developer.apple.com/tvos/human-interface-guidelines/remote-and-controllers/ +// +// This variable can be set to the following values: +// "0" - Controller input does not generate UI events (the default). +// "1" - Controller input generates UI events. +pub const hint_apple_tv_controller_ui_events = 'SDL_APPLE_TV_CONTROLLER_UI_EVENTS' + +// A variable controlling whether the Apple TV remote's joystick axes +// will automatically match the rotation of the remote. +// +// This variable can be set to the following values: +// "0" - Remote orientation does not affect joystick axes (the default). +// "1" - Joystick axes are based on the orientation of the remote. +pub const hint_apple_tv_remote_allow_rotation = 'SDL_APPLE_TV_REMOTE_ALLOW_ROTATION' + +// A variable controlling whether the home indicator bar on iPhone X +// should be hidden. +// +// This variable can be set to the following values: +// "0" - The indicator bar is not hidden (default for windowed applications) +// "1" - The indicator bar is hidden and is shown when the screen is touched (useful for movie playback applications) +// "2" - The indicator bar is dim and the first swipe makes it visible and the second swipe performs the "home" action (default for fullscreen applications) +pub const hint_ios_hide_home_indicator = 'SDL_IOS_HIDE_HOME_INDICATOR' + +// A variable controlling whether the Android / iOS built-in +// accelerometer should be listed as a joystick device. +// +// This variable can be set to the following values: +// "0" - The accelerometer is not listed as a joystick +// "1" - The accelerometer is available as a 3 axis joystick (the default). +pub const hint_accelerometer_as_joystick = 'SDL_ACCELEROMETER_AS_JOYSTICK' + +// A variable controlling whether the Android / tvOS remotes +// should be listed as joystick devices, instead of sending keyboard events. +// +// This variable can be set to the following values: +// "0" - Remotes send enter/escape/arrow key events +// "1" - Remotes are available as 2 axis, 2 button joysticks (the default). +pub const hint_tv_remote_as_joystick = 'SDL_TV_REMOTE_AS_JOYSTICK' + +// A variable that lets you disable the detection and use of Xinput gamepad devices +// +// The variable can be set to the following values: +// "0" - Disable XInput detection (only uses direct input) +// "1" - Enable XInput detection (the default) +pub const hint_xinput_enabled = 'SDL_XINPUT_ENABLED' + +// A variable that causes SDL to use the old axis and button mapping for XInput devices. +// +// This hint is for backwards compatibility only and will be removed in SDL 2.1 +// +// The default value is "0". This hint must be set before SDL_Init() +pub const hint_xinput_use_old_joystick_mapping = 'SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING' + +// A variable that overrides the automatic controller type detection +// +// The variable should be comma separated entries, in the form: VID/PID=type +// +// The VID and PID should be hexadecimal with exactly 4 digits, e.g. 0x00fd +// +// The type should be one of: +// Xbox360 +// XboxOne +// PS3 +// PS4 +// SwitchPro +// +// This hint affects what driver is used, and must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) +pub const hint_gamecontrollertype = 'SDL_GAMECONTROLLERTYPE' + +// A variable that lets you manually hint extra gamecontroller db entries. +// +// The variable should be newline delimited rows of gamecontroller config data, see SDL_gamecontroller.h +// +// This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) +// You can update mappings after the system is initialized with SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping() +pub const hint_gamecontrollerconfig = 'SDL_GAMECONTROLLERCONFIG' + +// A variable that lets you provide a file with extra gamecontroller db entries. +// +// The file should contain lines of gamecontroller config data, see SDL_gamecontroller.h +// +// This hint must be set before calling SDL_Init(SDL_INIT_GAMECONTROLLER) +// You can update mappings after the system is initialized with SDL_GameControllerMappingForGUID() and SDL_GameControllerAddMapping() +pub const hint_gamecontrollerconfig_file = 'SDL_GAMECONTROLLERCONFIG_FILE' + +// A variable containing a list of devices to skip when scanning for game controllers. +// +// The format of the string is a comma separated list of USB VID/PID pairs +// in hexadecimal form, e.g. +// +// 0xAAAA/0xBBBB,0xCCCC/0xDDDD +// +// The variable can also take the form of @file, in which case the named +// file will be loaded and interpreted as the value of the variable. +pub const hint_gamecontroller_ignore_devices = 'SDL_GAMECONTROLLER_IGNORE_DEVICES' + +// If set, all devices will be skipped when scanning for game controllers except for the ones listed in this variable. +// +// The format of the string is a comma separated list of USB VID/PID pairs +// in hexadecimal form, e.g. +// +// 0xAAAA/0xBBBB,0xCCCC/0xDDDD +// +// The variable can also take the form of @file, in which case the named +// file will be loaded and interpreted as the value of the variable. +pub const hint_gamecontroller_ignore_devices_except = 'SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT' + +// If set, game controller face buttons report their values according to their labels instead of their positional layout. +// +// For example, on Nintendo Switch controllers, normally you'd get: +// +// (Y) +// (X) (B) +// (A) +// +// but if this hint is set, you'll get: +// +// (X) +// (Y) (A) +// (B) +// +// The variable can be set to the following values: +// "0" - Report the face buttons by position, as though they were on an Xbox controller. +// "1" - Report the face buttons by label instead of position +// +// The default value is "1". This hint may be set at any time. +pub const hint_gamecontroller_use_button_labels = 'SDL_GAMECONTROLLER_USE_BUTTON_LABELS' + +// A variable that lets you enable joystick (and gamecontroller) events even when your app is in the background. +// +// The variable can be set to the following values: +// "0" - Disable joystick & gamecontroller input events when the +// application is in the background. +// "1" - Enable joystick & gamecontroller input events when the +// application is in the background. +// +// The default value is "0". This hint may be set at any time. +pub const hint_joystick_allow_background_events = 'SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS' + +// A variable controlling whether the HIDAPI joystick drivers should be used. +// +// This variable can be set to the following values: +// "0" - HIDAPI drivers are not used +// "1" - HIDAPI drivers are used (the default) +// +// This variable is the default for all drivers, but can be overridden by the hints for specific drivers below. +// +pub const hint_joystick_hidapi = 'SDL_JOYSTICK_HIDAPI' + +// A variable controlling whether the HIDAPI driver for PS4 controllers should be used. +// +// This variable can be set to the following values: +// "0" - HIDAPI driver is not used +// "1" - HIDAPI driver is used +// +// The default is the value of SDL_HINT_JOYSTICK_HIDAPI +// +pub const hint_joystick_hidapi_ps4 = 'SDL_JOYSTICK_HIDAPI_PS4' + +// A variable controlling whether extended input reports should be used for PS4 controllers when using the HIDAPI driver. +// +// This variable can be set to the following values: +// "0" - extended reports are not enabled (the default) +// "1" - extended reports +// +// Extended input reports allow rumble on Bluetooth PS4 controllers, but +// break DirectInput handling for applications that don't use SDL. +// +// Once extended reports are enabled, they can not be disabled without +// power cycling the controller. +// +pub const hint_joystick_hidapi_ps4_rumble = 'SDL_JOYSTICK_HIDAPI_PS4_RUMBLE' + +// A variable controlling whether the HIDAPI driver for Steam Controllers should be used. +// +// This variable can be set to the following values: +// "0" - HIDAPI driver is not used +// "1" - HIDAPI driver is used +// +// The default is the value of SDL_HINT_JOYSTICK_HIDAPI +// +pub const hint_joystick_hidapi_steam = 'SDL_JOYSTICK_HIDAPI_STEAM' + +// A variable controlling whether the HIDAPI driver for Nintendo Switch controllers should be used. +// +// This variable can be set to the following values: +// "0" - HIDAPI driver is not used +// "1" - HIDAPI driver is used +// +// The default is the value of SDL_HINT_JOYSTICK_HIDAPI +// +pub const hint_joystick_hidapi_switch = 'SDL_JOYSTICK_HIDAPI_SWITCH' + +// A variable controlling whether the HIDAPI driver for XBox controllers should be used. +// +// This variable can be set to the following values: +// "0" - HIDAPI driver is not used +// "1" - HIDAPI driver is used +// +// The default is the value of SDL_HINT_JOYSTICK_HIDAPI +// +pub const hint_joystick_hidapi_xbox = 'SDL_JOYSTICK_HIDAPI_XBOX' + +// A variable controlling whether the HIDAPI driver for Nintendo GameCube controllers should be used. +// +// This variable can be set to the following values: +// "0" - HIDAPI driver is not used +// "1" - HIDAPI driver is used +// +// The default is the value of SDL_HINT_JOYSTICK_HIDAPI +pub const hint_joystick_hidapi_gamecube = 'SDL_JOYSTICK_HIDAPI_GAMECUBE' + +// A variable that controls whether Steam Controllers should be exposed using the SDL joystick and game controller APIs +// +// The variable can be set to the following values: +// "0" - Do not scan for Steam Controllers +// "1" - Scan for Steam Controllers (the default) +// +// The default value is "1". This hint must be set before initializing the joystick subsystem. +// +pub const hint_enable_steam_controllers = 'SDL_ENABLE_STEAM_CONTROLLERS' + +// If set to "0" then never set the top most bit on a SDL Window, even if the video mode expects it. +// This is a debugging aid for developers and not expected to be used by end users. The default is "1" +// +// This variable can be set to the following values: +// "0" - don't allow topmost +// "1" - allow topmost +pub const hint_allow_topmost = 'SDL_ALLOW_TOPMOST' + +// A variable that controls the timer resolution, in milliseconds. +// +// The higher resolution the timer, the more frequently the CPU services +// timer interrupts, and the more precise delays are, but this takes up +// power and CPU time. This hint is only used on Windows 7 and earlier. +// +// See this blog post for more information: +// http://randomascii.wordpress.com/2013/07/08/windows-timer-resolution-megawatts-wasted/ +// +// If this variable is set to "0", the system timer resolution is not set. +// +// The default value is "1". This hint may be set at any time. +pub const hint_timer_resolution = 'SDL_TIMER_RESOLUTION' + +// A variable describing the content orientation on QtWayland-based platforms. +// +// On QtWayland platforms, windows are rotated client-side to allow for custom +// transitions. In order to correctly position overlays (e.g. volume bar) and +// gestures (e.g. events view, close/minimize gestures), the system needs to +// know in which orientation the application is currently drawing its contents. +// +// This does not cause the window to be rotated or resized, the application +// needs to take care of drawing the content in the right orientation (the +// framebuffer is always in portrait mode). +// +// This variable can be one of the following values: +// "primary" (default), "portrait", "landscape", "inverted-portrait", "inverted-landscape" +pub const hint_qtwayland_content_orientation = 'SDL_QTWAYLAND_CONTENT_ORIENTATION' + +// Flags to set on QtWayland windows to integrate with the native window manager. +// +// On QtWayland platforms, this hint controls the flags to set on the windows. +// For example, on Sailfish OS "OverridesSystemGestures" disables swipe gestures. +// +// This variable is a space-separated list of the following values (empty = no flags): +// "OverridesSystemGestures", "StaysOnTop", "BypassWindowManager" +pub const hint_qtwayland_window_flags = 'SDL_QTWAYLAND_WINDOW_FLAGS' + +// A string specifying SDL's threads stack size in bytes or "0" for the backend's default size +// +// Use this hint in case you need to set SDL's threads stack size to other than the default. +// This is specially useful if you build SDL against a non glibc libc library (such as musl) which +// provides a relatively small default thread stack size (a few kilobytes versus the default 8MB glibc uses). +// Support for this hint is currently available only in the pthread, Windows, and PSP backend. +// +// Instead of this hint, in 2.0.9 and later, you can use +// SDL_CreateThreadWithStackSize(). This hint only works with the classic +// SDL_CreateThread(). +pub const hint_thread_stack_size = 'SDL_THREAD_STACK_SIZE' + +// If set to 1, then do not allow high-DPI windows. ("Retina" on Mac and iOS) +pub const hint_video_highdpi_disabled = 'SDL_VIDEO_HIGHDPI_DISABLED' + +// A variable that determines whether ctrl+click should generate a right-click event on Mac +// +// If present, holding ctrl while left clicking will generate a right click +// event when on Mac. +pub const hint_mac_ctrl_click_emulate_right_click = 'SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK' + +// A variable specifying which shader compiler to preload when using the Chrome ANGLE binaries +// +// SDL has EGL and OpenGL ES2 support on Windows via the ANGLE project. It +// can use two different sets of binaries, those compiled by the user from source +// or those provided by the Chrome browser. In the later case, these binaries require +// that SDL loads a DLL providing the shader compiler. +// +// This variable can be set to the following values: +// "d3dcompiler_46.dll" - default, best for Vista or later. +// "d3dcompiler_43.dll" - for XP support. +// "none" - do not load any library, useful if you compiled ANGLE from source and included the compiler in your binaries. +// +pub const hint_video_win_d3dcompiler = 'SDL_VIDEO_WIN_D3DCOMPILER' + +// A variable that is the address of another SDL_Window* (as a hex string formatted with "%p"). +// +// If this hint is set before SDL_CreateWindowFrom() and the SDL_Window* it is set to has +// SDL_WINDOW_OPENGL set (and running on WGL only, currently), then two things will occur on the newly +// created SDL_Window: +// +// 1. Its pixel format will be set to the same pixel format as this SDL_Window. This is +// needed for example when sharing an OpenGL context across multiple windows. +// +// 2. The flag SDL_WINDOW_OPENGL will be set on the new window so it can be used for +// OpenGL rendering. +// +// This variable can be set to the following values: +// The address (as a string "%p") of the SDL_Window* that new windows created with SDL_CreateWindowFrom() should +// share a pixel format with. +pub const hint_video_window_share_pixel_format = 'SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT' + +// A URL to a WinRT app's privacy policy +// +// All network-enabled WinRT apps must make a privacy policy available to its +// users. On Windows 8, 8.1, and RT, Microsoft mandates that this policy be +// be available in the Windows Settings charm, as accessed from within the app. +// SDL provides code to add a URL-based link there, which can point to the app's +// privacy policy. +// +// To setup a URL to an app's privacy policy, set SDL_HINT_WINRT_PRIVACY_POLICY_URL +// before calling any SDL_Init() functions. The contents of the hint should +// be a valid URL. For example, "http://www.example.com". +// +// The default value is "", which will prevent SDL from adding a privacy policy +// link to the Settings charm. This hint should only be set during app init. +// +// The label text of an app's "Privacy Policy" link may be customized via another +// hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. +// +// Please note that on Windows Phone, Microsoft does not provide standard UI +// for displaying a privacy policy link, and as such, SDL_HINT_WINRT_PRIVACY_POLICY_URL +// will not get used on that platform. Network-enabled phone apps should display +// their privacy policy through some other, in-app means. +pub const hint_winrt_privacy_policy_url = 'SDL_WINRT_PRIVACY_POLICY_URL' + +// Label text for a WinRT app's privacy policy link +// +// Network-enabled WinRT apps must include a privacy policy. On Windows 8, 8.1, and RT, +// Microsoft mandates that this policy be available via the Windows Settings charm. +// SDL provides code to add a link there, with its label text being set via the +// optional hint, SDL_HINT_WINRT_PRIVACY_POLICY_LABEL. +// +// Please note that a privacy policy's contents are not set via this hint. A separate +// hint, SDL_HINT_WINRT_PRIVACY_POLICY_URL, is used to link to the actual text of the +// policy. +// +// The contents of this hint should be encoded as a UTF8 string. +// +// The default value is "Privacy Policy". This hint should only be set during app +// initialization, preferably before any calls to SDL_Init(). +// +// For additional information on linking to a privacy policy, see the documentation for +// SDL_HINT_WINRT_PRIVACY_POLICY_URL. +pub const hint_winrt_privacy_policy_label = 'SDL_WINRT_PRIVACY_POLICY_LABEL' + +// Allows back-button-press events on Windows Phone to be marked as handled +// +// Windows Phone devices typically feature a Back button. When pressed, +// the OS will emit back-button-press events, which apps are expected to +// handle in an appropriate manner. If apps do not explicitly mark these +// events as 'Handled', then the OS will invoke its default behavior for +// unhandled back-button-press events, which on Windows Phone 8 and 8.1 is to +// terminate the app (and attempt to switch to the previous app, or to the +// device's home screen). +// +// Setting the SDL_HINT_WINRT_HANDLE_BACK_BUTTON hint to "1" will cause SDL +// to mark back-button-press events as Handled, if and when one is sent to +// the app. +// +// Internally, Windows Phone sends back button events as parameters to +// special back-button-press callback functions. Apps that need to respond +// to back-button-press events are expected to register one or more +// callback functions for such, shortly after being launched (during the +// app's initialization phase). After the back button is pressed, the OS +// will invoke these callbacks. If the app's callback(s) do not explicitly +// mark the event as handled by the time they return, or if the app never +// registers one of these callback, the OS will consider the event +// un-handled, and it will apply its default back button behavior (terminate +// the app). +// +// SDL registers its own back-button-press callback with the Windows Phone +// OS. This callback will emit a pair of SDL key-press events (SDL_KEYDOWN +// and SDL_KEYUP), each with a scancode of SDL_SCANCODE_AC_BACK, after which +// it will check the contents of the hint, SDL_HINT_WINRT_HANDLE_BACK_BUTTON. +// If the hint's value is set to "1", the back button event's Handled +// property will get set to 'true'. If the hint's value is set to something +// else, or if it is unset, SDL will leave the event's Handled property +// alone. (By default, the OS sets this property to 'false', to note.) +// +// SDL apps can either set SDL_HINT_WINRT_HANDLE_BACK_BUTTON well before a +// back button is pressed, or can set it in direct-response to a back button +// being pressed. +// +// In order to get notified when a back button is pressed, SDL apps should +// register a callback function with SDL_AddEventWatch(), and have it listen +// for SDL_KEYDOWN events that have a scancode of SDL_SCANCODE_AC_BACK. +// (Alternatively, SDL_KEYUP events can be listened-for. Listening for +// either event type is suitable.) Any value of SDL_HINT_WINRT_HANDLE_BACK_BUTTON +// set by such a callback, will be applied to the OS' current +// back-button-press event. +// +// More details on back button behavior in Windows Phone apps can be found +// at the following page, on Microsoft's developer site: +// http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj247550(v=vs.105).aspx +pub const hint_winrt_handle_back_button = 'SDL_WINRT_HANDLE_BACK_BUTTON' + +// A variable that dictates policy for fullscreen Spaces on Mac OS X. +// +// This hint only applies to Mac OS X. +// +// The variable can be set to the following values: +// "0" - Disable Spaces support (FULLSCREEN_DESKTOP won't use them and +// SDL_WINDOW_RESIZABLE windows won't offer the "fullscreen" +// button on their titlebars). +// "1" - Enable Spaces support (FULLSCREEN_DESKTOP will use them and +// SDL_WINDOW_RESIZABLE windows will offer the "fullscreen" +// button on their titlebars). +// +// The default value is "1". Spaces are disabled regardless of this hint if +// the OS isn't at least Mac OS X Lion (10.7). This hint must be set before +// any windows are created. +pub const hint_video_mac_fullscreen_spaces = 'SDL_VIDEO_MAC_FULLSCREEN_SPACES' + +// When set don't force the SDL app to become a foreground process +// +// This hint only applies to Mac OS X. +// +pub const hint_mac_background_app = 'SDL_MAC_BACKGROUND_APP' + +// Android APK expansion main file version. Should be a string number like "1", "2" etc. +// +// Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION. +// +// If both hints were set then SDL_RWFromFile() will look into expansion files +// after a given relative path was not found in the internal storage and assets. +// +// By default this hint is not set and the APK expansion files are not searched. +pub const hint_android_apk_expansion_main_file_version = 'SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION' + +// Android APK expansion patch file version. Should be a string number like "1", "2" etc. +// +// Must be set together with SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION. +// +// If both hints were set then SDL_RWFromFile() will look into expansion files +// after a given relative path was not found in the internal storage and assets. +// +// By default this hint is not set and the APK expansion files are not searched. +pub const hint_android_apk_expansion_patch_file_version = 'SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION' + +// A variable to control whether certain IMEs should handle text editing internally instead of sending SDL_TEXTEDITING events. +// +// The variable can be set to the following values: +// "0" - SDL_TEXTEDITING events are sent, and it is the application's +// responsibility to render the text from these events and +// differentiate it somehow from committed text. (default) +// "1" - If supported by the IME then SDL_TEXTEDITING events are not sent, +// and text that is being composed will be rendered in its own UI. +pub const hint_ime_internal_editing = 'SDL_IME_INTERNAL_EDITING' + +// A variable to control whether we trap the Android back button to handle it manually. +// This is necessary for the right mouse button to work on some Android devices, or +// to be able to trap the back button for use in your code reliably. If set to true, +// the back button will show up as an SDL_KEYDOWN / SDL_KEYUP pair with a keycode of +// SDL_SCANCODE_AC_BACK. +// +// The variable can be set to the following values: +// "0" - Back button will be handled as usual for system. (default) +// "1" - Back button will be trapped, allowing you to handle the key press +// manually. (This will also let right mouse click work on systems +// where the right mouse button functions as back.) +// +// The value of this hint is used at runtime, so it can be changed at any time. +pub const hint_android_trap_back_button = 'SDL_ANDROID_TRAP_BACK_BUTTON' + +// A variable to control whether the event loop will block itself when the app is paused. +// +// The variable can be set to the following values: +// "0" - Non blocking. +// "1" - Blocking. (default) +// +// The value should be set before SDL is initialized. +pub const hint_android_block_on_pause = 'SDL_ANDROID_BLOCK_ON_PAUSE' + +// A variable to control whether the return key on the soft keyboard +// should hide the soft keyboard on Android and iOS. +// +// The variable can be set to the following values: +// "0" - The return key will be handled as a key event. This is the behaviour of SDL <= 2.0.3. (default) +// "1" - The return key will hide the keyboard. +// +// The value of this hint is used at runtime, so it can be changed at any time. +pub const hint_return_key_hides_ime = 'SDL_RETURN_KEY_HIDES_IME' + +// override the binding element for keyboard inputs for Emscripten builds +// +// This hint only applies to the emscripten platform +// +// The variable can be one of +// "#window" - The javascript window object (this is the default) +// "#document" - The javascript document object +// "#screen" - the javascript window.screen object +// "#canvas" - the WebGL canvas element +// any other string without a leading # sign applies to the element on the page with that ID. +pub const hint_emscripten_keyboard_element = 'SDL_EMSCRIPTEN_KEYBOARD_ELEMENT' + +// Tell SDL not to catch the SIGINT or SIGTERM signals. +// +// This hint only applies to Unix-like platforms. +// +// The variable can be set to the following values: +// "0" - SDL will install a SIGINT and SIGTERM handler, and when it +// catches a signal, convert it into an SDL_QUIT event. +// "1" - SDL will not install a signal handler at all. +pub const hint_no_signal_handlers = 'SDL_NO_SIGNAL_HANDLERS' + +// Tell SDL not to generate window-close events for Alt+F4 on Windows. +// +// The variable can be set to the following values: +// "0" - SDL will generate a window-close event when it sees Alt+F4. +// "1" - SDL will only do normal key handling for Alt+F4. +pub const hint_windows_no_close_on_alt_f4 = 'SDL_WINDOWS_NO_CLOSE_ON_ALT_F4' + +// Prevent SDL from using version 4 of the bitmap header when saving BMPs. +// +// The bitmap header version 4 is required for proper alpha channel support and +// SDL will use it when required. Should this not be desired, this hint can +// force the use of the 40 byte header version which is supported everywhere. +// +// The variable can be set to the following values: +// "0" - Surfaces with a colorkey or an alpha channel are saved to a +// 32-bit BMP file with an alpha mask. SDL will use the bitmap +// header version 4 and set the alpha mask accordingly. +// "1" - Surfaces with a colorkey or an alpha channel are saved to a +// 32-bit BMP file without an alpha mask. The alpha channel data +// will be in the file, but applications are going to ignore it. +// +// The default value is "0". +pub const hint_bmp_save_legacy_format = 'SDL_BMP_SAVE_LEGACY_FORMAT' + +// Tell SDL not to name threads on Windows with the 0x406D1388 Exception. +// The 0x406D1388 Exception is a trick used to inform Visual Studio of a +// thread's name, but it tends to cause problems with other debuggers, +// and the .NET runtime. Note that SDL 2.0.6 and later will still use +// the (safer) SetThreadDescription API, introduced in the Windows 10 +// Creators Update, if available. +// +// The variable can be set to the following values: +// "0" - SDL will raise the 0x406D1388 Exception to name threads. +// This is the default behavior of SDL <= 2.0.4. +// "1" - SDL will not raise this exception, and threads will be unnamed. (default) +// This is necessary with .NET languages or debuggers that aren't Visual Studio. +pub const hint_windows_disable_thread_naming = 'SDL_WINDOWS_DISABLE_THREAD_NAMING' + +// Tell SDL which Dispmanx layer to use on a Raspberry PI +// +// Also known as Z-order. The variable can take a negative or positive value. +// The default is 10000. +pub const hint_rpi_video_layer = 'SDL_RPI_VIDEO_LAYER' + +// Tell the video driver that we only want a double buffer. +// +// By default, most lowlevel 2D APIs will use a triple buffer scheme that +// wastes no CPU time on waiting for vsync after issuing a flip, but +// introduces a frame of latency. On the other hand, using a double buffer +// scheme instead is recommended for cases where low latency is an important +// factor because we save a whole frame of latency. +// We do so by waiting for vsync immediately after issuing a flip, usually just +// after eglSwapBuffers call in the backend's *_SwapWindow function. +// +// Since it's driver-specific, it's only supported where possible and +// implemented. Currently supported the following drivers: +// - KMSDRM (kmsdrm) +// - Raspberry Pi (raspberrypi) +pub const hint_video_double_buffer = 'SDL_VIDEO_DOUBLE_BUFFER' + +// A variable controlling what driver to use for OpenGL ES contexts. +// +// On some platforms, currently Windows and X11, OpenGL drivers may support +// creating contexts with an OpenGL ES profile. By default SDL uses these +// profiles, when available, otherwise it attempts to load an OpenGL ES +// library, e.g. that provided by the ANGLE project. This variable controls +// whether SDL follows this default behaviour or will always load an +// OpenGL ES library. +// +// Circumstances where this is useful include +// - Testing an app with a particular OpenGL ES implementation, e.g ANGLE, +// or emulator, e.g. those from ARM, Imagination or Qualcomm. +// - Resolving OpenGL ES function addresses at link time by linking with +// the OpenGL ES library instead of querying them at run time with +// SDL_GL_GetProcAddress(). +// +// Caution: for an application to work with the default behaviour across +// different OpenGL drivers it must query the OpenGL ES function +// addresses at run time using SDL_GL_GetProcAddress(). +// +// This variable is ignored on most platforms because OpenGL ES is native +// or not supported. +// +// This variable can be set to the following values: +// "0" - Use ES profile of OpenGL, if available. (Default when not set.) +// "1" - Load OpenGL ES library using the default library names. +// +pub const hint_opengl_es_driver = 'SDL_OPENGL_ES_DRIVER' + +// A variable controlling speed/quality tradeoff of audio resampling. +// +// If available, SDL can use libsamplerate ( http://www.mega-nerd.com/SRC/ ) +// to handle audio resampling. There are different resampling modes available +// that produce different levels of quality, using more CPU. +// +// If this hint isn't specified to a valid setting, or libsamplerate isn't +// available, SDL will use the default, internal resampling algorithm. +// +// Note that this is currently only applicable to resampling audio that is +// being written to a device for playback or audio being read from a device +// for capture. SDL_AudioCVT always uses the default resampler (although this +// might change for SDL 2.1). +// +// This hint is currently only checked at audio subsystem initialization. +// +// This variable can be set to the following values: +// +// "0" or "default" - Use SDL's internal resampling (Default when not set - low quality, fast) +// "1" or "fast" - Use fast, slightly higher quality resampling, if available +// "2" or "medium" - Use medium quality resampling, if available +// "3" or "best" - Use high quality resampling, if available +pub const hint_audio_resampling_mode = 'SDL_AUDIO_RESAMPLING_MODE' + +// A variable controlling the audio category on iOS and Mac OS X +// +// This variable can be set to the following values: +// +// "ambient" - Use the AVAudioSessionCategoryAmbient audio category, will be muted by the phone mute switch (default) +// "playback" - Use the AVAudioSessionCategoryPlayback category +// +// For more information, see Apple's documentation: +// https://developer.apple.com/library/content/documentation/Audio/Conceptual/AudioSessionProgrammingGuide/AudioSessionCategoriesandModes/AudioSessionCategoriesandModes.html +pub const hint_audio_category = 'SDL_AUDIO_CATEGORY' + +// A variable controlling whether the 2D render API is compatible or efficient. +// +// This variable can be set to the following values: +// +// "0" - Don't use batching to make rendering more efficient. +// "1" - Use batching, but might cause problems if app makes its own direct OpenGL calls. +// +// Up to SDL 2.0.9, the render API would draw immediately when requested. Now +// it batches up draw requests and sends them all to the GPU only when forced +// to (during SDL_RenderPresent, when changing render targets, by updating a +// texture that the batch needs, etc). This is significantly more efficient, +// but it can cause problems for apps that expect to render on top of the +// render API's output. As such, SDL will disable batching if a specific +// render backend is requested (since this might indicate that the app is +// planning to use the underlying graphics API directly). This hint can +// be used to explicitly request batching in this instance. It is a contract +// that you will either never use the underlying graphics API directly, or +// if you do, you will call SDL_RenderFlush() before you do so any current +// batch goes to the GPU before your work begins. Not following this contract +// will result in undefined behavior. +// / +pub const hint_render_batching = 'SDL_RENDER_BATCHING' + +// A variable controlling whether SDL logs all events pushed onto its internal queue. +// +// This variable can be set to the following values: +// +// "0" - Don't log any events (default) +// "1" - Log all events except mouse and finger motion, which are pretty spammy. +// "2" - Log all events. +// +// This is generally meant to be used to debug SDL itself, but can be useful +// for application developers that need better visibility into what is going +// on in the event queue. Logged events are sent through SDL_Log(), which +// means by default they appear on stdout on most platforms or maybe +// OutputDebugString() on Windows, and can be funneled by the app with +// SDL_LogSetOutputFunction(), etc. +// +// This hint can be toggled on and off at runtime, if you only need to log +// events for a small subset of program execution. +pub const hint_event_logging = 'SDL_EVENT_LOGGING' + +// Controls how the size of the RIFF chunk affects the loading of a WAVE file. +// +// The size of the RIFF chunk (which includes all the sub-chunks of the WAVE +// file) is not always reliable. In case the size is wrong, it's possible to +// just ignore it and step through the chunks until a fixed limit is reached. +// +// Note that files that have trailing data unrelated to the WAVE file or +// corrupt files may slow down the loading process without a reliable boundary. +// By default, SDL stops after 10000 chunks to prevent wasting time. Use the +// environment variable SDL_WAVE_CHUNK_LIMIT to adjust this value. +// +// This variable can be set to the following values: +// +// "force" - Always use the RIFF chunk size as a boundary for the chunk search +// "ignorezero" - Like "force", but a zero size searches up to 4 GiB (default) +// "ignore" - Ignore the RIFF chunk size and always search up to 4 GiB +// "maximum" - Search for chunks until the end of file (not recommended) +pub const hint_wave_riff_chunk_size = 'SDL_WAVE_RIFF_CHUNK_SIZE' + +// Controls how a truncated WAVE file is handled. +// +// A WAVE file is considered truncated if any of the chunks are incomplete or +// the data chunk size is not a multiple of the block size. By default, SDL +// decodes until the first incomplete block, as most applications seem to do. +// +// This variable can be set to the following values: +// +// "verystrict" - Raise an error if the file is truncated +// "strict" - Like "verystrict", but the size of the RIFF chunk is ignored +// "dropframe" - Decode until the first incomplete sample frame +// "dropblock" - Decode until the first incomplete block (default) +pub const hint_wave_truncation = 'SDL_WAVE_TRUNCATION' + +// Controls how the fact chunk affects the loading of a WAVE file. +// +// The fact chunk stores information about the number of samples of a WAVE +// file. The Standards Update from Microsoft notes that this value can be used +// to 'determine the length of the data in seconds'. This is especially useful +// for compressed formats (for which this is a mandatory chunk) if they produce +// multiple sample frames per block and truncating the block is not allowed. +// The fact chunk can exactly specify how many sample frames there should be +// in this case. +// +// Unfortunately, most application seem to ignore the fact chunk and so SDL +// ignores it by default as well. +// +// This variable can be set to the following values: +// +// "truncate" - Use the number of samples to truncate the wave data if +// the fact chunk is present and valid +// "strict" - Like "truncate", but raise an error if the fact chunk +// is invalid, not present for non-PCM formats, or if the +// data chunk doesn't have that many samples +// "ignorezero" - Like "truncate", but ignore fact chunk if the number of +// samples is zero +// "ignore" - Ignore fact chunk entirely (default) +pub const hint_wave_fact_chunk = 'SDL_WAVE_FACT_CHUNK' + +// Override for SDL_GetDisplayUsableBounds() +// +// If set, this hint will override the expected results for +// SDL_GetDisplayUsableBounds() for display index 0. Generally you don't want +// to do this, but this allows an embedded system to request that some of the +// screen be reserved for other uses when paired with a well-behaved +// application. +// +// The contents of this hint must be 4 comma-separated integers, the first +// is the bounds x, then y, width and height, in that order. +pub const hint_display_usable_bounds = 'SDL_DISPLAY_USABLE_BOUNDS' // HintPriority is C.SDL_HintPriority pub enum HintPriority { diff --git a/image/image.c.v b/image/image.c.v index 9f06520a..2259e8e3 100644 --- a/image/image.c.v +++ b/image/image.c.v @@ -8,11 +8,11 @@ module image // import sdl -pub const ( - major_version = C.SDL_IMAGE_MAJOR_VERSION // 2 - minor_version = C.SDL_IMAGE_MINOR_VERSION // 0 - patchlevel = C.SDL_IMAGE_PATCHLEVEL // 5 -) +pub const major_version = C.SDL_IMAGE_MAJOR_VERSION // 2 + +pub const minor_version = C.SDL_IMAGE_MINOR_VERSION // 0 + +pub const patchlevel = C.SDL_IMAGE_PATCHLEVEL // 5 fn C.SDL_IMAGE_VERSION(v &sdl.Version) diff --git a/joystick.c.v b/joystick.c.v index 3c721d5a..3fba95b5 100644 --- a/joystick.c.v +++ b/joystick.c.v @@ -7,23 +7,28 @@ module sdl // SDL_joystick.h // -pub const ( - joystick_axis_max = C.SDL_JOYSTICK_AXIS_MAX // 32767 - joystick_axis_min = C.SDL_JOYSTICK_AXIS_MIN // -32768 -) +pub const joystick_axis_max = C.SDL_JOYSTICK_AXIS_MAX // 32767 + +pub const joystick_axis_min = C.SDL_JOYSTICK_AXIS_MIN // -32768 // Hat positions -pub const ( - hat_centered = C.SDL_HAT_CENTERED // 0x00 - hat_up = C.SDL_HAT_UP // 0x01 - hat_right = C.SDL_HAT_RIGHT // 0x02 - hat_down = C.SDL_HAT_DOWN // 0x04 - hat_left = C.SDL_HAT_LEFT // 0x08 - hat_rightup = C.SDL_HAT_RIGHTUP // hat_right | hat_up - hat_rightdown = C.SDL_HAT_RIGHTDOWN // hat_right | hat_down - hat_leftup = C.SDL_HAT_LEFTUP // hat_left | hat_up - hat_leftdown = C.SDL_HAT_LEFTDOWN // hat_left | hat_down -) +pub const hat_centered = C.SDL_HAT_CENTERED // 0x00 + +pub const hat_up = C.SDL_HAT_UP // 0x01 + +pub const hat_right = C.SDL_HAT_RIGHT // 0x02 + +pub const hat_down = C.SDL_HAT_DOWN // 0x04 + +pub const hat_left = C.SDL_HAT_LEFT // 0x08 + +pub const hat_rightup = C.SDL_HAT_RIGHTUP // hat_right | hat_up + +pub const hat_rightdown = C.SDL_HAT_RIGHTDOWN // hat_right | hat_down + +pub const hat_leftup = C.SDL_HAT_LEFTUP // hat_left | hat_up + +pub const hat_leftdown = C.SDL_HAT_LEFTDOWN // hat_left | hat_down @[typedef] pub struct C.SDL_Joystick { diff --git a/keycode.c.v b/keycode.c.v index c8c1daa6..0c50dec8 100644 --- a/keycode.c.v +++ b/keycode.c.v @@ -20,9 +20,7 @@ module sdl // Sint32 C.SDL_Keycode; pub type Keycode = int -pub const ( - sdlk_scancode_mask = C.SDLK_SCANCODE_MASK // (1<<30) -) +pub const sdlk_scancode_mask = C.SDLK_SCANCODE_MASK // (1<<30) fn C.SDL_SCANCODE_TO_KEYCODE(x int) Keycode diff --git a/log.c.v b/log.c.v index 7f7ca718..af9423ae 100644 --- a/log.c.v +++ b/log.c.v @@ -3,9 +3,7 @@ // that can be found in the LICENSE file. module sdl -pub const ( - max_log_message = C.SDL_MAX_LOG_MESSAGE // 4096 -) +pub const max_log_message = C.SDL_MAX_LOG_MESSAGE // 4096 // LogOutputFunction is the prototype for the log output function // C.SDL_LogOutputFunction diff --git a/mixer/mixer.c.v b/mixer/mixer.c.v index cf6d7043..974f0a84 100644 --- a/mixer/mixer.c.v +++ b/mixer/mixer.c.v @@ -8,11 +8,11 @@ module mixer // import sdl -pub const ( - major_version = C.SDL_MIXER_MAJOR_VERSION // 2 - minor_version = C.SDL_MIXER_MINOR_VERSION // 0 - patchlevel = C.SDL_MIXER_PATCHLEVEL // 4 -) +pub const major_version = C.SDL_MIXER_MAJOR_VERSION // 2 + +pub const minor_version = C.SDL_MIXER_MINOR_VERSION // 0 + +pub const patchlevel = C.SDL_MIXER_PATCHLEVEL // 4 fn C.SDL_MIXER_VERSION(v &sdl.Version) @@ -72,14 +72,15 @@ pub fn quit() { } // The default mixer has 8 simultaneous mixing channels -pub const ( - mix_channels = C.MIX_CHANNELS // 8 - // Good default values for a PC soundcard - default_frequency = C.MIX_DEFAULT_FREQUENCY // 22050 - default_format = C.MIX_DEFAULT_FORMAT - default_channels = C.MIX_DEFAULT_CHANNELS // 2 - maxvolume = C.SDL_MIX_MAXVOLUME // Volume of a chunk -) +pub const mix_channels = C.MIX_CHANNELS // 8 + +// Good default values for a PC soundcard +pub const default_frequency = C.MIX_DEFAULT_FREQUENCY // 22050 + +pub const default_format = C.MIX_DEFAULT_FORMAT +pub const default_channels = C.MIX_DEFAULT_CHANNELS // 2 + +pub const maxvolume = C.SDL_MIX_MAXVOLUME // Volume of a chunk // effectsmaxspeed is C.MIX_EFFECTSMAXSPEED = "MIX_EFFECTSMAXSPEED" pub const effectsmaxspeed = 'MIX_EFFECTSMAXSPEED' @@ -120,9 +121,7 @@ pub enum MusicType { opus = C.MUS_OPUS } -pub const ( - channel_post = C.MIX_CHANNEL_POST // -2 -) +pub const channel_post = C.MIX_CHANNEL_POST // -2 // Music is the internal format for a music chunk interpreted via mikmod @[typedef] diff --git a/mouse.c.v b/mouse.c.v index 1b2b58c1..2f74d672 100644 --- a/mouse.c.v +++ b/mouse.c.v @@ -33,18 +33,25 @@ pub fn button(mask int) int { return C.SDL_BUTTON(mask) } -pub const ( - button_left = int(C.SDL_BUTTON_LEFT) // 1 - button_middle = int(C.SDL_BUTTON_MIDDLE) // 2 - button_right = int(C.SDL_BUTTON_RIGHT) // 3 - button_x1 = int(C.SDL_BUTTON_X1) // 4 - button_x2 = int(C.SDL_BUTTON_X2) // 5 - button_lmask = int(C.SDL_BUTTON_LMASK) // SDL_BUTTON(SDL_BUTTON_LEFT) - button_mmask = int(C.SDL_BUTTON_MMASK) // SDL_BUTTON(SDL_BUTTON_MIDDLE) - button_rmask = int(C.SDL_BUTTON_RMASK) // SDL_BUTTON(SDL_BUTTON_RIGHT) - button_x1mask = int(C.SDL_BUTTON_X1MASK) // SDL_BUTTON(SDL_BUTTON_X1) - button_x2mask = int(C.SDL_BUTTON_X2MASK) // SDL_BUTTON(SDL_BUTTON_X2) -) +pub const button_left = int(C.SDL_BUTTON_LEFT) // 1 + +pub const button_middle = int(C.SDL_BUTTON_MIDDLE) // 2 + +pub const button_right = int(C.SDL_BUTTON_RIGHT) // 3 + +pub const button_x1 = int(C.SDL_BUTTON_X1) // 4 + +pub const button_x2 = int(C.SDL_BUTTON_X2) // 5 + +pub const button_lmask = int(C.SDL_BUTTON_LMASK) // SDL_BUTTON(SDL_BUTTON_LEFT) + +pub const button_mmask = int(C.SDL_BUTTON_MMASK) // SDL_BUTTON(SDL_BUTTON_MIDDLE) + +pub const button_rmask = int(C.SDL_BUTTON_RMASK) // SDL_BUTTON(SDL_BUTTON_RIGHT) + +pub const button_x1mask = int(C.SDL_BUTTON_X1MASK) // SDL_BUTTON(SDL_BUTTON_X1) + +pub const button_x2mask = int(C.SDL_BUTTON_X2MASK) // SDL_BUTTON(SDL_BUTTON_X2) // SystemCursor is C.SDL_SystemCursor // Cursor types for SDL_CreateSystemCursor(). diff --git a/pixels.c.v b/pixels.c.v index 168aceb8..5249fcc7 100644 --- a/pixels.c.v +++ b/pixels.c.v @@ -10,10 +10,9 @@ module sdl // Transparency definitions // // These define alpha as the opacity of a surface. -pub const ( - alpha_opaque = C.SDL_ALPHA_OPAQUE // 255 - alpha_transparent = C.SDL_ALPHA_TRANSPARENT // 0 -) +pub const alpha_opaque = C.SDL_ALPHA_OPAQUE // 255 + +pub const alpha_transparent = C.SDL_ALPHA_TRANSPARENT // 0 // Pixel type. // PixelType is C.SDL_PixelType diff --git a/rwops.c.v b/rwops.c.v index 2f04d0f4..2fa1b0b7 100644 --- a/rwops.c.v +++ b/rwops.c.v @@ -7,20 +7,23 @@ module sdl // SDL_rwops.h // -pub const ( - rwops_unknown = C.SDL_RWOPS_UNKNOWN // 0U, Unknown stream type - rwops_winfile = C.SDL_RWOPS_WINFILE // 1U, Win32 file - rwops_stdfile = C.SDL_RWOPS_STDFILE // 2U, Stdio file - rwops_jnifile = C.SDL_RWOPS_JNIFILE // 3U, Android asset - rwops_memory = C.SDL_RWOPS_MEMORY // 4U, Memory stream - rwops_memory_ro = C.SDL_RWOPS_MEMORY_RO // 5U, Read-Only memory stream -) - -pub const ( - rw_seek_set = C.RW_SEEK_SET // 0, Seek from the beginning of data - rw_seek_cur = C.RW_SEEK_CUR // 1, Seek relative to current read point - rw_seek_end = C.RW_SEEK_END // 2, Seek relative to the end of data -) +pub const rwops_unknown = C.SDL_RWOPS_UNKNOWN // 0U, Unknown stream type + +pub const rwops_winfile = C.SDL_RWOPS_WINFILE // 1U, Win32 file + +pub const rwops_stdfile = C.SDL_RWOPS_STDFILE // 2U, Stdio file + +pub const rwops_jnifile = C.SDL_RWOPS_JNIFILE // 3U, Android asset + +pub const rwops_memory = C.SDL_RWOPS_MEMORY // 4U, Memory stream + +pub const rwops_memory_ro = C.SDL_RWOPS_MEMORY_RO // 5U, Read-Only memory stream + +pub const rw_seek_set = C.RW_SEEK_SET // 0, Seek from the beginning of data + +pub const rw_seek_cur = C.RW_SEEK_CUR // 1, Seek relative to current read point + +pub const rw_seek_end = C.RW_SEEK_END // 2, Seek relative to the end of data fn C.SDL_RWsize(context &C.SDL_RWops) i64 diff --git a/sdl.c.v b/sdl.c.v index 1464ea98..3d5a52fc 100644 --- a/sdl.c.v +++ b/sdl.c.v @@ -7,24 +7,29 @@ module sdl // SDL.h // -pub const ( - null = unsafe { nil } -) +pub const null = unsafe { nil } // These are the flags which may be passed to SDL_Init(). You should // specify the subsystems which you will be using in your application. -pub const ( - init_timer = u32(C.SDL_INIT_TIMER) // 0x00000001u - init_audio = u32(C.SDL_INIT_AUDIO) // 0x00000010u - init_video = u32(C.SDL_INIT_VIDEO) // 0x00000020u SDL_INIT_VIDEO implies SDL_INIT_EVENTS - init_joystick = u32(C.SDL_INIT_JOYSTICK) // 0x00000200u SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS - init_haptic = u32(C.SDL_INIT_HAPTIC) // 0x00001000u - init_gamecontroller = u32(C.SDL_INIT_GAMECONTROLLER) // 0x00002000u SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK - init_events = u32(C.SDL_INIT_EVENTS) // 0x00004000u - init_sensor = u32(C.SDL_INIT_SENSOR) // 0x00008000u - init_noparachute = u32(C.SDL_INIT_NOPARACHUTE) // 0x00100000u compatibility; this flag is ignored. - init_everything = u32(C.SDL_INIT_EVERYTHING) // ( SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | INIT_GAMECONTROLLER | SDL_INIT_SENSOR ) -) +pub const init_timer = u32(C.SDL_INIT_TIMER) // 0x00000001u + +pub const init_audio = u32(C.SDL_INIT_AUDIO) // 0x00000010u + +pub const init_video = u32(C.SDL_INIT_VIDEO) // 0x00000020u SDL_INIT_VIDEO implies SDL_INIT_EVENTS + +pub const init_joystick = u32(C.SDL_INIT_JOYSTICK) // 0x00000200u SDL_INIT_JOYSTICK implies SDL_INIT_EVENTS + +pub const init_haptic = u32(C.SDL_INIT_HAPTIC) // 0x00001000u + +pub const init_gamecontroller = u32(C.SDL_INIT_GAMECONTROLLER) // 0x00002000u SDL_INIT_GAMECONTROLLER implies SDL_INIT_JOYSTICK + +pub const init_events = u32(C.SDL_INIT_EVENTS) // 0x00004000u + +pub const init_sensor = u32(C.SDL_INIT_SENSOR) // 0x00008000u + +pub const init_noparachute = u32(C.SDL_INIT_NOPARACHUTE) // 0x00100000u compatibility; this flag is ignored. + +pub const init_everything = u32(C.SDL_INIT_EVERYTHING) // ( SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | SDL_INIT_EVENTS | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | INIT_GAMECONTROLLER | SDL_INIT_SENSOR ) fn C.SDL_Init(flags u32) int diff --git a/shape.c.v b/shape.c.v index d4c09af0..47cf7844 100644 --- a/shape.c.v +++ b/shape.c.v @@ -7,11 +7,11 @@ module sdl // SDL_shape.h // -pub const ( - nonshapeable_window = C.SDL_NONSHAPEABLE_WINDOW // -1 - invalid_shape_argument = C.SDL_INVALID_SHAPE_ARGUMENT // -2 - window_lacks_shape = C.SDL_WINDOW_LACKS_SHAPE // -3 -) +pub const nonshapeable_window = C.SDL_NONSHAPEABLE_WINDOW // -1 + +pub const invalid_shape_argument = C.SDL_INVALID_SHAPE_ARGUMENT // -2 + +pub const window_lacks_shape = C.SDL_WINDOW_LACKS_SHAPE // -3 fn C.SDL_CreateShapedWindow(title &char, x u32, y u32, w u32, h u32, flags u32) &C.SDL_Window diff --git a/stdinc.c.v b/stdinc.c.v index cea0eb38..e697ba40 100644 --- a/stdinc.c.v +++ b/stdinc.c.v @@ -9,48 +9,61 @@ module sdl // Basic data types -pub const ( - // A signed 8-bit integer type. - // typedef int8_t Sint8; - // i8 - max_sint8 = C.SDL_MAX_SINT8 // 127 - min_sint8 = C.SDL_MIN_SINT8 // -128 - // An unsigned 8-bit integer type. - // typedef uint8_t Uint8; - // u8 - max_uint8 = C.SDL_MAX_UINT8 // 255 - min_uint8 = C.SDL_MIN_UINT8 // 0 - // A signed 16-bit integer type. - // typedef int16_t Sint16; - // i16 - max_sint16 = C.SDL_MAX_SINT16 // 32767 - min_sint16 = C.SDL_MIN_SINT16 // -32768 - // An unsigned 16-bit integer type. - // typedef uint16_t Uint16; - // u16 - max_uint16 = C.SDL_MAX_UINT16 // 65535 - min_uint16 = C.SDL_MIN_UINT16 // 0 - // A signed 32-bit integer type. - // typedef int32_t Sint32; - // int - max_sint32 = C.SDL_MAX_SINT32 // 2147483647 - min_sint32 = C.SDL_MIN_SINT32 // -2147483648 - // An unsigned 32-bit integer type. - // typedef uint32_t Uint32; - // u32 - max_uint32 = C.SDL_MAX_UINT32 // 4294967295 - min_uint32 = C.SDL_MIN_UINT32 // 0 - // A signed 64-bit integer type. - // typedef int64_t Sint64; - // i64 - max_sint64 = C.SDL_MAX_SINT64 // 9223372036854775807 - min_sint64 = C.SDL_MIN_SINT64 // -9223372036854775808 - // An unsigned 64-bit integer type. - // typedef uint64_t Uint64; - // u64 - max_uint64 = C.SDL_MAX_UINT64 // 18446744073709551615 - min_uint64 = C.SDL_MIN_UINT64 // 0 -) +// A signed 8-bit integer type. +// typedef int8_t Sint8; +// i8 +pub const max_sint8 = C.SDL_MAX_SINT8 // 127 + +pub const min_sint8 = C.SDL_MIN_SINT8 // -128 + +// An unsigned 8-bit integer type. +// typedef uint8_t Uint8; +// u8 +pub const max_uint8 = C.SDL_MAX_UINT8 // 255 + +pub const min_uint8 = C.SDL_MIN_UINT8 // 0 + +// A signed 16-bit integer type. +// typedef int16_t Sint16; +// i16 +pub const max_sint16 = C.SDL_MAX_SINT16 // 32767 + +pub const min_sint16 = C.SDL_MIN_SINT16 // -32768 + +// An unsigned 16-bit integer type. +// typedef uint16_t Uint16; +// u16 +pub const max_uint16 = C.SDL_MAX_UINT16 // 65535 + +pub const min_uint16 = C.SDL_MIN_UINT16 // 0 + +// A signed 32-bit integer type. +// typedef int32_t Sint32; +// int +pub const max_sint32 = C.SDL_MAX_SINT32 // 2147483647 + +pub const min_sint32 = C.SDL_MIN_SINT32 // -2147483648 + +// An unsigned 32-bit integer type. +// typedef uint32_t Uint32; +// u32 +pub const max_uint32 = C.SDL_MAX_UINT32 // 4294967295 + +pub const min_uint32 = C.SDL_MIN_UINT32 // 0 + +// A signed 64-bit integer type. +// typedef int64_t Sint64; +// i64 +pub const max_sint64 = C.SDL_MAX_SINT64 // 9223372036854775807 + +pub const min_sint64 = C.SDL_MIN_SINT64 // -9223372036854775808 + +// An unsigned 64-bit integer type. +// typedef uint64_t Uint64; +// u64 +pub const max_uint64 = C.SDL_MAX_UINT64 // 18446744073709551615 + +pub const min_uint64 = C.SDL_MIN_UINT64 // 0 /* // bool @@ -438,9 +451,7 @@ pub fn vsnprintf(text &C.SDL_OUT_Z_CAP(maxlen) char, maxlen usize, fmt &char, ap } */ -pub const ( - m_pi = C.M_PI // 3.14159265358979323846264338327950288 // pi -) +pub const m_pi = C.M_PI // 3.14159265358979323846264338327950288 // pi fn C.SDL_acos(x f64) f64 pub fn acos(x f64) f64 { @@ -622,13 +633,14 @@ pub fn tanf(x f32) f32 { return C.SDL_tanf(x) } -pub const ( - // The SDL implementation of iconv() returns these error codes - iconv_error = C.SDL_ICONV_ERROR // (size_t)-1 - iconv_e2big = C.SDL_ICONV_E2BIG // (size_t)-2 - iconv_eilseq = C.SDL_ICONV_EILSEQ // (size_t)-3 - iconv_einval = C.SDL_ICONV_EINVAL // (size_t)-4 -) +// The SDL implementation of iconv() returns these error codes +pub const iconv_error = C.SDL_ICONV_ERROR // (size_t)-1 + +pub const iconv_e2big = C.SDL_ICONV_E2BIG // (size_t)-2 + +pub const iconv_eilseq = C.SDL_ICONV_EILSEQ // (size_t)-3 + +pub const iconv_einval = C.SDL_ICONV_EINVAL // (size_t)-4 // SDL_iconv_* are now always real symbols/types, not macros or inlined. // typedef struct _SDL_iconv_t *SDL_iconv_t; diff --git a/system_android.c.v b/system_android.c.v index a01b46f6..7c1ff309 100644 --- a/system_android.c.v +++ b/system_android.c.v @@ -86,10 +86,9 @@ pub fn android_back_button() { // See the official Android developer guide for more information: // http://developer.android.com/guide/topics/data/data-storage.html -pub const ( - android_external_storage_read = C.SDL_ANDROID_EXTERNAL_STORAGE_READ // 0x01 - android_external_storage_write = C.SDL_ANDROID_EXTERNAL_STORAGE_WRITE // 0x02 -) +pub const android_external_storage_read = C.SDL_ANDROID_EXTERNAL_STORAGE_READ // 0x01 + +pub const android_external_storage_write = C.SDL_ANDROID_EXTERNAL_STORAGE_WRITE // 0x02 fn C.SDL_AndroidGetInternalStoragePath() &char diff --git a/touch.c.v b/touch.c.v index 6a7e6391..4f58ce4b 100644 --- a/touch.c.v +++ b/touch.c.v @@ -13,12 +13,11 @@ pub type TouchID = i64 // `typedef Sint64 SDL_FingerID;` pub type FingerID = i64 -pub const ( - // Used as the device ID for mouse events simulated with touch input - touch_mouseid = C.SDL_TOUCH_MOUSEID // ((Uint32)-1) - // Used as the SDL_TouchID for touch events simulated with mouse input - mouse_touch_id = C.SDL_MOUSE_TOUCHID // ((Sint64)-1) -) +// Used as the device ID for mouse events simulated with touch input +pub const touch_mouseid = C.SDL_TOUCH_MOUSEID // ((Uint32)-1) + +// Used as the SDL_TouchID for touch events simulated with mouse input +pub const mouse_touch_id = C.SDL_MOUSE_TOUCHID // ((Sint64)-1) // TouchDeviceType is C.SDL_TouchDeviceType pub enum TouchDeviceType { diff --git a/ttf/ttf.c.v b/ttf/ttf.c.v index 6c3c9aed..78bd5756 100644 --- a/ttf/ttf.c.v +++ b/ttf/ttf.c.v @@ -8,11 +8,11 @@ module ttf // import sdl -pub const ( - major_version = C.SDL_TTF_MAJOR_VERSION // 2 - minor_version = C.SDL_TTF_MINOR_VERSION // 0 - patchlevel = C.SDL_TTF_PATCHLEVEL // 15 -) +pub const major_version = C.SDL_TTF_MAJOR_VERSION // 2 + +pub const minor_version = C.SDL_TTF_MINOR_VERSION // 0 + +pub const patchlevel = C.SDL_TTF_PATCHLEVEL // 15 // This macro can be used to fill a version structure with the compile-time // version of the SDL_ttf library. @@ -44,10 +44,9 @@ pub fn linked_version() &sdl.Version { } // ZERO WIDTH NO-BREAKSPACE (Unicode byte order mark) -pub const ( - unicode_bom_native = C.UNICODE_BOM_NATIVE // 0xFEFF - unicode_bom_swapped = C.UNICODE_BOM_SWAPPED // 0xFFFE -) +pub const unicode_bom_native = C.UNICODE_BOM_NATIVE // 0xFEFF + +pub const unicode_bom_swapped = C.UNICODE_BOM_SWAPPED // 0xFFFE fn C.TTF_ByteSwappedUNICODE(swapped int) @@ -99,13 +98,15 @@ pub fn open_font_index_rw(src &sdl.RWops, freesrc int, ptsize int, index int) &F } // Set and retrieve the font style -pub const ( - style_normal = C.TTF_STYLE_NORMAL // 0x00 - style_bold = C.TTF_STYLE_BOLD // 0x01 - style_italic = C.TTF_STYLE_ITALIC // 0x02 - style_underline = C.TTF_STYLE_UNDERLINE // 0x04 - style_strikethrough = C.TTF_STYLE_STRIKETHROUGH // 0x08 -) +pub const style_normal = C.TTF_STYLE_NORMAL // 0x00 + +pub const style_bold = C.TTF_STYLE_BOLD // 0x01 + +pub const style_italic = C.TTF_STYLE_ITALIC // 0x02 + +pub const style_underline = C.TTF_STYLE_UNDERLINE // 0x04 + +pub const style_strikethrough = C.TTF_STYLE_STRIKETHROUGH // 0x08 fn C.TTF_GetFontStyle(font &C.TTF_Font) int pub fn get_font_style(font &Font) int { @@ -128,12 +129,13 @@ pub fn set_font_outline(font &Font, outline int) { } // Set and retrieve FreeType hinter settings -pub const ( - hinting_normal = C.TTF_HINTING_NORMAL // 0 - hinting_light = C.TTF_HINTING_LIGHT // 1 - hinting_mono = C.TTF_HINTING_MONO // 2 - hinting_none = C.TTF_HINTING_NONE // 3 -) +pub const hinting_normal = C.TTF_HINTING_NORMAL // 0 + +pub const hinting_light = C.TTF_HINTING_LIGHT // 1 + +pub const hinting_mono = C.TTF_HINTING_MONO // 2 + +pub const hinting_none = C.TTF_HINTING_NONE // 3 fn C.TTF_GetFontHinting(font &C.TTF_Font) int pub fn get_font_hinting(font &Font) int { diff --git a/version.c.v b/version.c.v index 77ffa297..0054faff 100644 --- a/version.c.v +++ b/version.c.v @@ -7,11 +7,11 @@ module sdl // SDL_version.h // -pub const ( - major_version = C.SDL_MAJOR_VERSION // 2 - minor_version = C.SDL_MINOR_VERSION // 0 - patchlevel = C.SDL_PATCHLEVEL // 12 -) +pub const major_version = C.SDL_MAJOR_VERSION // 2 + +pub const minor_version = C.SDL_MINOR_VERSION // 0 + +pub const patchlevel = C.SDL_PATCHLEVEL // 12 // Version is information of the version of SDL in use. // diff --git a/video.c.v b/video.c.v index 5e150a05..09734696 100644 --- a/video.c.v +++ b/video.c.v @@ -91,10 +91,9 @@ pub enum WindowFlags { } // Used to indicate that you don't care what the window position is. -pub const ( - windowpos_undefined_mask = C.SDL_WINDOWPOS_UNDEFINED_MASK // 0x1FFF0000u - windowpos_undefined = C.SDL_WINDOWPOS_UNDEFINED // -) +pub const windowpos_undefined_mask = C.SDL_WINDOWPOS_UNDEFINED_MASK // 0x1FFF0000u + +pub const windowpos_undefined = C.SDL_WINDOWPOS_UNDEFINED // fn C.SDL_WINDOWPOS_ISUNDEFINED(x u32) bool pub fn windowpos_isundefined(x u32) bool { @@ -107,10 +106,9 @@ pub fn windowpos_undefined_display(x u32) u32 { } // Used to indicate that the window position should be centered. -pub const ( - windowpos_centered_mask = C.SDL_WINDOWPOS_CENTERED_MASK // 0x2FFF0000u - windowpos_centered = C.SDL_WINDOWPOS_CENTERED -) +pub const windowpos_centered_mask = C.SDL_WINDOWPOS_CENTERED_MASK // 0x2FFF0000u + +pub const windowpos_centered = C.SDL_WINDOWPOS_CENTERED fn C.SDL_WINDOWPOS_CENTERED_DISPLAY(x u32) u32 pub fn windowpos_centered_display(x u32) u32 { diff --git a/windows_install_dependencies.vsh b/windows_install_dependencies.vsh index 23cd42b2..a2590ee3 100644 --- a/windows_install_dependencies.vsh +++ b/windows_install_dependencies.vsh @@ -2,14 +2,12 @@ import os import szip import net.http -const ( - urls = [ - 'https://www.libsdl.org/release/SDL2-devel-2.0.12-VC.zip', - 'https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-devel-2.0.15-VC.zip', - 'https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-2.0.5-VC.zip', - 'https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-devel-2.0.4-VC.zip', - ] -) +const urls = [ + 'https://www.libsdl.org/release/SDL2-devel-2.0.12-VC.zip', + 'https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-devel-2.0.15-VC.zip', + 'https://www.libsdl.org/projects/SDL_image/release/SDL2_image-devel-2.0.5-VC.zip', + 'https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-devel-2.0.4-VC.zip', +] fn main() { cwd := os.dir(os.executable())