diff options
Diffstat (limited to 'src/raylib.zig')
| -rw-r--r-- | src/raylib.zig | 8789 |
1 files changed, 8789 insertions, 0 deletions
diff --git a/src/raylib.zig b/src/raylib.zig new file mode 100644 index 0000000..9d801c8 --- /dev/null +++ b/src/raylib.zig @@ -0,0 +1,8789 @@ +pub const __builtin_bswap16 = @import("std").zig.c_builtins.__builtin_bswap16; +pub const __builtin_bswap32 = @import("std").zig.c_builtins.__builtin_bswap32; +pub const __builtin_bswap64 = @import("std").zig.c_builtins.__builtin_bswap64; +pub const __builtin_signbit = @import("std").zig.c_builtins.__builtin_signbit; +pub const __builtin_signbitf = @import("std").zig.c_builtins.__builtin_signbitf; +pub const __builtin_popcount = @import("std").zig.c_builtins.__builtin_popcount; +pub const __builtin_ctz = @import("std").zig.c_builtins.__builtin_ctz; +pub const __builtin_clz = @import("std").zig.c_builtins.__builtin_clz; +pub const __builtin_sqrt = @import("std").zig.c_builtins.__builtin_sqrt; +pub const __builtin_sqrtf = @import("std").zig.c_builtins.__builtin_sqrtf; +pub const __builtin_sin = @import("std").zig.c_builtins.__builtin_sin; +pub const __builtin_sinf = @import("std").zig.c_builtins.__builtin_sinf; +pub const __builtin_cos = @import("std").zig.c_builtins.__builtin_cos; +pub const __builtin_cosf = @import("std").zig.c_builtins.__builtin_cosf; +pub const __builtin_exp = @import("std").zig.c_builtins.__builtin_exp; +pub const __builtin_expf = @import("std").zig.c_builtins.__builtin_expf; +pub const __builtin_exp2 = @import("std").zig.c_builtins.__builtin_exp2; +pub const __builtin_exp2f = @import("std").zig.c_builtins.__builtin_exp2f; +pub const __builtin_log = @import("std").zig.c_builtins.__builtin_log; +pub const __builtin_logf = @import("std").zig.c_builtins.__builtin_logf; +pub const __builtin_log2 = @import("std").zig.c_builtins.__builtin_log2; +pub const __builtin_log2f = @import("std").zig.c_builtins.__builtin_log2f; +pub const __builtin_log10 = @import("std").zig.c_builtins.__builtin_log10; +pub const __builtin_log10f = @import("std").zig.c_builtins.__builtin_log10f; +pub const __builtin_abs = @import("std").zig.c_builtins.__builtin_abs; +pub const __builtin_fabs = @import("std").zig.c_builtins.__builtin_fabs; +pub const __builtin_fabsf = @import("std").zig.c_builtins.__builtin_fabsf; +pub const __builtin_floor = @import("std").zig.c_builtins.__builtin_floor; +pub const __builtin_floorf = @import("std").zig.c_builtins.__builtin_floorf; +pub const __builtin_ceil = @import("std").zig.c_builtins.__builtin_ceil; +pub const __builtin_ceilf = @import("std").zig.c_builtins.__builtin_ceilf; +pub const __builtin_trunc = @import("std").zig.c_builtins.__builtin_trunc; +pub const __builtin_truncf = @import("std").zig.c_builtins.__builtin_truncf; +pub const __builtin_round = @import("std").zig.c_builtins.__builtin_round; +pub const __builtin_roundf = @import("std").zig.c_builtins.__builtin_roundf; +pub const __builtin_strlen = @import("std").zig.c_builtins.__builtin_strlen; +pub const __builtin_strcmp = @import("std").zig.c_builtins.__builtin_strcmp; +pub const __builtin_object_size = @import("std").zig.c_builtins.__builtin_object_size; +pub const __builtin___memset_chk = @import("std").zig.c_builtins.__builtin___memset_chk; +pub const __builtin_memset = @import("std").zig.c_builtins.__builtin_memset; +pub const __builtin___memcpy_chk = @import("std").zig.c_builtins.__builtin___memcpy_chk; +pub const __builtin_memcpy = @import("std").zig.c_builtins.__builtin_memcpy; +pub const __builtin_expect = @import("std").zig.c_builtins.__builtin_expect; +pub const __builtin_nanf = @import("std").zig.c_builtins.__builtin_nanf; +pub const __builtin_huge_valf = @import("std").zig.c_builtins.__builtin_huge_valf; +pub const __builtin_inff = @import("std").zig.c_builtins.__builtin_inff; +pub const __builtin_isnan = @import("std").zig.c_builtins.__builtin_isnan; +pub const __builtin_isinf = @import("std").zig.c_builtins.__builtin_isinf; +pub const __builtin_isinf_sign = @import("std").zig.c_builtins.__builtin_isinf_sign; +pub const __has_builtin = @import("std").zig.c_builtins.__has_builtin; +pub const __builtin_assume = @import("std").zig.c_builtins.__builtin_assume; +pub const __builtin_unreachable = @import("std").zig.c_builtins.__builtin_unreachable; +pub const __builtin_constant_p = @import("std").zig.c_builtins.__builtin_constant_p; +pub const __builtin_mul_overflow = @import("std").zig.c_builtins.__builtin_mul_overflow; +pub const struct___va_list_tag = extern struct { + gp_offset: c_uint, + fp_offset: c_uint, + overflow_arg_area: ?*anyopaque, + reg_save_area: ?*anyopaque, +}; +pub const __builtin_va_list = [1]struct___va_list_tag; +pub const va_list = __builtin_va_list; +pub const __gnuc_va_list = __builtin_va_list; +pub const struct_Vector2 = extern struct { + x: f32, + y: f32, +}; +pub const Vector2 = struct_Vector2; +pub const struct_Vector3 = extern struct { + x: f32, + y: f32, + z: f32, +}; +pub const Vector3 = struct_Vector3; +pub const struct_Vector4 = extern struct { + x: f32, + y: f32, + z: f32, + w: f32, +}; +pub const Vector4 = struct_Vector4; +pub const Quaternion = Vector4; +pub const struct_Matrix = extern struct { + m0: f32, + m4: f32, + m8: f32, + m12: f32, + m1: f32, + m5: f32, + m9: f32, + m13: f32, + m2: f32, + m6: f32, + m10: f32, + m14: f32, + m3: f32, + m7: f32, + m11: f32, + m15: f32, +}; +pub const Matrix = struct_Matrix; +pub const struct_Color = extern struct { + r: u8, + g: u8, + b: u8, + a: u8, +}; +pub const Color = struct_Color; +pub const struct_Rectangle = extern struct { + x: f32, + y: f32, + width: f32, + height: f32, +}; +pub const Rectangle = struct_Rectangle; +pub const struct_Image = extern struct { + data: ?*anyopaque, + width: c_int, + height: c_int, + mipmaps: c_int, + format: c_int, +}; +pub const Image = struct_Image; +pub const struct_Texture = extern struct { + id: c_uint, + width: c_int, + height: c_int, + mipmaps: c_int, + format: c_int, +}; +pub const Texture = struct_Texture; +pub const Texture2D = Texture; +pub const TextureCubemap = Texture; +pub const struct_RenderTexture = extern struct { + id: c_uint, + texture: Texture, + depth: Texture, +}; +pub const RenderTexture = struct_RenderTexture; +pub const RenderTexture2D = RenderTexture; +pub const struct_NPatchInfo = extern struct { + source: Rectangle, + left: c_int, + top: c_int, + right: c_int, + bottom: c_int, + layout: c_int, +}; +pub const NPatchInfo = struct_NPatchInfo; +pub const struct_GlyphInfo = extern struct { + value: c_int, + offsetX: c_int, + offsetY: c_int, + advanceX: c_int, + image: Image, +}; +pub const GlyphInfo = struct_GlyphInfo; +pub const struct_Font = extern struct { + baseSize: c_int, + glyphCount: c_int, + glyphPadding: c_int, + texture: Texture2D, + recs: [*c]Rectangle, + glyphs: [*c]GlyphInfo, +}; +pub const Font = struct_Font; +pub const struct_Camera3D = extern struct { + position: Vector3, + target: Vector3, + up: Vector3, + fovy: f32, + projection: c_int, +}; +pub const Camera3D = struct_Camera3D; +pub const Camera = Camera3D; +pub const struct_Camera2D = extern struct { + offset: Vector2, + target: Vector2, + rotation: f32, + zoom: f32, +}; +pub const Camera2D = struct_Camera2D; +pub const struct_Mesh = extern struct { + vertexCount: c_int, + triangleCount: c_int, + vertices: [*c]f32, + texcoords: [*c]f32, + texcoords2: [*c]f32, + normals: [*c]f32, + tangents: [*c]f32, + colors: [*c]u8, + indices: [*c]c_ushort, + animVertices: [*c]f32, + animNormals: [*c]f32, + boneIds: [*c]u8, + boneWeights: [*c]f32, + vaoId: c_uint, + vboId: [*c]c_uint, +}; +pub const Mesh = struct_Mesh; +pub const struct_Shader = extern struct { + id: c_uint, + locs: [*c]c_int, +}; +pub const Shader = struct_Shader; +pub const struct_MaterialMap = extern struct { + texture: Texture2D, + color: Color, + value: f32, +}; +pub const MaterialMap = struct_MaterialMap; +pub const struct_Material = extern struct { + shader: Shader, + maps: [*c]MaterialMap, + params: [4]f32, +}; +pub const Material = struct_Material; +pub const struct_Transform = extern struct { + translation: Vector3, + rotation: Quaternion, + scale: Vector3, +}; +pub const Transform = struct_Transform; +pub const struct_BoneInfo = extern struct { + name: [32]u8, + parent: c_int, +}; +pub const BoneInfo = struct_BoneInfo; +pub const struct_Model = extern struct { + transform: Matrix, + meshCount: c_int, + materialCount: c_int, + meshes: [*c]Mesh, + materials: [*c]Material, + meshMaterial: [*c]c_int, + boneCount: c_int, + bones: [*c]BoneInfo, + bindPose: [*c]Transform, +}; +pub const Model = struct_Model; +pub const struct_ModelAnimation = extern struct { + boneCount: c_int, + frameCount: c_int, + bones: [*c]BoneInfo, + framePoses: [*c][*c]Transform, +}; +pub const ModelAnimation = struct_ModelAnimation; +pub const struct_Ray = extern struct { + position: Vector3, + direction: Vector3, +}; +pub const Ray = struct_Ray; +pub const struct_RayCollision = extern struct { + hit: bool, + distance: f32, + point: Vector3, + normal: Vector3, +}; +pub const RayCollision = struct_RayCollision; +pub const struct_BoundingBox = extern struct { + min: Vector3, + max: Vector3, +}; +pub const BoundingBox = struct_BoundingBox; +pub const struct_Wave = extern struct { + frameCount: c_uint, + sampleRate: c_uint, + sampleSize: c_uint, + channels: c_uint, + data: ?*anyopaque, +}; +pub const Wave = struct_Wave; +pub const struct_rAudioBuffer = opaque {}; +pub const rAudioBuffer = struct_rAudioBuffer; +pub const struct_rAudioProcessor = opaque {}; +pub const rAudioProcessor = struct_rAudioProcessor; +pub const struct_AudioStream = extern struct { + buffer: ?*rAudioBuffer, + processor: ?*rAudioProcessor, + sampleRate: c_uint, + sampleSize: c_uint, + channels: c_uint, +}; +pub const AudioStream = struct_AudioStream; +pub const struct_Sound = extern struct { + stream: AudioStream, + frameCount: c_uint, +}; +pub const Sound = struct_Sound; +pub const struct_Music = extern struct { + stream: AudioStream, + frameCount: c_uint, + looping: bool, + ctxType: c_int, + ctxData: ?*anyopaque, +}; +pub const Music = struct_Music; +pub const struct_VrDeviceInfo = extern struct { + hResolution: c_int, + vResolution: c_int, + hScreenSize: f32, + vScreenSize: f32, + vScreenCenter: f32, + eyeToScreenDistance: f32, + lensSeparationDistance: f32, + interpupillaryDistance: f32, + lensDistortionValues: [4]f32, + chromaAbCorrection: [4]f32, +}; +pub const VrDeviceInfo = struct_VrDeviceInfo; +pub const struct_VrStereoConfig = extern struct { + projection: [2]Matrix, + viewOffset: [2]Matrix, + leftLensCenter: [2]f32, + rightLensCenter: [2]f32, + leftScreenCenter: [2]f32, + rightScreenCenter: [2]f32, + scale: [2]f32, + scaleIn: [2]f32, +}; +pub const VrStereoConfig = struct_VrStereoConfig; +pub const FLAG_VSYNC_HINT: c_int = 64; +pub const FLAG_FULLSCREEN_MODE: c_int = 2; +pub const FLAG_WINDOW_RESIZABLE: c_int = 4; +pub const FLAG_WINDOW_UNDECORATED: c_int = 8; +pub const FLAG_WINDOW_HIDDEN: c_int = 128; +pub const FLAG_WINDOW_MINIMIZED: c_int = 512; +pub const FLAG_WINDOW_MAXIMIZED: c_int = 1024; +pub const FLAG_WINDOW_UNFOCUSED: c_int = 2048; +pub const FLAG_WINDOW_TOPMOST: c_int = 4096; +pub const FLAG_WINDOW_ALWAYS_RUN: c_int = 256; +pub const FLAG_WINDOW_TRANSPARENT: c_int = 16; +pub const FLAG_WINDOW_HIGHDPI: c_int = 8192; +pub const FLAG_MSAA_4X_HINT: c_int = 32; +pub const FLAG_INTERLACED_HINT: c_int = 65536; +pub const ConfigFlags = c_uint; +pub const LOG_ALL: c_int = 0; +pub const LOG_TRACE: c_int = 1; +pub const LOG_DEBUG: c_int = 2; +pub const LOG_INFO: c_int = 3; +pub const LOG_WARNING: c_int = 4; +pub const LOG_ERROR: c_int = 5; +pub const LOG_FATAL: c_int = 6; +pub const LOG_NONE: c_int = 7; +pub const TraceLogLevel = c_uint; +pub const KEY_NULL: c_int = 0; +pub const KEY_APOSTROPHE: c_int = 39; +pub const KEY_COMMA: c_int = 44; +pub const KEY_MINUS: c_int = 45; +pub const KEY_PERIOD: c_int = 46; +pub const KEY_SLASH: c_int = 47; +pub const KEY_ZERO: c_int = 48; +pub const KEY_ONE: c_int = 49; +pub const KEY_TWO: c_int = 50; +pub const KEY_THREE: c_int = 51; +pub const KEY_FOUR: c_int = 52; +pub const KEY_FIVE: c_int = 53; +pub const KEY_SIX: c_int = 54; +pub const KEY_SEVEN: c_int = 55; +pub const KEY_EIGHT: c_int = 56; +pub const KEY_NINE: c_int = 57; +pub const KEY_SEMICOLON: c_int = 59; +pub const KEY_EQUAL: c_int = 61; +pub const KEY_A: c_int = 65; +pub const KEY_B: c_int = 66; +pub const KEY_C: c_int = 67; +pub const KEY_D: c_int = 68; +pub const KEY_E: c_int = 69; +pub const KEY_F: c_int = 70; +pub const KEY_G: c_int = 71; +pub const KEY_H: c_int = 72; +pub const KEY_I: c_int = 73; +pub const KEY_J: c_int = 74; +pub const KEY_K: c_int = 75; +pub const KEY_L: c_int = 76; +pub const KEY_M: c_int = 77; +pub const KEY_N: c_int = 78; +pub const KEY_O: c_int = 79; +pub const KEY_P: c_int = 80; +pub const KEY_Q: c_int = 81; +pub const KEY_R: c_int = 82; +pub const KEY_S: c_int = 83; +pub const KEY_T: c_int = 84; +pub const KEY_U: c_int = 85; +pub const KEY_V: c_int = 86; +pub const KEY_W: c_int = 87; +pub const KEY_X: c_int = 88; +pub const KEY_Y: c_int = 89; +pub const KEY_Z: c_int = 90; +pub const KEY_LEFT_BRACKET: c_int = 91; +pub const KEY_BACKSLASH: c_int = 92; +pub const KEY_RIGHT_BRACKET: c_int = 93; +pub const KEY_GRAVE: c_int = 96; +pub const KEY_SPACE: c_int = 32; +pub const KEY_ESCAPE: c_int = 256; +pub const KEY_ENTER: c_int = 257; +pub const KEY_TAB: c_int = 258; +pub const KEY_BACKSPACE: c_int = 259; +pub const KEY_INSERT: c_int = 260; +pub const KEY_DELETE: c_int = 261; +pub const KEY_RIGHT: c_int = 262; +pub const KEY_LEFT: c_int = 263; +pub const KEY_DOWN: c_int = 264; +pub const KEY_UP: c_int = 265; +pub const KEY_PAGE_UP: c_int = 266; +pub const KEY_PAGE_DOWN: c_int = 267; +pub const KEY_HOME: c_int = 268; +pub const KEY_END: c_int = 269; +pub const KEY_CAPS_LOCK: c_int = 280; +pub const KEY_SCROLL_LOCK: c_int = 281; +pub const KEY_NUM_LOCK: c_int = 282; +pub const KEY_PRINT_SCREEN: c_int = 283; +pub const KEY_PAUSE: c_int = 284; +pub const KEY_F1: c_int = 290; +pub const KEY_F2: c_int = 291; +pub const KEY_F3: c_int = 292; +pub const KEY_F4: c_int = 293; +pub const KEY_F5: c_int = 294; +pub const KEY_F6: c_int = 295; +pub const KEY_F7: c_int = 296; +pub const KEY_F8: c_int = 297; +pub const KEY_F9: c_int = 298; +pub const KEY_F10: c_int = 299; +pub const KEY_F11: c_int = 300; +pub const KEY_F12: c_int = 301; +pub const KEY_LEFT_SHIFT: c_int = 340; +pub const KEY_LEFT_CONTROL: c_int = 341; +pub const KEY_LEFT_ALT: c_int = 342; +pub const KEY_LEFT_SUPER: c_int = 343; +pub const KEY_RIGHT_SHIFT: c_int = 344; +pub const KEY_RIGHT_CONTROL: c_int = 345; +pub const KEY_RIGHT_ALT: c_int = 346; +pub const KEY_RIGHT_SUPER: c_int = 347; +pub const KEY_KB_MENU: c_int = 348; +pub const KEY_KP_0: c_int = 320; +pub const KEY_KP_1: c_int = 321; +pub const KEY_KP_2: c_int = 322; +pub const KEY_KP_3: c_int = 323; +pub const KEY_KP_4: c_int = 324; +pub const KEY_KP_5: c_int = 325; +pub const KEY_KP_6: c_int = 326; +pub const KEY_KP_7: c_int = 327; +pub const KEY_KP_8: c_int = 328; +pub const KEY_KP_9: c_int = 329; +pub const KEY_KP_DECIMAL: c_int = 330; +pub const KEY_KP_DIVIDE: c_int = 331; +pub const KEY_KP_MULTIPLY: c_int = 332; +pub const KEY_KP_SUBTRACT: c_int = 333; +pub const KEY_KP_ADD: c_int = 334; +pub const KEY_KP_ENTER: c_int = 335; +pub const KEY_KP_EQUAL: c_int = 336; +pub const KEY_BACK: c_int = 4; +pub const KEY_MENU: c_int = 82; +pub const KEY_VOLUME_UP: c_int = 24; +pub const KEY_VOLUME_DOWN: c_int = 25; +pub const KeyboardKey = c_uint; +pub const MOUSE_BUTTON_LEFT: c_int = 0; +pub const MOUSE_BUTTON_RIGHT: c_int = 1; +pub const MOUSE_BUTTON_MIDDLE: c_int = 2; +pub const MOUSE_BUTTON_SIDE: c_int = 3; +pub const MOUSE_BUTTON_EXTRA: c_int = 4; +pub const MOUSE_BUTTON_FORWARD: c_int = 5; +pub const MOUSE_BUTTON_BACK: c_int = 6; +pub const MouseButton = c_uint; +pub const MOUSE_CURSOR_DEFAULT: c_int = 0; +pub const MOUSE_CURSOR_ARROW: c_int = 1; +pub const MOUSE_CURSOR_IBEAM: c_int = 2; +pub const MOUSE_CURSOR_CROSSHAIR: c_int = 3; +pub const MOUSE_CURSOR_POINTING_HAND: c_int = 4; +pub const MOUSE_CURSOR_RESIZE_EW: c_int = 5; +pub const MOUSE_CURSOR_RESIZE_NS: c_int = 6; +pub const MOUSE_CURSOR_RESIZE_NWSE: c_int = 7; +pub const MOUSE_CURSOR_RESIZE_NESW: c_int = 8; +pub const MOUSE_CURSOR_RESIZE_ALL: c_int = 9; +pub const MOUSE_CURSOR_NOT_ALLOWED: c_int = 10; +pub const MouseCursor = c_uint; +pub const GAMEPAD_BUTTON_UNKNOWN: c_int = 0; +pub const GAMEPAD_BUTTON_LEFT_FACE_UP: c_int = 1; +pub const GAMEPAD_BUTTON_LEFT_FACE_RIGHT: c_int = 2; +pub const GAMEPAD_BUTTON_LEFT_FACE_DOWN: c_int = 3; +pub const GAMEPAD_BUTTON_LEFT_FACE_LEFT: c_int = 4; +pub const GAMEPAD_BUTTON_RIGHT_FACE_UP: c_int = 5; +pub const GAMEPAD_BUTTON_RIGHT_FACE_RIGHT: c_int = 6; +pub const GAMEPAD_BUTTON_RIGHT_FACE_DOWN: c_int = 7; +pub const GAMEPAD_BUTTON_RIGHT_FACE_LEFT: c_int = 8; +pub const GAMEPAD_BUTTON_LEFT_TRIGGER_1: c_int = 9; +pub const GAMEPAD_BUTTON_LEFT_TRIGGER_2: c_int = 10; +pub const GAMEPAD_BUTTON_RIGHT_TRIGGER_1: c_int = 11; +pub const GAMEPAD_BUTTON_RIGHT_TRIGGER_2: c_int = 12; +pub const GAMEPAD_BUTTON_MIDDLE_LEFT: c_int = 13; +pub const GAMEPAD_BUTTON_MIDDLE: c_int = 14; +pub const GAMEPAD_BUTTON_MIDDLE_RIGHT: c_int = 15; +pub const GAMEPAD_BUTTON_LEFT_THUMB: c_int = 16; +pub const GAMEPAD_BUTTON_RIGHT_THUMB: c_int = 17; +pub const GamepadButton = c_uint; +pub const GAMEPAD_AXIS_LEFT_X: c_int = 0; +pub const GAMEPAD_AXIS_LEFT_Y: c_int = 1; +pub const GAMEPAD_AXIS_RIGHT_X: c_int = 2; +pub const GAMEPAD_AXIS_RIGHT_Y: c_int = 3; +pub const GAMEPAD_AXIS_LEFT_TRIGGER: c_int = 4; +pub const GAMEPAD_AXIS_RIGHT_TRIGGER: c_int = 5; +pub const GamepadAxis = c_uint; +pub const MATERIAL_MAP_ALBEDO: c_int = 0; +pub const MATERIAL_MAP_METALNESS: c_int = 1; +pub const MATERIAL_MAP_NORMAL: c_int = 2; +pub const MATERIAL_MAP_ROUGHNESS: c_int = 3; +pub const MATERIAL_MAP_OCCLUSION: c_int = 4; +pub const MATERIAL_MAP_EMISSION: c_int = 5; +pub const MATERIAL_MAP_HEIGHT: c_int = 6; +pub const MATERIAL_MAP_CUBEMAP: c_int = 7; +pub const MATERIAL_MAP_IRRADIANCE: c_int = 8; +pub const MATERIAL_MAP_PREFILTER: c_int = 9; +pub const MATERIAL_MAP_BRDF: c_int = 10; +pub const MaterialMapIndex = c_uint; +pub const SHADER_LOC_VERTEX_POSITION: c_int = 0; +pub const SHADER_LOC_VERTEX_TEXCOORD01: c_int = 1; +pub const SHADER_LOC_VERTEX_TEXCOORD02: c_int = 2; +pub const SHADER_LOC_VERTEX_NORMAL: c_int = 3; +pub const SHADER_LOC_VERTEX_TANGENT: c_int = 4; +pub const SHADER_LOC_VERTEX_COLOR: c_int = 5; +pub const SHADER_LOC_MATRIX_MVP: c_int = 6; +pub const SHADER_LOC_MATRIX_VIEW: c_int = 7; +pub const SHADER_LOC_MATRIX_PROJECTION: c_int = 8; +pub const SHADER_LOC_MATRIX_MODEL: c_int = 9; +pub const SHADER_LOC_MATRIX_NORMAL: c_int = 10; +pub const SHADER_LOC_VECTOR_VIEW: c_int = 11; +pub const SHADER_LOC_COLOR_DIFFUSE: c_int = 12; +pub const SHADER_LOC_COLOR_SPECULAR: c_int = 13; +pub const SHADER_LOC_COLOR_AMBIENT: c_int = 14; +pub const SHADER_LOC_MAP_ALBEDO: c_int = 15; +pub const SHADER_LOC_MAP_METALNESS: c_int = 16; +pub const SHADER_LOC_MAP_NORMAL: c_int = 17; +pub const SHADER_LOC_MAP_ROUGHNESS: c_int = 18; +pub const SHADER_LOC_MAP_OCCLUSION: c_int = 19; +pub const SHADER_LOC_MAP_EMISSION: c_int = 20; +pub const SHADER_LOC_MAP_HEIGHT: c_int = 21; +pub const SHADER_LOC_MAP_CUBEMAP: c_int = 22; +pub const SHADER_LOC_MAP_IRRADIANCE: c_int = 23; +pub const SHADER_LOC_MAP_PREFILTER: c_int = 24; +pub const SHADER_LOC_MAP_BRDF: c_int = 25; +pub const ShaderLocationIndex = c_uint; +pub const SHADER_UNIFORM_FLOAT: c_int = 0; +pub const SHADER_UNIFORM_VEC2: c_int = 1; +pub const SHADER_UNIFORM_VEC3: c_int = 2; +pub const SHADER_UNIFORM_VEC4: c_int = 3; +pub const SHADER_UNIFORM_INT: c_int = 4; +pub const SHADER_UNIFORM_IVEC2: c_int = 5; +pub const SHADER_UNIFORM_IVEC3: c_int = 6; +pub const SHADER_UNIFORM_IVEC4: c_int = 7; +pub const SHADER_UNIFORM_SAMPLER2D: c_int = 8; +pub const ShaderUniformDataType = c_uint; +pub const SHADER_ATTRIB_FLOAT: c_int = 0; +pub const SHADER_ATTRIB_VEC2: c_int = 1; +pub const SHADER_ATTRIB_VEC3: c_int = 2; +pub const SHADER_ATTRIB_VEC4: c_int = 3; +pub const ShaderAttributeDataType = c_uint; +pub const PIXELFORMAT_UNCOMPRESSED_GRAYSCALE: c_int = 1; +pub const PIXELFORMAT_UNCOMPRESSED_GRAY_ALPHA: c_int = 2; +pub const PIXELFORMAT_UNCOMPRESSED_R5G6B5: c_int = 3; +pub const PIXELFORMAT_UNCOMPRESSED_R8G8B8: c_int = 4; +pub const PIXELFORMAT_UNCOMPRESSED_R5G5B5A1: c_int = 5; +pub const PIXELFORMAT_UNCOMPRESSED_R4G4B4A4: c_int = 6; +pub const PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: c_int = 7; +pub const PIXELFORMAT_UNCOMPRESSED_R32: c_int = 8; +pub const PIXELFORMAT_UNCOMPRESSED_R32G32B32: c_int = 9; +pub const PIXELFORMAT_UNCOMPRESSED_R32G32B32A32: c_int = 10; +pub const PIXELFORMAT_COMPRESSED_DXT1_RGB: c_int = 11; +pub const PIXELFORMAT_COMPRESSED_DXT1_RGBA: c_int = 12; +pub const PIXELFORMAT_COMPRESSED_DXT3_RGBA: c_int = 13; +pub const PIXELFORMAT_COMPRESSED_DXT5_RGBA: c_int = 14; +pub const PIXELFORMAT_COMPRESSED_ETC1_RGB: c_int = 15; +pub const PIXELFORMAT_COMPRESSED_ETC2_RGB: c_int = 16; +pub const PIXELFORMAT_COMPRESSED_ETC2_EAC_RGBA: c_int = 17; +pub const PIXELFORMAT_COMPRESSED_PVRT_RGB: c_int = 18; +pub const PIXELFORMAT_COMPRESSED_PVRT_RGBA: c_int = 19; +pub const PIXELFORMAT_COMPRESSED_ASTC_4x4_RGBA: c_int = 20; +pub const PIXELFORMAT_COMPRESSED_ASTC_8x8_RGBA: c_int = 21; +pub const PixelFormat = c_uint; +pub const TEXTURE_FILTER_POINT: c_int = 0; +pub const TEXTURE_FILTER_BILINEAR: c_int = 1; +pub const TEXTURE_FILTER_TRILINEAR: c_int = 2; +pub const TEXTURE_FILTER_ANISOTROPIC_4X: c_int = 3; +pub const TEXTURE_FILTER_ANISOTROPIC_8X: c_int = 4; +pub const TEXTURE_FILTER_ANISOTROPIC_16X: c_int = 5; +pub const TextureFilter = c_uint; +pub const TEXTURE_WRAP_REPEAT: c_int = 0; +pub const TEXTURE_WRAP_CLAMP: c_int = 1; +pub const TEXTURE_WRAP_MIRROR_REPEAT: c_int = 2; +pub const TEXTURE_WRAP_MIRROR_CLAMP: c_int = 3; +pub const TextureWrap = c_uint; +pub const CUBEMAP_LAYOUT_AUTO_DETECT: c_int = 0; +pub const CUBEMAP_LAYOUT_LINE_VERTICAL: c_int = 1; +pub const CUBEMAP_LAYOUT_LINE_HORIZONTAL: c_int = 2; +pub const CUBEMAP_LAYOUT_CROSS_THREE_BY_FOUR: c_int = 3; +pub const CUBEMAP_LAYOUT_CROSS_FOUR_BY_THREE: c_int = 4; +pub const CUBEMAP_LAYOUT_PANORAMA: c_int = 5; +pub const CubemapLayout = c_uint; +pub const FONT_DEFAULT: c_int = 0; +pub const FONT_BITMAP: c_int = 1; +pub const FONT_SDF: c_int = 2; +pub const FontType = c_uint; +pub const BLEND_ALPHA: c_int = 0; +pub const BLEND_ADDITIVE: c_int = 1; +pub const BLEND_MULTIPLIED: c_int = 2; +pub const BLEND_ADD_COLORS: c_int = 3; +pub const BLEND_SUBTRACT_COLORS: c_int = 4; +pub const BLEND_ALPHA_PREMUL: c_int = 5; +pub const BLEND_CUSTOM: c_int = 6; +pub const BlendMode = c_uint; +pub const GESTURE_NONE: c_int = 0; +pub const GESTURE_TAP: c_int = 1; +pub const GESTURE_DOUBLETAP: c_int = 2; +pub const GESTURE_HOLD: c_int = 4; +pub const GESTURE_DRAG: c_int = 8; +pub const GESTURE_SWIPE_RIGHT: c_int = 16; +pub const GESTURE_SWIPE_LEFT: c_int = 32; +pub const GESTURE_SWIPE_UP: c_int = 64; +pub const GESTURE_SWIPE_DOWN: c_int = 128; +pub const GESTURE_PINCH_IN: c_int = 256; +pub const GESTURE_PINCH_OUT: c_int = 512; +pub const Gesture = c_uint; +pub const CAMERA_CUSTOM: c_int = 0; +pub const CAMERA_FREE: c_int = 1; +pub const CAMERA_ORBITAL: c_int = 2; +pub const CAMERA_FIRST_PERSON: c_int = 3; +pub const CAMERA_THIRD_PERSON: c_int = 4; +pub const CameraMode = c_uint; +pub const CAMERA_PERSPECTIVE: c_int = 0; +pub const CAMERA_ORTHOGRAPHIC: c_int = 1; +pub const CameraProjection = c_uint; +pub const NPATCH_NINE_PATCH: c_int = 0; +pub const NPATCH_THREE_PATCH_VERTICAL: c_int = 1; +pub const NPATCH_THREE_PATCH_HORIZONTAL: c_int = 2; +pub const NPatchLayout = c_uint; +pub const TraceLogCallback = ?fn (c_int, [*c]const u8, [*c]struct___va_list_tag) callconv(.C) void; +pub const LoadFileDataCallback = ?fn ([*c]const u8, [*c]c_uint) callconv(.C) [*c]u8; +pub const SaveFileDataCallback = ?fn ([*c]const u8, ?*anyopaque, c_uint) callconv(.C) bool; +pub const LoadFileTextCallback = ?fn ([*c]const u8) callconv(.C) [*c]u8; +pub const SaveFileTextCallback = ?fn ([*c]const u8, [*c]u8) callconv(.C) bool; +pub extern fn InitWindow(width: c_int, height: c_int, title: [*c]const u8) void; +pub extern fn WindowShouldClose() bool; +pub extern fn CloseWindow() void; +pub extern fn IsWindowReady() bool; +pub extern fn IsWindowFullscreen() bool; +pub extern fn IsWindowHidden() bool; +pub extern fn IsWindowMinimized() bool; +pub extern fn IsWindowMaximized() bool; +pub extern fn IsWindowFocused() bool; +pub extern fn IsWindowResized() bool; +pub extern fn IsWindowState(flag: c_uint) bool; +pub extern fn SetWindowState(flags: c_uint) void; +pub extern fn ClearWindowState(flags: c_uint) void; +pub extern fn ToggleFullscreen() void; +pub extern fn MaximizeWindow() void; +pub extern fn MinimizeWindow() void; +pub extern fn RestoreWindow() void; +pub extern fn SetWindowIcon(image: Image) void; +pub extern fn SetWindowTitle(title: [*c]const u8) void; +pub extern fn SetWindowPosition(x: c_int, y: c_int) void; +pub extern fn SetWindowMonitor(monitor: c_int) void; +pub extern fn SetWindowMinSize(width: c_int, height: c_int) void; +pub extern fn SetWindowSize(width: c_int, height: c_int) void; +pub extern fn SetWindowOpacity(opacity: f32) void; +pub extern fn GetWindowHandle() ?*anyopaque; +pub extern fn GetScreenWidth() c_int; +pub extern fn GetScreenHeight() c_int; +pub extern fn GetRenderWidth() c_int; +pub extern fn GetRenderHeight() c_int; +pub extern fn GetMonitorCount() c_int; +pub extern fn GetCurrentMonitor() c_int; +pub extern fn GetMonitorPosition(monitor: c_int) Vector2; +pub extern fn GetMonitorWidth(monitor: c_int) c_int; +pub extern fn GetMonitorHeight(monitor: c_int) c_int; +pub extern fn GetMonitorPhysicalWidth(monitor: c_int) c_int; +pub extern fn GetMonitorPhysicalHeight(monitor: c_int) c_int; +pub extern fn GetMonitorRefreshRate(monitor: c_int) c_int; +pub extern fn GetWindowPosition() Vector2; +pub extern fn GetWindowScaleDPI() Vector2; +pub extern fn GetMonitorName(monitor: c_int) [*c]const u8; +pub extern fn SetClipboardText(text: [*c]const u8) void; +pub extern fn GetClipboardText() [*c]const u8; +pub extern fn SwapScreenBuffer() void; +pub extern fn PollInputEvents() void; +pub extern fn WaitTime(ms: f32) void; +pub extern fn ShowCursor() void; +pub extern fn HideCursor() void; +pub extern fn IsCursorHidden() bool; +pub extern fn EnableCursor() void; +pub extern fn DisableCursor() void; +pub extern fn IsCursorOnScreen() bool; +pub extern fn ClearBackground(color: Color) void; +pub extern fn BeginDrawing() void; +pub extern fn EndDrawing() void; +pub extern fn BeginMode2D(camera: Camera2D) void; +pub extern fn EndMode2D() void; +pub extern fn BeginMode3D(camera: Camera3D) void; +pub extern fn EndMode3D() void; +pub extern fn BeginTextureMode(target: RenderTexture2D) void; +pub extern fn EndTextureMode() void; +pub extern fn BeginShaderMode(shader: Shader) void; +pub extern fn EndShaderMode() void; +pub extern fn BeginBlendMode(mode: c_int) void; +pub extern fn EndBlendMode() void; +pub extern fn BeginScissorMode(x: c_int, y: c_int, width: c_int, height: c_int) void; +pub extern fn EndScissorMode() void; +pub extern fn BeginVrStereoMode(config: VrStereoConfig) void; +pub extern fn EndVrStereoMode() void; +pub extern fn LoadVrStereoConfig(device: VrDeviceInfo) VrStereoConfig; +pub extern fn UnloadVrStereoConfig(config: VrStereoConfig) void; +pub extern fn LoadShader(vsFileName: [*c]const u8, fsFileName: [*c]const u8) Shader; +pub extern fn LoadShaderFromMemory(vsCode: [*c]const u8, fsCode: [*c]const u8) Shader; +pub extern fn GetShaderLocation(shader: Shader, uniformName: [*c]const u8) c_int; +pub extern fn GetShaderLocationAttrib(shader: Shader, attribName: [*c]const u8) c_int; +pub extern fn SetShaderValue(shader: Shader, locIndex: c_int, value: ?*const anyopaque, uniformType: c_int) void; +pub extern fn SetShaderValueV(shader: Shader, locIndex: c_int, value: ?*const anyopaque, uniformType: c_int, count: c_int) void; +pub extern fn SetShaderValueMatrix(shader: Shader, locIndex: c_int, mat: Matrix) void; +pub extern fn SetShaderValueTexture(shader: Shader, locIndex: c_int, texture: Texture2D) void; +pub extern fn UnloadShader(shader: Shader) void; +pub extern fn GetMouseRay(mousePosition: Vector2, camera: Camera) Ray; +pub extern fn GetCameraMatrix(camera: Camera) Matrix; +pub extern fn GetCameraMatrix2D(camera: Camera2D) Matrix; +pub extern fn GetWorldToScreen(position: Vector3, camera: Camera) Vector2; +pub extern fn GetWorldToScreenEx(position: Vector3, camera: Camera, width: c_int, height: c_int) Vector2; +pub extern fn GetWorldToScreen2D(position: Vector2, camera: Camera2D) Vector2; +pub extern fn GetScreenToWorld2D(position: Vector2, camera: Camera2D) Vector2; +pub extern fn SetTargetFPS(fps: c_int) void; +pub extern fn GetFPS() c_int; +pub extern fn GetFrameTime() f32; +pub extern fn GetTime() f64; +pub extern fn GetRandomValue(min: c_int, max: c_int) c_int; +pub extern fn SetRandomSeed(seed: c_uint) void; +pub extern fn TakeScreenshot(fileName: [*c]const u8) void; +pub extern fn SetConfigFlags(flags: c_uint) void; +pub extern fn TraceLog(logLevel: c_int, text: [*c]const u8, ...) void; +pub extern fn SetTraceLogLevel(logLevel: c_int) void; +pub extern fn MemAlloc(size: c_int) ?*anyopaque; +pub extern fn MemRealloc(ptr: ?*anyopaque, size: c_int) ?*anyopaque; +pub extern fn MemFree(ptr: ?*anyopaque) void; +pub extern fn SetTraceLogCallback(callback: TraceLogCallback) void; +pub extern fn SetLoadFileDataCallback(callback: LoadFileDataCallback) void; +pub extern fn SetSaveFileDataCallback(callback: SaveFileDataCallback) void; +pub extern fn SetLoadFileTextCallback(callback: LoadFileTextCallback) void; +pub extern fn SetSaveFileTextCallback(callback: SaveFileTextCallback) void; +pub extern fn LoadFileData(fileName: [*c]const u8, bytesRead: [*c]c_uint) [*c]u8; +pub extern fn UnloadFileData(data: [*c]u8) void; +pub extern fn SaveFileData(fileName: [*c]const u8, data: ?*anyopaque, bytesToWrite: c_uint) bool; +pub extern fn LoadFileText(fileName: [*c]const u8) [*c]u8; +pub extern fn UnloadFileText(text: [*c]u8) void; +pub extern fn SaveFileText(fileName: [*c]const u8, text: [*c]u8) bool; +pub extern fn FileExists(fileName: [*c]const u8) bool; +pub extern fn DirectoryExists(dirPath: [*c]const u8) bool; +pub extern fn IsFileExtension(fileName: [*c]const u8, ext: [*c]const u8) bool; +pub extern fn GetFileLength(fileName: [*c]const u8) c_int; +pub extern fn GetFileExtension(fileName: [*c]const u8) [*c]const u8; +pub extern fn GetFileName(filePath: [*c]const u8) [*c]const u8; +pub extern fn GetFileNameWithoutExt(filePath: [*c]const u8) [*c]const u8; +pub extern fn GetDirectoryPath(filePath: [*c]const u8) [*c]const u8; +pub extern fn GetPrevDirectoryPath(dirPath: [*c]const u8) [*c]const u8; +pub extern fn GetWorkingDirectory() [*c]const u8; +pub extern fn GetApplicationDirectory() [*c]const u8; +pub extern fn GetDirectoryFiles(dirPath: [*c]const u8, count: [*c]c_int) [*c][*c]u8; +pub extern fn ClearDirectoryFiles() void; +pub extern fn ChangeDirectory(dir: [*c]const u8) bool; +pub extern fn IsFileDropped() bool; +pub extern fn GetDroppedFiles(count: [*c]c_int) [*c][*c]u8; +pub extern fn ClearDroppedFiles() void; +pub extern fn GetFileModTime(fileName: [*c]const u8) c_long; +pub extern fn CompressData(data: [*c]const u8, dataSize: c_int, compDataSize: [*c]c_int) [*c]u8; +pub extern fn DecompressData(compData: [*c]const u8, compDataSize: c_int, dataSize: [*c]c_int) [*c]u8; +pub extern fn EncodeDataBase64(data: [*c]const u8, dataSize: c_int, outputSize: [*c]c_int) [*c]u8; +pub extern fn DecodeDataBase64(data: [*c]const u8, outputSize: [*c]c_int) [*c]u8; +pub extern fn SaveStorageValue(position: c_uint, value: c_int) bool; +pub extern fn LoadStorageValue(position: c_uint) c_int; +pub extern fn OpenURL(url: [*c]const u8) void; +pub extern fn IsKeyPressed(key: c_int) bool; +pub extern fn IsKeyDown(key: c_int) bool; +pub extern fn IsKeyReleased(key: c_int) bool; +pub extern fn IsKeyUp(key: c_int) bool; +pub extern fn SetExitKey(key: c_int) void; +pub extern fn GetKeyPressed() c_int; +pub extern fn GetCharPressed() c_int; +pub extern fn IsGamepadAvailable(gamepad: c_int) bool; +pub extern fn GetGamepadName(gamepad: c_int) [*c]const u8; +pub extern fn IsGamepadButtonPressed(gamepad: c_int, button: c_int) bool; +pub extern fn IsGamepadButtonDown(gamepad: c_int, button: c_int) bool; +pub extern fn IsGamepadButtonReleased(gamepad: c_int, button: c_int) bool; +pub extern fn IsGamepadButtonUp(gamepad: c_int, button: c_int) bool; +pub extern fn GetGamepadButtonPressed() c_int; +pub extern fn GetGamepadAxisCount(gamepad: c_int) c_int; +pub extern fn GetGamepadAxisMovement(gamepad: c_int, axis: c_int) f32; +pub extern fn SetGamepadMappings(mappings: [*c]const u8) c_int; +pub extern fn IsMouseButtonPressed(button: c_int) bool; +pub extern fn IsMouseButtonDown(button: c_int) bool; +pub extern fn IsMouseButtonReleased(button: c_int) bool; +pub extern fn IsMouseButtonUp(button: c_int) bool; +pub extern fn GetMouseX() c_int; +pub extern fn GetMouseY() c_int; +pub extern fn GetMousePosition() Vector2; +pub extern fn GetMouseDelta() Vector2; +pub extern fn SetMousePosition(x: c_int, y: c_int) void; +pub extern fn SetMouseOffset(offsetX: c_int, offsetY: c_int) void; +pub extern fn SetMouseScale(scaleX: f32, scaleY: f32) void; +pub extern fn GetMouseWheelMove() f32; +pub extern fn SetMouseCursor(cursor: c_int) void; +pub extern fn GetTouchX() c_int; +pub extern fn GetTouchY() c_int; +pub extern fn GetTouchPosition(index: c_int) Vector2; +pub extern fn GetTouchPointId(index: c_int) c_int; +pub extern fn GetTouchPointCount() c_int; +pub extern fn SetGesturesEnabled(flags: c_uint) void; +pub extern fn IsGestureDetected(gesture: c_int) bool; +pub extern fn GetGestureDetected() c_int; +pub extern fn GetGestureHoldDuration() f32; +pub extern fn GetGestureDragVector() Vector2; +pub extern fn GetGestureDragAngle() f32; +pub extern fn GetGesturePinchVector() Vector2; +pub extern fn GetGesturePinchAngle() f32; +pub extern fn SetCameraMode(camera: Camera, mode: c_int) void; +pub extern fn UpdateCamera(camera: [*c]Camera) void; +pub extern fn SetCameraPanControl(keyPan: c_int) void; +pub extern fn SetCameraAltControl(keyAlt: c_int) void; +pub extern fn SetCameraSmoothZoomControl(keySmoothZoom: c_int) void; +pub extern fn SetCameraMoveControls(keyFront: c_int, keyBack: c_int, keyRight: c_int, keyLeft: c_int, keyUp: c_int, keyDown: c_int) void; +pub extern fn SetShapesTexture(texture: Texture2D, source: Rectangle) void; +pub extern fn DrawPixel(posX: c_int, posY: c_int, color: Color) void; +pub extern fn DrawPixelV(position: Vector2, color: Color) void; +pub extern fn DrawLine(startPosX: c_int, startPosY: c_int, endPosX: c_int, endPosY: c_int, color: Color) void; +pub extern fn DrawLineV(startPos: Vector2, endPos: Vector2, color: Color) void; +pub extern fn DrawLineEx(startPos: Vector2, endPos: Vector2, thick: f32, color: Color) void; +pub extern fn DrawLineBezier(startPos: Vector2, endPos: Vector2, thick: f32, color: Color) void; +pub extern fn DrawLineBezierQuad(startPos: Vector2, endPos: Vector2, controlPos: Vector2, thick: f32, color: Color) void; +pub extern fn DrawLineBezierCubic(startPos: Vector2, endPos: Vector2, startControlPos: Vector2, endControlPos: Vector2, thick: f32, color: Color) void; +pub extern fn DrawLineStrip(points: [*c]Vector2, pointCount: c_int, color: Color) void; +pub extern fn DrawCircle(centerX: c_int, centerY: c_int, radius: f32, color: Color) void; +pub extern fn DrawCircleSector(center: Vector2, radius: f32, startAngle: f32, endAngle: f32, segments: c_int, color: Color) void; +pub extern fn DrawCircleSectorLines(center: Vector2, radius: f32, startAngle: f32, endAngle: f32, segments: c_int, color: Color) void; +pub extern fn DrawCircleGradient(centerX: c_int, centerY: c_int, radius: f32, color1: Color, color2: Color) void; +pub extern fn DrawCircleV(center: Vector2, radius: f32, color: Color) void; +pub extern fn DrawCircleLines(centerX: c_int, centerY: c_int, radius: f32, color: Color) void; +pub extern fn DrawEllipse(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: Color) void; +pub extern fn DrawEllipseLines(centerX: c_int, centerY: c_int, radiusH: f32, radiusV: f32, color: Color) void; +pub extern fn DrawRing(center: Vector2, innerRadius: f32, outerRadius: f32, startAngle: f32, endAngle: f32, segments: c_int, color: Color) void; +pub extern fn DrawRingLines(center: Vector2, innerRadius: f32, outerRadius: f32, startAngle: f32, endAngle: f32, segments: c_int, color: Color) void; +pub extern fn DrawRectangle(posX: c_int, posY: c_int, width: c_int, height: c_int, color: Color) void; +pub extern fn DrawRectangleV(position: Vector2, size: Vector2, color: Color) void; +pub extern fn DrawRectangleRec(rec: Rectangle, color: Color) void; +pub extern fn DrawRectanglePro(rec: Rectangle, origin: Vector2, rotation: f32, color: Color) void; +pub extern fn DrawRectangleGradientV(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: Color, color2: Color) void; +pub extern fn DrawRectangleGradientH(posX: c_int, posY: c_int, width: c_int, height: c_int, color1: Color, color2: Color) void; +pub extern fn DrawRectangleGradientEx(rec: Rectangle, col1: Color, col2: Color, col3: Color, col4: Color) void; +pub extern fn DrawRectangleLines(posX: c_int, posY: c_int, width: c_int, height: c_int, color: Color) void; +pub extern fn DrawRectangleLinesEx(rec: Rectangle, lineThick: f32, color: Color) void; +pub extern fn DrawRectangleRounded(rec: Rectangle, roundness: f32, segments: c_int, color: Color) void; +pub extern fn DrawRectangleRoundedLines(rec: Rectangle, roundness: f32, segments: c_int, lineThick: f32, color: Color) void; +pub extern fn DrawTriangle(v1: Vector2, v2: Vector2, v3: Vector2, color: Color) void; +pub extern fn DrawTriangleLines(v1: Vector2, v2: Vector2, v3: Vector2, color: Color) void; +pub extern fn DrawTriangleFan(points: [*c]Vector2, pointCount: c_int, color: Color) void; +pub extern fn DrawTriangleStrip(points: [*c]Vector2, pointCount: c_int, color: Color) void; +pub extern fn DrawPoly(center: Vector2, sides: c_int, radius: f32, rotation: f32, color: Color) void; +pub extern fn DrawPolyLines(center: Vector2, sides: c_int, radius: f32, rotation: f32, color: Color) void; +pub extern fn DrawPolyLinesEx(center: Vector2, sides: c_int, radius: f32, rotation: f32, lineThick: f32, color: Color) void; +pub extern fn CheckCollisionRecs(rec1: Rectangle, rec2: Rectangle) bool; +pub extern fn CheckCollisionCircles(center1: Vector2, radius1: f32, center2: Vector2, radius2: f32) bool; +pub extern fn CheckCollisionCircleRec(center: Vector2, radius: f32, rec: Rectangle) bool; +pub extern fn CheckCollisionPointRec(point: Vector2, rec: Rectangle) bool; +pub extern fn CheckCollisionPointCircle(point: Vector2, center: Vector2, radius: f32) bool; +pub extern fn CheckCollisionPointTriangle(point: Vector2, p1: Vector2, p2: Vector2, p3: Vector2) bool; +pub extern fn CheckCollisionLines(startPos1: Vector2, endPos1: Vector2, startPos2: Vector2, endPos2: Vector2, collisionPoint: [*c]Vector2) bool; +pub extern fn CheckCollisionPointLine(point: Vector2, p1: Vector2, p2: Vector2, threshold: c_int) bool; +pub extern fn GetCollisionRec(rec1: Rectangle, rec2: Rectangle) Rectangle; +pub extern fn LoadImage(fileName: [*c]const u8) Image; +pub extern fn LoadImageRaw(fileName: [*c]const u8, width: c_int, height: c_int, format: c_int, headerSize: c_int) Image; +pub extern fn LoadImageAnim(fileName: [*c]const u8, frames: [*c]c_int) Image; +pub extern fn LoadImageFromMemory(fileType: [*c]const u8, fileData: [*c]const u8, dataSize: c_int) Image; +pub extern fn LoadImageFromTexture(texture: Texture2D) Image; +pub extern fn LoadImageFromScreen() Image; +pub extern fn UnloadImage(image: Image) void; +pub extern fn ExportImage(image: Image, fileName: [*c]const u8) bool; +pub extern fn ExportImageAsCode(image: Image, fileName: [*c]const u8) bool; +pub extern fn GenImageColor(width: c_int, height: c_int, color: Color) Image; +pub extern fn GenImageGradientV(width: c_int, height: c_int, top: Color, bottom: Color) Image; +pub extern fn GenImageGradientH(width: c_int, height: c_int, left: Color, right: Color) Image; +pub extern fn GenImageGradientRadial(width: c_int, height: c_int, density: f32, inner: Color, outer: Color) Image; +pub extern fn GenImageChecked(width: c_int, height: c_int, checksX: c_int, checksY: c_int, col1: Color, col2: Color) Image; +pub extern fn GenImageWhiteNoise(width: c_int, height: c_int, factor: f32) Image; +pub extern fn GenImageCellular(width: c_int, height: c_int, tileSize: c_int) Image; +pub extern fn ImageCopy(image: Image) Image; +pub extern fn ImageFromImage(image: Image, rec: Rectangle) Image; +pub extern fn ImageText(text: [*c]const u8, fontSize: c_int, color: Color) Image; +pub extern fn ImageTextEx(font: Font, text: [*c]const u8, fontSize: f32, spacing: f32, tint: Color) Image; +pub extern fn ImageFormat(image: [*c]Image, newFormat: c_int) void; +pub extern fn ImageToPOT(image: [*c]Image, fill: Color) void; +pub extern fn ImageCrop(image: [*c]Image, crop: Rectangle) void; +pub extern fn ImageAlphaCrop(image: [*c]Image, threshold: f32) void; +pub extern fn ImageAlphaClear(image: [*c]Image, color: Color, threshold: f32) void; +pub extern fn ImageAlphaMask(image: [*c]Image, alphaMask: Image) void; +pub extern fn ImageAlphaPremultiply(image: [*c]Image) void; +pub extern fn ImageResize(image: [*c]Image, newWidth: c_int, newHeight: c_int) void; +pub extern fn ImageResizeNN(image: [*c]Image, newWidth: c_int, newHeight: c_int) void; +pub extern fn ImageResizeCanvas(image: [*c]Image, newWidth: c_int, newHeight: c_int, offsetX: c_int, offsetY: c_int, fill: Color) void; +pub extern fn ImageMipmaps(image: [*c]Image) void; +pub extern fn ImageDither(image: [*c]Image, rBpp: c_int, gBpp: c_int, bBpp: c_int, aBpp: c_int) void; +pub extern fn ImageFlipVertical(image: [*c]Image) void; +pub extern fn ImageFlipHorizontal(image: [*c]Image) void; +pub extern fn ImageRotateCW(image: [*c]Image) void; +pub extern fn ImageRotateCCW(image: [*c]Image) void; +pub extern fn ImageColorTint(image: [*c]Image, color: Color) void; +pub extern fn ImageColorInvert(image: [*c]Image) void; +pub extern fn ImageColorGrayscale(image: [*c]Image) void; +pub extern fn ImageColorContrast(image: [*c]Image, contrast: f32) void; +pub extern fn ImageColorBrightness(image: [*c]Image, brightness: c_int) void; +pub extern fn ImageColorReplace(image: [*c]Image, color: Color, replace: Color) void; +pub extern fn LoadImageColors(image: Image) [*c]Color; +pub extern fn LoadImagePalette(image: Image, maxPaletteSize: c_int, colorCount: [*c]c_int) [*c]Color; +pub extern fn UnloadImageColors(colors: [*c]Color) void; +pub extern fn UnloadImagePalette(colors: [*c]Color) void; +pub extern fn GetImageAlphaBorder(image: Image, threshold: f32) Rectangle; +pub extern fn GetImageColor(image: Image, x: c_int, y: c_int) Color; +pub extern fn ImageClearBackground(dst: [*c]Image, color: Color) void; +pub extern fn ImageDrawPixel(dst: [*c]Image, posX: c_int, posY: c_int, color: Color) void; +pub extern fn ImageDrawPixelV(dst: [*c]Image, position: Vector2, color: Color) void; +pub extern fn ImageDrawLine(dst: [*c]Image, startPosX: c_int, startPosY: c_int, endPosX: c_int, endPosY: c_int, color: Color) void; +pub extern fn ImageDrawLineV(dst: [*c]Image, start: Vector2, end: Vector2, color: Color) void; +pub extern fn ImageDrawCircle(dst: [*c]Image, centerX: c_int, centerY: c_int, radius: c_int, color: Color) void; +pub extern fn ImageDrawCircleV(dst: [*c]Image, center: Vector2, radius: c_int, color: Color) void; +pub extern fn ImageDrawRectangle(dst: [*c]Image, posX: c_int, posY: c_int, width: c_int, height: c_int, color: Color) void; +pub extern fn ImageDrawRectangleV(dst: [*c]Image, position: Vector2, size: Vector2, color: Color) void; +pub extern fn ImageDrawRectangleRec(dst: [*c]Image, rec: Rectangle, color: Color) void; +pub extern fn ImageDrawRectangleLines(dst: [*c]Image, rec: Rectangle, thick: c_int, color: Color) void; +pub extern fn ImageDraw(dst: [*c]Image, src: Image, srcRec: Rectangle, dstRec: Rectangle, tint: Color) void; +pub extern fn ImageDrawText(dst: [*c]Image, text: [*c]const u8, posX: c_int, posY: c_int, fontSize: c_int, color: Color) void; +pub extern fn ImageDrawTextEx(dst: [*c]Image, font: Font, text: [*c]const u8, position: Vector2, fontSize: f32, spacing: f32, tint: Color) void; +pub extern fn LoadTexture(fileName: [*c]const u8) Texture2D; +pub extern fn LoadTextureFromImage(image: Image) Texture2D; +pub extern fn LoadTextureCubemap(image: Image, layout: c_int) TextureCubemap; +pub extern fn LoadRenderTexture(width: c_int, height: c_int) RenderTexture2D; +pub extern fn UnloadTexture(texture: Texture2D) void; +pub extern fn UnloadRenderTexture(target: RenderTexture2D) void; +pub extern fn UpdateTexture(texture: Texture2D, pixels: ?*const anyopaque) void; +pub extern fn UpdateTextureRec(texture: Texture2D, rec: Rectangle, pixels: ?*const anyopaque) void; +pub extern fn GenTextureMipmaps(texture: [*c]Texture2D) void; +pub extern fn SetTextureFilter(texture: Texture2D, filter: c_int) void; +pub extern fn SetTextureWrap(texture: Texture2D, wrap: c_int) void; +pub extern fn DrawTexture(texture: Texture2D, posX: c_int, posY: c_int, tint: Color) void; +pub extern fn DrawTextureV(texture: Texture2D, position: Vector2, tint: Color) void; +pub extern fn DrawTextureEx(texture: Texture2D, position: Vector2, rotation: f32, scale: f32, tint: Color) void; +pub extern fn DrawTextureRec(texture: Texture2D, source: Rectangle, position: Vector2, tint: Color) void; +pub extern fn DrawTextureQuad(texture: Texture2D, tiling: Vector2, offset: Vector2, quad: Rectangle, tint: Color) void; +pub extern fn DrawTextureTiled(texture: Texture2D, source: Rectangle, dest: Rectangle, origin: Vector2, rotation: f32, scale: f32, tint: Color) void; +pub extern fn DrawTexturePro(texture: Texture2D, source: Rectangle, dest: Rectangle, origin: Vector2, rotation: f32, tint: Color) void; +pub extern fn DrawTextureNPatch(texture: Texture2D, nPatchInfo: NPatchInfo, dest: Rectangle, origin: Vector2, rotation: f32, tint: Color) void; +pub extern fn DrawTexturePoly(texture: Texture2D, center: Vector2, points: [*c]Vector2, texcoords: [*c]Vector2, pointCount: c_int, tint: Color) void; +pub extern fn Fade(color: Color, alpha: f32) Color; +pub extern fn ColorToInt(color: Color) c_int; +pub extern fn ColorNormalize(color: Color) Vector4; +pub extern fn ColorFromNormalized(normalized: Vector4) Color; +pub extern fn ColorToHSV(color: Color) Vector3; +pub extern fn ColorFromHSV(hue: f32, saturation: f32, value: f32) Color; +pub extern fn ColorAlpha(color: Color, alpha: f32) Color; +pub extern fn ColorAlphaBlend(dst: Color, src: Color, tint: Color) Color; +pub extern fn GetColor(hexValue: c_uint) Color; +pub extern fn GetPixelColor(srcPtr: ?*anyopaque, format: c_int) Color; +pub extern fn SetPixelColor(dstPtr: ?*anyopaque, color: Color, format: c_int) void; +pub extern fn GetPixelDataSize(width: c_int, height: c_int, format: c_int) c_int; +pub extern fn GetFontDefault() Font; +pub extern fn LoadFont(fileName: [*c]const u8) Font; +pub extern fn LoadFontEx(fileName: [*c]const u8, fontSize: c_int, fontChars: [*c]c_int, glyphCount: c_int) Font; +pub extern fn LoadFontFromImage(image: Image, key: Color, firstChar: c_int) Font; +pub extern fn LoadFontFromMemory(fileType: [*c]const u8, fileData: [*c]const u8, dataSize: c_int, fontSize: c_int, fontChars: [*c]c_int, glyphCount: c_int) Font; +pub extern fn LoadFontData(fileData: [*c]const u8, dataSize: c_int, fontSize: c_int, fontChars: [*c]c_int, glyphCount: c_int, @"type": c_int) [*c]GlyphInfo; +pub extern fn GenImageFontAtlas(chars: [*c]const GlyphInfo, recs: [*c][*c]Rectangle, glyphCount: c_int, fontSize: c_int, padding: c_int, packMethod: c_int) Image; +pub extern fn UnloadFontData(chars: [*c]GlyphInfo, glyphCount: c_int) void; +pub extern fn UnloadFont(font: Font) void; +pub extern fn ExportFontAsCode(font: Font, fileName: [*c]const u8) bool; +pub extern fn DrawFPS(posX: c_int, posY: c_int) void; +pub extern fn DrawText(text: [*c]const u8, posX: c_int, posY: c_int, fontSize: c_int, color: Color) void; +pub extern fn DrawTextEx(font: Font, text: [*c]const u8, position: Vector2, fontSize: f32, spacing: f32, tint: Color) void; +pub extern fn DrawTextPro(font: Font, text: [*c]const u8, position: Vector2, origin: Vector2, rotation: f32, fontSize: f32, spacing: f32, tint: Color) void; +pub extern fn DrawTextCodepoint(font: Font, codepoint: c_int, position: Vector2, fontSize: f32, tint: Color) void; +pub extern fn DrawTextCodepoints(font: Font, codepoints: [*c]const c_int, count: c_int, position: Vector2, fontSize: f32, spacing: f32, tint: Color) void; +pub extern fn MeasureText(text: [*c]const u8, fontSize: c_int) c_int; +pub extern fn MeasureTextEx(font: Font, text: [*c]const u8, fontSize: f32, spacing: f32) Vector2; +pub extern fn GetGlyphIndex(font: Font, codepoint: c_int) c_int; +pub extern fn GetGlyphInfo(font: Font, codepoint: c_int) GlyphInfo; +pub extern fn GetGlyphAtlasRec(font: Font, codepoint: c_int) Rectangle; +pub extern fn LoadCodepoints(text: [*c]const u8, count: [*c]c_int) [*c]c_int; +pub extern fn UnloadCodepoints(codepoints: [*c]c_int) void; +pub extern fn GetCodepointCount(text: [*c]const u8) c_int; +pub extern fn GetCodepoint(text: [*c]const u8, bytesProcessed: [*c]c_int) c_int; +pub extern fn CodepointToUTF8(codepoint: c_int, byteSize: [*c]c_int) [*c]const u8; +pub extern fn TextCodepointsToUTF8(codepoints: [*c]const c_int, length: c_int) [*c]u8; +pub extern fn TextCopy(dst: [*c]u8, src: [*c]const u8) c_int; +pub extern fn TextIsEqual(text1: [*c]const u8, text2: [*c]const u8) bool; +pub extern fn TextLength(text: [*c]const u8) c_uint; +pub extern fn TextFormat(text: [*c]const u8, ...) [*c]const u8; +pub extern fn TextSubtext(text: [*c]const u8, position: c_int, length: c_int) [*c]const u8; +pub extern fn TextReplace(text: [*c]u8, replace: [*c]const u8, by: [*c]const u8) [*c]u8; +pub extern fn TextInsert(text: [*c]const u8, insert: [*c]const u8, position: c_int) [*c]u8; +pub extern fn TextJoin(textList: [*c][*c]const u8, count: c_int, delimiter: [*c]const u8) [*c]const u8; +pub extern fn TextSplit(text: [*c]const u8, delimiter: u8, count: [*c]c_int) [*c][*c]const u8; +pub extern fn TextAppend(text: [*c]u8, append: [*c]const u8, position: [*c]c_int) void; +pub extern fn TextFindIndex(text: [*c]const u8, find: [*c]const u8) c_int; +pub extern fn TextToUpper(text: [*c]const u8) [*c]const u8; +pub extern fn TextToLower(text: [*c]const u8) [*c]const u8; +pub extern fn TextToPascal(text: [*c]const u8) [*c]const u8; +pub extern fn TextToInteger(text: [*c]const u8) c_int; +pub extern fn DrawLine3D(startPos: Vector3, endPos: Vector3, color: Color) void; +pub extern fn DrawPoint3D(position: Vector3, color: Color) void; +pub extern fn DrawCircle3D(center: Vector3, radius: f32, rotationAxis: Vector3, rotationAngle: f32, color: Color) void; +pub extern fn DrawTriangle3D(v1: Vector3, v2: Vector3, v3: Vector3, color: Color) void; +pub extern fn DrawTriangleStrip3D(points: [*c]Vector3, pointCount: c_int, color: Color) void; +pub extern fn DrawCube(position: Vector3, width: f32, height: f32, length: f32, color: Color) void; +pub extern fn DrawCubeV(position: Vector3, size: Vector3, color: Color) void; +pub extern fn DrawCubeWires(position: Vector3, width: f32, height: f32, length: f32, color: Color) void; +pub extern fn DrawCubeWiresV(position: Vector3, size: Vector3, color: Color) void; +pub extern fn DrawCubeTexture(texture: Texture2D, position: Vector3, width: f32, height: f32, length: f32, color: Color) void; +pub extern fn DrawCubeTextureRec(texture: Texture2D, source: Rectangle, position: Vector3, width: f32, height: f32, length: f32, color: Color) void; +pub extern fn DrawSphere(centerPos: Vector3, radius: f32, color: Color) void; +pub extern fn DrawSphereEx(centerPos: Vector3, radius: f32, rings: c_int, slices: c_int, color: Color) void; +pub extern fn DrawSphereWires(centerPos: Vector3, radius: f32, rings: c_int, slices: c_int, color: Color) void; +pub extern fn DrawCylinder(position: Vector3, radiusTop: f32, radiusBottom: f32, height: f32, slices: c_int, color: Color) void; +pub extern fn DrawCylinderEx(startPos: Vector3, endPos: Vector3, startRadius: f32, endRadius: f32, sides: c_int, color: Color) void; +pub extern fn DrawCylinderWires(position: Vector3, radiusTop: f32, radiusBottom: f32, height: f32, slices: c_int, color: Color) void; +pub extern fn DrawCylinderWiresEx(startPos: Vector3, endPos: Vector3, startRadius: f32, endRadius: f32, sides: c_int, color: Color) void; +pub extern fn DrawPlane(centerPos: Vector3, size: Vector2, color: Color) void; +pub extern fn DrawRay(ray: Ray, color: Color) void; +pub extern fn DrawGrid(slices: c_int, spacing: f32) void; +pub extern fn LoadModel(fileName: [*c]const u8) Model; +pub extern fn LoadModelFromMesh(mesh: Mesh) Model; +pub extern fn UnloadModel(model: Model) void; +pub extern fn UnloadModelKeepMeshes(model: Model) void; +pub extern fn GetModelBoundingBox(model: Model) BoundingBox; +pub extern fn DrawModel(model: Model, position: Vector3, scale: f32, tint: Color) void; +pub extern fn DrawModelEx(model: Model, position: Vector3, rotationAxis: Vector3, rotationAngle: f32, scale: Vector3, tint: Color) void; +pub extern fn DrawModelWires(model: Model, position: Vector3, scale: f32, tint: Color) void; +pub extern fn DrawModelWiresEx(model: Model, position: Vector3, rotationAxis: Vector3, rotationAngle: f32, scale: Vector3, tint: Color) void; +pub extern fn DrawBoundingBox(box: BoundingBox, color: Color) void; +pub extern fn DrawBillboard(camera: Camera, texture: Texture2D, position: Vector3, size: f32, tint: Color) void; +pub extern fn DrawBillboardRec(camera: Camera, texture: Texture2D, source: Rectangle, position: Vector3, size: Vector2, tint: Color) void; +pub extern fn DrawBillboardPro(camera: Camera, texture: Texture2D, source: Rectangle, position: Vector3, up: Vector3, size: Vector2, origin: Vector2, rotation: f32, tint: Color) void; +pub extern fn UploadMesh(mesh: [*c]Mesh, dynamic: bool) void; +pub extern fn UpdateMeshBuffer(mesh: Mesh, index: c_int, data: ?*const anyopaque, dataSize: c_int, offset: c_int) void; +pub extern fn UnloadMesh(mesh: Mesh) void; +pub extern fn DrawMesh(mesh: Mesh, material: Material, transform: Matrix) void; +pub extern fn DrawMeshInstanced(mesh: Mesh, material: Material, transforms: [*c]const Matrix, instances: c_int) void; +pub extern fn ExportMesh(mesh: Mesh, fileName: [*c]const u8) bool; +pub extern fn GetMeshBoundingBox(mesh: Mesh) BoundingBox; +pub extern fn GenMeshTangents(mesh: [*c]Mesh) void; +pub extern fn GenMeshBinormals(mesh: [*c]Mesh) void; +pub extern fn GenMeshPoly(sides: c_int, radius: f32) Mesh; +pub extern fn GenMeshPlane(width: f32, length: f32, resX: c_int, resZ: c_int) Mesh; +pub extern fn GenMeshCube(width: f32, height: f32, length: f32) Mesh; +pub extern fn GenMeshSphere(radius: f32, rings: c_int, slices: c_int) Mesh; +pub extern fn GenMeshHemiSphere(radius: f32, rings: c_int, slices: c_int) Mesh; +pub extern fn GenMeshCylinder(radius: f32, height: f32, slices: c_int) Mesh; +pub extern fn GenMeshCone(radius: f32, height: f32, slices: c_int) Mesh; +pub extern fn GenMeshTorus(radius: f32, size: f32, radSeg: c_int, sides: c_int) Mesh; +pub extern fn GenMeshKnot(radius: f32, size: f32, radSeg: c_int, sides: c_int) Mesh; +pub extern fn GenMeshHeightmap(heightmap: Image, size: Vector3) Mesh; +pub extern fn GenMeshCubicmap(cubicmap: Image, cubeSize: Vector3) Mesh; +pub extern fn LoadMaterials(fileName: [*c]const u8, materialCount: [*c]c_int) [*c]Material; +pub extern fn LoadMaterialDefault() Material; +pub extern fn UnloadMaterial(material: Material) void; +pub extern fn SetMaterialTexture(material: [*c]Material, mapType: c_int, texture: Texture2D) void; +pub extern fn SetModelMeshMaterial(model: [*c]Model, meshId: c_int, materialId: c_int) void; +pub extern fn LoadModelAnimations(fileName: [*c]const u8, animCount: [*c]c_uint) [*c]ModelAnimation; +pub extern fn UpdateModelAnimation(model: Model, anim: ModelAnimation, frame: c_int) void; +pub extern fn UnloadModelAnimation(anim: ModelAnimation) void; +pub extern fn UnloadModelAnimations(animations: [*c]ModelAnimation, count: c_uint) void; +pub extern fn IsModelAnimationValid(model: Model, anim: ModelAnimation) bool; +pub extern fn CheckCollisionSpheres(center1: Vector3, radius1: f32, center2: Vector3, radius2: f32) bool; +pub extern fn CheckCollisionBoxes(box1: BoundingBox, box2: BoundingBox) bool; +pub extern fn CheckCollisionBoxSphere(box: BoundingBox, center: Vector3, radius: f32) bool; +pub extern fn GetRayCollisionSphere(ray: Ray, center: Vector3, radius: f32) RayCollision; +pub extern fn GetRayCollisionBox(ray: Ray, box: BoundingBox) RayCollision; +pub extern fn GetRayCollisionMesh(ray: Ray, mesh: Mesh, transform: Matrix) RayCollision; +pub extern fn GetRayCollisionTriangle(ray: Ray, p1: Vector3, p2: Vector3, p3: Vector3) RayCollision; +pub extern fn GetRayCollisionQuad(ray: Ray, p1: Vector3, p2: Vector3, p3: Vector3, p4: Vector3) RayCollision; +pub const AudioCallback = ?fn (?*anyopaque, c_uint) callconv(.C) void; +pub extern fn InitAudioDevice() void; +pub extern fn CloseAudioDevice() void; +pub extern fn IsAudioDeviceReady() bool; +pub extern fn SetMasterVolume(volume: f32) void; +pub extern fn LoadWave(fileName: [*c]const u8) Wave; +pub extern fn LoadWaveFromMemory(fileType: [*c]const u8, fileData: [*c]const u8, dataSize: c_int) Wave; +pub extern fn LoadSound(fileName: [*c]const u8) Sound; +pub extern fn LoadSoundFromWave(wave: Wave) Sound; +pub extern fn UpdateSound(sound: Sound, data: ?*const anyopaque, sampleCount: c_int) void; +pub extern fn UnloadWave(wave: Wave) void; +pub extern fn UnloadSound(sound: Sound) void; +pub extern fn ExportWave(wave: Wave, fileName: [*c]const u8) bool; +pub extern fn ExportWaveAsCode(wave: Wave, fileName: [*c]const u8) bool; +pub extern fn PlaySound(sound: Sound) void; +pub extern fn StopSound(sound: Sound) void; +pub extern fn PauseSound(sound: Sound) void; +pub extern fn ResumeSound(sound: Sound) void; +pub extern fn PlaySoundMulti(sound: Sound) void; +pub extern fn StopSoundMulti() void; +pub extern fn GetSoundsPlaying() c_int; +pub extern fn IsSoundPlaying(sound: Sound) bool; +pub extern fn SetSoundVolume(sound: Sound, volume: f32) void; +pub extern fn SetSoundPitch(sound: Sound, pitch: f32) void; +pub extern fn SetSoundPan(sound: Sound, pan: f32) void; +pub extern fn WaveCopy(wave: Wave) Wave; +pub extern fn WaveCrop(wave: [*c]Wave, initSample: c_int, finalSample: c_int) void; +pub extern fn WaveFormat(wave: [*c]Wave, sampleRate: c_int, sampleSize: c_int, channels: c_int) void; +pub extern fn LoadWaveSamples(wave: Wave) [*c]f32; +pub extern fn UnloadWaveSamples(samples: [*c]f32) void; +pub extern fn LoadMusicStream(fileName: [*c]const u8) Music; +pub extern fn LoadMusicStreamFromMemory(fileType: [*c]const u8, data: [*c]const u8, dataSize: c_int) Music; +pub extern fn UnloadMusicStream(music: Music) void; +pub extern fn PlayMusicStream(music: Music) void; +pub extern fn IsMusicStreamPlaying(music: Music) bool; +pub extern fn UpdateMusicStream(music: Music) void; +pub extern fn StopMusicStream(music: Music) void; +pub extern fn PauseMusicStream(music: Music) void; +pub extern fn ResumeMusicStream(music: Music) void; +pub extern fn SeekMusicStream(music: Music, position: f32) void; +pub extern fn SetMusicVolume(music: Music, volume: f32) void; +pub extern fn SetMusicPitch(music: Music, pitch: f32) void; +pub extern fn SetMusicPan(music: Music, pan: f32) void; +pub extern fn GetMusicTimeLength(music: Music) f32; +pub extern fn GetMusicTimePlayed(music: Music) f32; +pub extern fn LoadAudioStream(sampleRate: c_uint, sampleSize: c_uint, channels: c_uint) AudioStream; +pub extern fn UnloadAudioStream(stream: AudioStream) void; +pub extern fn UpdateAudioStream(stream: AudioStream, data: ?*const anyopaque, frameCount: c_int) void; +pub extern fn IsAudioStreamProcessed(stream: AudioStream) bool; +pub extern fn PlayAudioStream(stream: AudioStream) void; +pub extern fn PauseAudioStream(stream: AudioStream) void; +pub extern fn ResumeAudioStream(stream: AudioStream) void; +pub extern fn IsAudioStreamPlaying(stream: AudioStream) bool; +pub extern fn StopAudioStream(stream: AudioStream) void; +pub extern fn SetAudioStreamVolume(stream: AudioStream, volume: f32) void; +pub extern fn SetAudioStreamPitch(stream: AudioStream, pitch: f32) void; +pub extern fn SetAudioStreamPan(stream: AudioStream, pan: f32) void; +pub extern fn SetAudioStreamBufferSizeDefault(size: c_int) void; +pub extern fn SetAudioStreamCallback(stream: AudioStream, callback: AudioCallback) void; +pub extern fn AttachAudioStreamProcessor(stream: AudioStream, processor: AudioCallback) void; +pub extern fn DetachAudioStreamProcessor(stream: AudioStream, processor: AudioCallback) void; +pub const struct_GuiStyleProp = extern struct { + controlId: c_ushort, + propertyId: c_ushort, + propertyValue: c_int, +}; +pub const GuiStyleProp = struct_GuiStyleProp; +pub const GUI_STATE_NORMAL: c_int = 0; +pub const GUI_STATE_FOCUSED: c_int = 1; +pub const GUI_STATE_PRESSED: c_int = 2; +pub const GUI_STATE_DISABLED: c_int = 3; +pub const GuiControlState = c_uint; +pub const GUI_TEXT_ALIGN_LEFT: c_int = 0; +pub const GUI_TEXT_ALIGN_CENTER: c_int = 1; +pub const GUI_TEXT_ALIGN_RIGHT: c_int = 2; +pub const GuiTextAlignment = c_uint; +pub const DEFAULT: c_int = 0; +pub const LABEL: c_int = 1; +pub const BUTTON: c_int = 2; +pub const TOGGLE: c_int = 3; +pub const SLIDER: c_int = 4; +pub const PROGRESSBAR: c_int = 5; +pub const CHECKBOX: c_int = 6; +pub const COMBOBOX: c_int = 7; +pub const DROPDOWNBOX: c_int = 8; +pub const TEXTBOX: c_int = 9; +pub const VALUEBOX: c_int = 10; +pub const SPINNER: c_int = 11; +pub const LISTVIEW: c_int = 12; +pub const COLORPICKER: c_int = 13; +pub const SCROLLBAR: c_int = 14; +pub const STATUSBAR: c_int = 15; +pub const GuiControl = c_uint; +pub const BORDER_COLOR_NORMAL: c_int = 0; +pub const BASE_COLOR_NORMAL: c_int = 1; +pub const TEXT_COLOR_NORMAL: c_int = 2; +pub const BORDER_COLOR_FOCUSED: c_int = 3; +pub const BASE_COLOR_FOCUSED: c_int = 4; +pub const TEXT_COLOR_FOCUSED: c_int = 5; +pub const BORDER_COLOR_PRESSED: c_int = 6; +pub const BASE_COLOR_PRESSED: c_int = 7; +pub const TEXT_COLOR_PRESSED: c_int = 8; +pub const BORDER_COLOR_DISABLED: c_int = 9; +pub const BASE_COLOR_DISABLED: c_int = 10; +pub const TEXT_COLOR_DISABLED: c_int = 11; +pub const BORDER_WIDTH: c_int = 12; +pub const TEXT_PADDING: c_int = 13; +pub const TEXT_ALIGNMENT: c_int = 14; +pub const RESERVED: c_int = 15; +pub const GuiControlProperty = c_uint; +pub const TEXT_SIZE: c_int = 16; +pub const TEXT_SPACING: c_int = 17; +pub const LINE_COLOR: c_int = 18; +pub const BACKGROUND_COLOR: c_int = 19; +pub const GuiDefaultProperty = c_uint; +pub const GROUP_PADDING: c_int = 16; +pub const GuiToggleProperty = c_uint; +pub const SLIDER_WIDTH: c_int = 16; +pub const SLIDER_PADDING: c_int = 17; +pub const GuiSliderProperty = c_uint; +pub const PROGRESS_PADDING: c_int = 16; +pub const GuiProgressBarProperty = c_uint; +pub const CHECK_PADDING: c_int = 16; +pub const GuiCheckBoxProperty = c_uint; +pub const COMBO_BUTTON_WIDTH: c_int = 16; +pub const COMBO_BUTTON_PADDING: c_int = 17; +pub const GuiComboBoxProperty = c_uint; +pub const ARROW_PADDING: c_int = 16; +pub const DROPDOWN_ITEMS_PADDING: c_int = 17; +pub const GuiDropdownBoxProperty = c_uint; +pub const TEXT_INNER_PADDING: c_int = 16; +pub const TEXT_LINES_PADDING: c_int = 17; +pub const COLOR_SELECTED_FG: c_int = 18; +pub const COLOR_SELECTED_BG: c_int = 19; +pub const GuiTextBoxProperty = c_uint; +pub const SPIN_BUTTON_WIDTH: c_int = 16; +pub const SPIN_BUTTON_PADDING: c_int = 17; +pub const GuiSpinnerProperty = c_uint; +pub const ARROWS_SIZE: c_int = 16; +pub const ARROWS_VISIBLE: c_int = 17; +pub const SCROLL_SLIDER_PADDING: c_int = 18; +pub const SCROLL_SLIDER_SIZE: c_int = 19; +pub const SCROLL_PADDING: c_int = 20; +pub const SCROLL_SPEED: c_int = 21; +pub const GuiScrollBarProperty = c_uint; +pub const SCROLLBAR_LEFT_SIDE: c_int = 0; +pub const SCROLLBAR_RIGHT_SIDE: c_int = 1; +pub const GuiScrollBarSide = c_uint; +pub const LIST_ITEMS_HEIGHT: c_int = 16; +pub const LIST_ITEMS_PADDING: c_int = 17; +pub const SCROLLBAR_WIDTH: c_int = 18; +pub const SCROLLBAR_SIDE: c_int = 19; +pub const GuiListViewProperty = c_uint; +pub const COLOR_SELECTOR_SIZE: c_int = 16; +pub const HUEBAR_WIDTH: c_int = 17; +pub const HUEBAR_PADDING: c_int = 18; +pub const HUEBAR_SELECTOR_HEIGHT: c_int = 19; +pub const HUEBAR_SELECTOR_OVERFLOW: c_int = 20; +pub const GuiColorPickerProperty = c_uint; +pub export fn GuiEnable() void { + guiState = @bitCast(c_uint, GUI_STATE_NORMAL); +} +pub export fn GuiDisable() void { + guiState = @bitCast(c_uint, GUI_STATE_DISABLED); +} +pub export fn GuiLock() void { + guiLocked = @as(c_int, 1) != 0; +} +pub export fn GuiUnlock() void { + guiLocked = @as(c_int, 0) != 0; +} +pub export fn GuiIsLocked() bool { + return guiLocked; +} +pub export fn GuiFade(arg_alpha: f32) void { + var alpha = arg_alpha; + if (alpha < 0.0) { + alpha = 0.0; + } else if (alpha > 1.0) { + alpha = 1.0; + } + guiAlpha = alpha; +} +pub export fn GuiSetState(arg_state: c_int) void { + var state = arg_state; + guiState = @bitCast(c_uint, state); +} +pub export fn GuiGetState() c_int { + return @bitCast(c_int, guiState); +} +pub export fn GuiSetFont(arg_font: Font) void { + var font = arg_font; + if (font.texture.id > @bitCast(c_uint, @as(c_int, 0))) { + if (!guiStyleLoaded) { + GuiLoadStyleDefault(); + } + guiFont = font; + GuiSetStyle(DEFAULT, TEXT_SIZE, font.baseSize); + } +} +pub export fn GuiGetFont() Font { + return guiFont; +} +pub export fn GuiSetStyle(arg_control: c_int, arg_property: c_int, arg_value: c_int) void { + var control = arg_control; + var property = arg_property; + var value = arg_value; + if (!guiStyleLoaded) { + GuiLoadStyleDefault(); + } + guiStyle[@intCast(c_uint, (control * (@as(c_int, 16) + @as(c_int, 8))) + property)] = @bitCast(c_uint, value); + if ((control == @as(c_int, 0)) and (property < @as(c_int, 16))) { + { + var i: c_int = 1; + while (i < @as(c_int, 16)) : (i += 1) { + guiStyle[@intCast(c_uint, (i * (@as(c_int, 16) + @as(c_int, 8))) + property)] = @bitCast(c_uint, value); + } + } + } +} +pub export fn GuiGetStyle(arg_control: c_int, arg_property: c_int) c_int { + var control = arg_control; + var property = arg_property; + if (!guiStyleLoaded) { + GuiLoadStyleDefault(); + } + return @bitCast(c_int, guiStyle[@intCast(c_uint, (control * (@as(c_int, 16) + @as(c_int, 8))) + property)]); +} +pub export fn GuiWindowBox(arg_bounds: Rectangle, arg_title: [*c]const u8) bool { + var bounds = arg_bounds; + var title = arg_title; + var clicked: bool = @as(c_int, 0) != 0; + var statusBarHeight: c_int = @as(c_int, 22) + (@as(c_int, 2) * GuiGetStyle(STATUSBAR, BORDER_WIDTH)); + statusBarHeight += @import("std").zig.c_translation.signedRemainder(statusBarHeight, @as(c_int, 2)); + var statusBar: Rectangle = Rectangle{ + .x = bounds.x, + .y = bounds.y, + .width = bounds.width, + .height = @intToFloat(f32, statusBarHeight), + }; + if (bounds.height < (@intToFloat(f32, statusBarHeight) * 2.0)) { + bounds.height = @intToFloat(f32, statusBarHeight) * 2.0; + } + var windowPanel: Rectangle = Rectangle{ + .x = bounds.x, + .y = (bounds.y + @intToFloat(f32, statusBarHeight)) - @intToFloat(f32, @as(c_int, 1)), + .width = bounds.width, + .height = bounds.height - @intToFloat(f32, statusBarHeight), + }; + var closeButtonRec: Rectangle = Rectangle{ + .x = ((statusBar.x + statusBar.width) - @intToFloat(f32, GuiGetStyle(STATUSBAR, BORDER_WIDTH))) - @intToFloat(f32, @as(c_int, 20)), + .y = (statusBar.y + (@intToFloat(f32, statusBarHeight) / 2.0)) - (18.0 / 2.0), + .width = @intToFloat(f32, @as(c_int, 18)), + .height = @intToFloat(f32, @as(c_int, 18)), + }; + GuiStatusBar(statusBar, title); + GuiPanel(windowPanel); + var tempBorderWidth: c_int = GuiGetStyle(BUTTON, BORDER_WIDTH); + var tempTextAlignment: c_int = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, BORDER_WIDTH, @as(c_int, 1)); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER); + clicked = GuiButton(closeButtonRec, GuiIconText(RICON_CROSS_SMALL, null)); + GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlignment); + return clicked; +} +pub export fn GuiGroupBox(arg_bounds: Rectangle, arg_text: [*c]const u8) void { + var bounds = arg_bounds; + var text = arg_text; + var state: GuiControlState = guiState; + GuiDrawRectangle(Rectangle{ + .x = bounds.x, + .y = bounds.y, + .width = @intToFloat(f32, @as(c_int, 1)), + .height = bounds.height, + }, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, if (state == @bitCast(c_uint, GUI_STATE_DISABLED)) BORDER_COLOR_DISABLED else LINE_COLOR))), guiAlpha)); + GuiDrawRectangle(Rectangle{ + .x = bounds.x, + .y = (bounds.y + bounds.height) - @intToFloat(f32, @as(c_int, 1)), + .width = bounds.width, + .height = @intToFloat(f32, @as(c_int, 1)), + }, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, if (state == @bitCast(c_uint, GUI_STATE_DISABLED)) BORDER_COLOR_DISABLED else LINE_COLOR))), guiAlpha)); + GuiDrawRectangle(Rectangle{ + .x = (bounds.x + bounds.width) - @intToFloat(f32, @as(c_int, 1)), + .y = bounds.y, + .width = @intToFloat(f32, @as(c_int, 1)), + .height = bounds.height, + }, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, if (state == @bitCast(c_uint, GUI_STATE_DISABLED)) BORDER_COLOR_DISABLED else LINE_COLOR))), guiAlpha)); + GuiLine(Rectangle{ + .x = bounds.x, + .y = bounds.y, + .width = bounds.width, + .height = @intToFloat(f32, @as(c_int, 1)), + }, text); +} +pub export fn GuiLine(arg_bounds: Rectangle, arg_text: [*c]const u8) void { + var bounds = arg_bounds; + var text = arg_text; + var state: GuiControlState = guiState; + var color: Color = Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, if (state == @bitCast(c_uint, GUI_STATE_DISABLED)) BORDER_COLOR_DISABLED else LINE_COLOR))), guiAlpha); + if (text == @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + GuiDrawRectangle(Rectangle{ + .x = bounds.x, + .y = bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2))), + .width = bounds.width, + .height = @intToFloat(f32, @as(c_int, 1)), + }, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, color); + } else { + var textBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + textBounds.width = @intToFloat(f32, GetTextWidth(text)); + textBounds.height = @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)); + textBounds.x = bounds.x + @intToFloat(f32, @as(c_int, 10)); + textBounds.y = bounds.y - (@intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)) / @intToFloat(f32, @as(c_int, 2))); + GuiDrawRectangle(Rectangle{ + .x = bounds.x, + .y = bounds.y, + .width = @intToFloat(f32, @as(c_int, 10) - @as(c_int, 2)), + .height = @intToFloat(f32, @as(c_int, 1)), + }, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, color); + GuiLabel(textBounds, text); + GuiDrawRectangle(Rectangle{ + .x = ((bounds.x + @intToFloat(f32, @as(c_int, 10))) + textBounds.width) + @intToFloat(f32, @as(c_int, 4)), + .y = bounds.y, + .width = ((bounds.width - textBounds.width) - @intToFloat(f32, @as(c_int, 10))) - @intToFloat(f32, @as(c_int, 4)), + .height = @intToFloat(f32, @as(c_int, 1)), + }, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, color); + } +} +pub export fn GuiPanel(arg_bounds: Rectangle) void { + var bounds = arg_bounds; + var state: GuiControlState = guiState; + GuiDrawRectangle(bounds, @as(c_int, 1), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, if (state == @bitCast(c_uint, GUI_STATE_DISABLED)) BORDER_COLOR_DISABLED else LINE_COLOR))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, if (state == @bitCast(c_uint, GUI_STATE_DISABLED)) BASE_COLOR_DISABLED else BACKGROUND_COLOR))), guiAlpha)); +} +pub export fn GuiScrollPanel(arg_bounds: Rectangle, arg_content: Rectangle, arg_scroll: [*c]Vector2) Rectangle { + var bounds = arg_bounds; + var content = arg_content; + var scroll = arg_scroll; + var state: GuiControlState = guiState; + var scrollPos: Vector2 = Vector2{ + .x = 0.0, + .y = 0.0, + }; + if (scroll != @ptrCast([*c]Vector2, @alignCast(@import("std").meta.alignment(Vector2), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + scrollPos = scroll.*; + } + var hasHorizontalScrollBar: bool = (if (content.width > (bounds.width - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH)))) @as(c_int, 1) else @as(c_int, 0)) != 0; + var hasVerticalScrollBar: bool = (if (content.height > (bounds.height - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH)))) @as(c_int, 1) else @as(c_int, 0)) != 0; + if (!hasHorizontalScrollBar) { + hasHorizontalScrollBar = (if ((@as(c_int, @boolToInt(hasVerticalScrollBar)) != 0) and (content.width > ((bounds.width - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH))) - @intToFloat(f32, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH))))) @as(c_int, 1) else @as(c_int, 0)) != 0; + } + if (!hasVerticalScrollBar) { + hasVerticalScrollBar = (if ((@as(c_int, @boolToInt(hasHorizontalScrollBar)) != 0) and (content.height > ((bounds.height - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH))) - @intToFloat(f32, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH))))) @as(c_int, 1) else @as(c_int, 0)) != 0; + } + const horizontalScrollBarWidth: c_int = if (@as(c_int, @boolToInt(hasHorizontalScrollBar)) != 0) GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) else @as(c_int, 0); + const verticalScrollBarWidth: c_int = if (@as(c_int, @boolToInt(hasVerticalScrollBar)) != 0) GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH) else @as(c_int, 0); + const horizontalScrollBar: Rectangle = Rectangle{ + .x = (if (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE) bounds.x + @intToFloat(f32, verticalScrollBarWidth) else bounds.x) + @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)), + .y = ((bounds.y + bounds.height) - @intToFloat(f32, horizontalScrollBarWidth)) - @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)), + .width = (bounds.width - @intToFloat(f32, verticalScrollBarWidth)) - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH)), + .height = @intToFloat(f32, horizontalScrollBarWidth), + }; + const verticalScrollBar: Rectangle = Rectangle{ + .x = if (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE) bounds.x + @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)) else ((bounds.x + bounds.width) - @intToFloat(f32, verticalScrollBarWidth)) - @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)), + .y = bounds.y + @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)), + .width = @intToFloat(f32, verticalScrollBarWidth), + .height = (bounds.height - @intToFloat(f32, horizontalScrollBarWidth)) - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH)), + }; + var view: Rectangle = if (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE) Rectangle{ + .x = (bounds.x + @intToFloat(f32, verticalScrollBarWidth)) + @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)), + .y = bounds.y + @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)), + .width = (bounds.width - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH))) - @intToFloat(f32, verticalScrollBarWidth), + .height = (bounds.height - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH))) - @intToFloat(f32, horizontalScrollBarWidth), + } else Rectangle{ + .x = bounds.x + @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)), + .y = bounds.y + @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)), + .width = (bounds.width - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH))) - @intToFloat(f32, verticalScrollBarWidth), + .height = (bounds.height - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH))) - @intToFloat(f32, horizontalScrollBarWidth), + }; + if (view.width > content.width) { + view.width = content.width; + } + if (view.height > content.height) { + view.height = content.height; + } + const horizontalMin: f32 = if (@as(c_int, @boolToInt(hasHorizontalScrollBar)) != 0) (if (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE) @intToFloat(f32, -verticalScrollBarWidth) else @intToFloat(f32, @as(c_int, 0))) - @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)) else (if (@intToFloat(f32, GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE)) == @intToFloat(f32, SCROLLBAR_LEFT_SIDE)) @intToFloat(f32, -verticalScrollBarWidth) else @intToFloat(f32, @as(c_int, 0))) - @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)); + const horizontalMax: f32 = if (@as(c_int, @boolToInt(hasHorizontalScrollBar)) != 0) (((content.width - bounds.width) + @intToFloat(f32, verticalScrollBarWidth)) + @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH))) - (if (@intToFloat(f32, GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE)) == @intToFloat(f32, SCROLLBAR_LEFT_SIDE)) @intToFloat(f32, verticalScrollBarWidth) else @intToFloat(f32, @as(c_int, 0))) else @intToFloat(f32, -GuiGetStyle(DEFAULT, BORDER_WIDTH)); + const verticalMin: f32 = if (@as(c_int, @boolToInt(hasVerticalScrollBar)) != 0) @intToFloat(f32, -GuiGetStyle(DEFAULT, BORDER_WIDTH)) else @intToFloat(f32, -GuiGetStyle(DEFAULT, BORDER_WIDTH)); + const verticalMax: f32 = if (@as(c_int, @boolToInt(hasVerticalScrollBar)) != 0) ((content.height - bounds.height) + @intToFloat(f32, horizontalScrollBarWidth)) + @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)) else @intToFloat(f32, -GuiGetStyle(DEFAULT, BORDER_WIDTH)); + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if (CheckCollisionPointRec(mousePoint, bounds)) { + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + if (hasHorizontalScrollBar) { + if (IsKeyDown(KEY_RIGHT)) { + scrollPos.x -= @intToFloat(f32, GuiGetStyle(SCROLLBAR, SCROLL_SPEED)); + } + if (IsKeyDown(KEY_LEFT)) { + scrollPos.x += @intToFloat(f32, GuiGetStyle(SCROLLBAR, SCROLL_SPEED)); + } + } + if (hasVerticalScrollBar) { + if (IsKeyDown(KEY_DOWN)) { + scrollPos.y -= @intToFloat(f32, GuiGetStyle(SCROLLBAR, SCROLL_SPEED)); + } + if (IsKeyDown(KEY_UP)) { + scrollPos.y += @intToFloat(f32, GuiGetStyle(SCROLLBAR, SCROLL_SPEED)); + } + } + var wheelMove: f32 = GetMouseWheelMove(); + if ((@as(c_int, @boolToInt(hasHorizontalScrollBar)) != 0) and ((@as(c_int, @boolToInt(IsKeyDown(KEY_LEFT_SHIFT))) != 0) or (@as(c_int, @boolToInt(IsKeyDown(KEY_RIGHT_SHIFT))) != 0))) { + scrollPos.x += wheelMove * @intToFloat(f32, @as(c_int, 20)); + } else { + scrollPos.y += wheelMove * @intToFloat(f32, @as(c_int, 20)); + } + } + } + if (scrollPos.x > -horizontalMin) { + scrollPos.x = -horizontalMin; + } + if (scrollPos.x < -horizontalMax) { + scrollPos.x = -horizontalMax; + } + if (scrollPos.y > -verticalMin) { + scrollPos.y = -verticalMin; + } + if (scrollPos.y < -verticalMax) { + scrollPos.y = -verticalMax; + } + GuiDrawRectangle(bounds, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, BACKGROUND_COLOR)))); + const slider: c_int = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); + if (hasHorizontalScrollBar) { + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, @floatToInt(c_int, (((bounds.width - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH))) - @intToFloat(f32, verticalScrollBarWidth)) / @intToFloat(f32, @floatToInt(c_int, content.width))) * @intToFloat(f32, (@floatToInt(c_int, bounds.width) - (@as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH))) - verticalScrollBarWidth))); + scrollPos.x = @intToFloat(f32, -GuiScrollBar(horizontalScrollBar, @floatToInt(c_int, -scrollPos.x), @floatToInt(c_int, horizontalMin), @floatToInt(c_int, horizontalMax))); + } + if (hasVerticalScrollBar) { + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, @floatToInt(c_int, (((bounds.height - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH))) - @intToFloat(f32, horizontalScrollBarWidth)) / @intToFloat(f32, @floatToInt(c_int, content.height))) * @intToFloat(f32, (@floatToInt(c_int, bounds.height) - (@as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH))) - horizontalScrollBarWidth))); + scrollPos.y = @intToFloat(f32, -GuiScrollBar(verticalScrollBar, @floatToInt(c_int, -scrollPos.y), @floatToInt(c_int, verticalMin), @floatToInt(c_int, verticalMax))); + } + if ((@as(c_int, @boolToInt(hasHorizontalScrollBar)) != 0) and (@as(c_int, @boolToInt(hasVerticalScrollBar)) != 0)) { + var corner: Rectangle = Rectangle{ + .x = if (GuiGetStyle(LISTVIEW, SCROLLBAR_SIDE) == SCROLLBAR_LEFT_SIDE) (bounds.x + @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH))) + @intToFloat(f32, @as(c_int, 2)) else (horizontalScrollBar.x + horizontalScrollBar.width) + @intToFloat(f32, @as(c_int, 2)), + .y = (verticalScrollBar.y + verticalScrollBar.height) + @intToFloat(f32, @as(c_int, 2)), + .width = @intToFloat(f32, horizontalScrollBarWidth) - @intToFloat(f32, @as(c_int, 4)), + .height = @intToFloat(f32, verticalScrollBarWidth) - @intToFloat(f32, @as(c_int, 4)), + }; + GuiDrawRectangle(corner, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + } + GuiDrawRectangle(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }); + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, slider); + if (scroll != @ptrCast([*c]Vector2, @alignCast(@import("std").meta.alignment(Vector2), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + scroll.* = scrollPos; + } + return view; +} +pub export fn GuiLabel(arg_bounds: Rectangle, arg_text: [*c]const u8) void { + var bounds = arg_bounds; + var text = arg_text; + var state: GuiControlState = guiState; + GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LABEL, if (state == @bitCast(c_uint, GUI_STATE_DISABLED)) TEXT_COLOR_DISABLED else TEXT_COLOR_NORMAL))), guiAlpha)); +} +pub export fn GuiButton(arg_bounds: Rectangle, arg_text: [*c]const u8) bool { + var bounds = arg_bounds; + var text = arg_text; + var state: GuiControlState = guiState; + var pressed: bool = @as(c_int, 0) != 0; + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if (CheckCollisionPointRec(mousePoint, bounds)) { + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + if (IsMouseButtonReleased(MOUSE_BUTTON_LEFT)) { + pressed = @as(c_int, 1) != 0; + } + } + } + GuiDrawRectangle(bounds, GuiGetStyle(BUTTON, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(BUTTON, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(BUTTON, @bitCast(c_int, @bitCast(c_uint, BASE) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + GuiDrawText(text, GetTextBounds(BUTTON, bounds), GuiGetStyle(BUTTON, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(BUTTON, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + return pressed; +} +pub export fn GuiLabelButton(arg_bounds: Rectangle, arg_text: [*c]const u8) bool { + var bounds = arg_bounds; + var text = arg_text; + var state: GuiControlState = guiState; + var pressed: bool = @as(c_int, 0) != 0; + var textWidth: f32 = MeasureTextEx(guiFont, text, @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)), @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SPACING))).x; + if (bounds.width < textWidth) { + bounds.width = textWidth; + } + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if (CheckCollisionPointRec(mousePoint, bounds)) { + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + if (IsMouseButtonReleased(MOUSE_BUTTON_LEFT)) { + pressed = @as(c_int, 1) != 0; + } + } + } + GuiDrawText(text, GetTextBounds(LABEL, bounds), GuiGetStyle(LABEL, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LABEL, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + return pressed; +} +pub export fn GuiToggle(arg_bounds: Rectangle, arg_text: [*c]const u8, arg_active: bool) bool { + var bounds = arg_bounds; + var text = arg_text; + var active = arg_active; + var state: GuiControlState = guiState; + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if (CheckCollisionPointRec(mousePoint, bounds)) { + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + } else if (IsMouseButtonReleased(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_NORMAL); + active = !active; + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + } + } + if (state == @bitCast(c_uint, GUI_STATE_NORMAL)) { + GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TOGGLE, @bitCast(c_int, if (@as(c_int, @boolToInt(active)) != 0) @bitCast(c_uint, BORDER_COLOR_PRESSED) else @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TOGGLE, @bitCast(c_int, if (@as(c_int, @boolToInt(active)) != 0) @bitCast(c_uint, BASE_COLOR_PRESSED) else @bitCast(c_uint, BASE) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TOGGLE, @bitCast(c_int, if (@as(c_int, @boolToInt(active)) != 0) @bitCast(c_uint, TEXT_COLOR_PRESSED) else @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + } else { + GuiDrawRectangle(bounds, GuiGetStyle(TOGGLE, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TOGGLE, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TOGGLE, @bitCast(c_int, @bitCast(c_uint, BASE) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + GuiDrawText(text, GetTextBounds(TOGGLE, bounds), GuiGetStyle(TOGGLE, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TOGGLE, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + } + return active; +} +pub export fn GuiToggleGroup(arg_bounds: Rectangle, arg_text: [*c]const u8, arg_active: c_int) c_int { + var bounds = arg_bounds; + var text = arg_text; + var active = arg_active; + var initBoundsX: f32 = bounds.x; + var rows: [32]c_int = [1]c_int{ + 0, + } ++ [1]c_int{0} ** 31; + var itemCount: c_int = 0; + var items: [*c][*c]const u8 = GuiTextSplit(text, &itemCount, @ptrCast([*c]c_int, @alignCast(@import("std").meta.alignment(c_int), &rows))); + var prevRow: c_int = rows[@intCast(c_uint, @as(c_int, 0))]; + { + var i: c_int = 0; + while (i < itemCount) : (i += 1) { + if (prevRow != rows[@intCast(c_uint, i)]) { + bounds.x = initBoundsX; + bounds.y += bounds.height + @intToFloat(f32, GuiGetStyle(TOGGLE, GROUP_PADDING)); + prevRow = rows[@intCast(c_uint, i)]; + } + if (i == active) { + _ = GuiToggle(bounds, (blk: { + const tmp = i; + if (tmp >= 0) break :blk items + @intCast(usize, tmp) else break :blk items - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*, @as(c_int, 1) != 0); + } else if (@as(c_int, @boolToInt(GuiToggle(bounds, (blk: { + const tmp = i; + if (tmp >= 0) break :blk items + @intCast(usize, tmp) else break :blk items - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*, @as(c_int, 0) != 0))) == @as(c_int, 1)) { + active = i; + } + bounds.x += bounds.width + @intToFloat(f32, GuiGetStyle(TOGGLE, GROUP_PADDING)); + } + } + return active; +} +pub export fn GuiCheckBox(arg_bounds: Rectangle, arg_text: [*c]const u8, arg_checked: bool) bool { + var bounds = arg_bounds; + var text = arg_text; + var checked = arg_checked; + var state: GuiControlState = guiState; + var textBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + if (text != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + textBounds.width = @intToFloat(f32, GetTextWidth(text)); + textBounds.height = @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)); + textBounds.x = (bounds.x + bounds.width) + @intToFloat(f32, GuiGetStyle(CHECKBOX, TEXT_PADDING)); + textBounds.y = (bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @divTrunc(GuiGetStyle(DEFAULT, TEXT_SIZE), @as(c_int, 2))); + if (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == GUI_TEXT_ALIGN_LEFT) { + textBounds.x = (bounds.x - textBounds.width) - @intToFloat(f32, GuiGetStyle(CHECKBOX, TEXT_PADDING)); + } + } + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + var totalBounds: Rectangle = Rectangle{ + .x = if (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == GUI_TEXT_ALIGN_LEFT) textBounds.x else bounds.x, + .y = bounds.y, + .width = (bounds.width + textBounds.width) + @intToFloat(f32, GuiGetStyle(CHECKBOX, TEXT_PADDING)), + .height = bounds.height, + }; + if (CheckCollisionPointRec(mousePoint, totalBounds)) { + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + if (IsMouseButtonReleased(MOUSE_BUTTON_LEFT)) { + checked = !checked; + } + } + } + GuiDrawRectangle(bounds, GuiGetStyle(CHECKBOX, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(CHECKBOX, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }); + if (checked) { + var check: Rectangle = Rectangle{ + .x = (bounds.x + @intToFloat(f32, GuiGetStyle(CHECKBOX, BORDER_WIDTH))) + @intToFloat(f32, GuiGetStyle(CHECKBOX, CHECK_PADDING)), + .y = (bounds.y + @intToFloat(f32, GuiGetStyle(CHECKBOX, BORDER_WIDTH))) + @intToFloat(f32, GuiGetStyle(CHECKBOX, CHECK_PADDING)), + .width = bounds.width - @intToFloat(f32, @as(c_int, 2) * (GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING))), + .height = bounds.height - @intToFloat(f32, @as(c_int, 2) * (GuiGetStyle(CHECKBOX, BORDER_WIDTH) + GuiGetStyle(CHECKBOX, CHECK_PADDING))), + }; + GuiDrawRectangle(check, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(CHECKBOX, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + } + GuiDrawText(text, textBounds, if (GuiGetStyle(CHECKBOX, TEXT_ALIGNMENT) == GUI_TEXT_ALIGN_RIGHT) GUI_TEXT_ALIGN_LEFT else GUI_TEXT_ALIGN_RIGHT, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LABEL, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + return checked; +} +pub export fn GuiComboBox(arg_bounds: Rectangle, arg_text: [*c]const u8, arg_active: c_int) c_int { + var bounds = arg_bounds; + var text = arg_text; + var active = arg_active; + var state: GuiControlState = guiState; + bounds.width -= @intToFloat(f32, GuiGetStyle(COMBOBOX, COMBO_BUTTON_WIDTH) + GuiGetStyle(COMBOBOX, COMBO_BUTTON_PADDING)); + var selector: Rectangle = Rectangle{ + .x = (bounds.x + bounds.width) + @intToFloat(f32, GuiGetStyle(COMBOBOX, COMBO_BUTTON_PADDING)), + .y = bounds.y, + .width = @intToFloat(f32, GuiGetStyle(COMBOBOX, COMBO_BUTTON_WIDTH)), + .height = bounds.height, + }; + var itemCount: c_int = 0; + var items: [*c][*c]const u8 = GuiTextSplit(text, &itemCount, null); + if (active < @as(c_int, 0)) { + active = 0; + } else if (active > (itemCount - @as(c_int, 1))) { + active = itemCount - @as(c_int, 1); + } + if (((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) and (itemCount > @as(c_int, 1))) { + var mousePoint: Vector2 = GetMousePosition(); + if ((@as(c_int, @boolToInt(CheckCollisionPointRec(mousePoint, bounds))) != 0) or (@as(c_int, @boolToInt(CheckCollisionPointRec(mousePoint, selector))) != 0)) { + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) { + active += @as(c_int, 1); + if (active >= itemCount) { + active = 0; + } + } + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + } + } + GuiDrawRectangle(bounds, GuiGetStyle(COMBOBOX, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COMBOBOX, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COMBOBOX, @bitCast(c_int, @bitCast(c_uint, BASE) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + GuiDrawText((blk: { + const tmp = active; + if (tmp >= 0) break :blk items + @intCast(usize, tmp) else break :blk items - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*, GetTextBounds(COMBOBOX, bounds), GuiGetStyle(COMBOBOX, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COMBOBOX, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + var tempBorderWidth: c_int = GuiGetStyle(BUTTON, BORDER_WIDTH); + var tempTextAlign: c_int = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, BORDER_WIDTH, @as(c_int, 1)); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER); + _ = GuiButton(selector, TextFormat("%i/%i", active + @as(c_int, 1), itemCount)); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlign); + GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); + return active; +} +pub export fn GuiDropdownBox(arg_bounds: Rectangle, arg_text: [*c]const u8, arg_active: [*c]c_int, arg_editMode: bool) bool { + var bounds = arg_bounds; + var text = arg_text; + var active = arg_active; + var editMode = arg_editMode; + var state: GuiControlState = guiState; + var itemSelected: c_int = active.*; + var itemFocused: c_int = -@as(c_int, 1); + var itemCount: c_int = 0; + var items: [*c][*c]const u8 = GuiTextSplit(text, &itemCount, null); + var boundsOpen: Rectangle = bounds; + boundsOpen.height = @intToFloat(f32, itemCount + @as(c_int, 1)) * (bounds.height + @intToFloat(f32, GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_PADDING))); + var itemBounds: Rectangle = bounds; + var pressed: bool = @as(c_int, 0) != 0; + if (((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and ((@as(c_int, @boolToInt(editMode)) != 0) or !guiLocked)) and (itemCount > @as(c_int, 1))) { + var mousePoint: Vector2 = GetMousePosition(); + if (editMode) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + if (!CheckCollisionPointRec(mousePoint, boundsOpen)) { + if ((@as(c_int, @boolToInt(IsMouseButtonPressed(MOUSE_BUTTON_LEFT))) != 0) or (@as(c_int, @boolToInt(IsMouseButtonReleased(MOUSE_BUTTON_LEFT))) != 0)) { + pressed = @as(c_int, 1) != 0; + } + } + if ((@as(c_int, @boolToInt(CheckCollisionPointRec(mousePoint, bounds))) != 0) and (@as(c_int, @boolToInt(IsMouseButtonPressed(MOUSE_BUTTON_LEFT))) != 0)) { + pressed = @as(c_int, 1) != 0; + } + { + var i: c_int = 0; + while (i < itemCount) : (i += 1) { + itemBounds.y += bounds.height + @intToFloat(f32, GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_PADDING)); + if (CheckCollisionPointRec(mousePoint, itemBounds)) { + itemFocused = i; + if (IsMouseButtonReleased(MOUSE_BUTTON_LEFT)) { + itemSelected = i; + pressed = @as(c_int, 1) != 0; + } + break; + } + } + } + itemBounds = bounds; + } else { + if (CheckCollisionPointRec(mousePoint, bounds)) { + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) { + pressed = @as(c_int, 1) != 0; + state = @bitCast(c_uint, GUI_STATE_PRESSED); + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + } + } + } + if (editMode) { + GuiPanel(boundsOpen); + } + GuiDrawRectangle(bounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DROPDOWNBOX, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DROPDOWNBOX, @bitCast(c_int, @bitCast(c_uint, BASE) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + GuiDrawText((blk: { + const tmp = itemSelected; + if (tmp >= 0) break :blk items + @intCast(usize, tmp) else break :blk items - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*, GetTextBounds(DEFAULT, bounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DROPDOWNBOX, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + if (editMode) { + { + var i: c_int = 0; + while (i < itemCount) : (i += 1) { + itemBounds.y += bounds.height + @intToFloat(f32, GuiGetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_PADDING)); + if (i == itemSelected) { + GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_PRESSED))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DROPDOWNBOX, BASE_COLOR_PRESSED))), guiAlpha)); + GuiDrawText((blk: { + const tmp = i; + if (tmp >= 0) break :blk items + @intCast(usize, tmp) else break :blk items - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_PRESSED))), guiAlpha)); + } else if (i == itemFocused) { + GuiDrawRectangle(itemBounds, GuiGetStyle(DROPDOWNBOX, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DROPDOWNBOX, BORDER_COLOR_FOCUSED))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DROPDOWNBOX, BASE_COLOR_FOCUSED))), guiAlpha)); + GuiDrawText((blk: { + const tmp = i; + if (tmp >= 0) break :blk items + @intCast(usize, tmp) else break :blk items - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_FOCUSED))), guiAlpha)); + } else { + GuiDrawText((blk: { + const tmp = i; + if (tmp >= 0) break :blk items + @intCast(usize, tmp) else break :blk items - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(DROPDOWNBOX, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DROPDOWNBOX, TEXT_COLOR_NORMAL))), guiAlpha)); + } + } + } + } + GuiDrawText("#120#", Rectangle{ + .x = (bounds.x + bounds.width) - @intToFloat(f32, GuiGetStyle(DROPDOWNBOX, ARROW_PADDING)), + .y = (bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @as(c_int, 6)), + .width = @intToFloat(f32, @as(c_int, 10)), + .height = @intToFloat(f32, @as(c_int, 10)), + }, GUI_TEXT_ALIGN_CENTER, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DROPDOWNBOX, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + active.* = itemSelected; + return pressed; +} +pub export fn GuiSpinner(arg_bounds: Rectangle, arg_text: [*c]const u8, arg_value: [*c]c_int, arg_minValue: c_int, arg_maxValue: c_int, arg_editMode: bool) bool { + var bounds = arg_bounds; + var text = arg_text; + var value = arg_value; + var minValue = arg_minValue; + var maxValue = arg_maxValue; + var editMode = arg_editMode; + var state: GuiControlState = guiState; + var pressed: bool = @as(c_int, 0) != 0; + var tempValue: c_int = value.*; + var spinner: Rectangle = Rectangle{ + .x = (bounds.x + @intToFloat(f32, GuiGetStyle(SPINNER, SPIN_BUTTON_WIDTH))) + @intToFloat(f32, GuiGetStyle(SPINNER, SPIN_BUTTON_PADDING)), + .y = bounds.y, + .width = bounds.width - @intToFloat(f32, @as(c_int, 2) * (GuiGetStyle(SPINNER, SPIN_BUTTON_WIDTH) + GuiGetStyle(SPINNER, SPIN_BUTTON_PADDING))), + .height = bounds.height, + }; + var leftButtonBound: Rectangle = Rectangle{ + .x = bounds.x, + .y = bounds.y, + .width = @intToFloat(f32, GuiGetStyle(SPINNER, SPIN_BUTTON_WIDTH)), + .height = bounds.height, + }; + var rightButtonBound: Rectangle = Rectangle{ + .x = (bounds.x + bounds.width) - @intToFloat(f32, GuiGetStyle(SPINNER, SPIN_BUTTON_WIDTH)), + .y = bounds.y, + .width = @intToFloat(f32, GuiGetStyle(SPINNER, SPIN_BUTTON_WIDTH)), + .height = bounds.height, + }; + var textBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + if (text != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + textBounds.width = @intToFloat(f32, GetTextWidth(text)); + textBounds.height = @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)); + textBounds.x = (bounds.x + bounds.width) + @intToFloat(f32, GuiGetStyle(SPINNER, TEXT_PADDING)); + textBounds.y = (bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @divTrunc(GuiGetStyle(DEFAULT, TEXT_SIZE), @as(c_int, 2))); + if (GuiGetStyle(SPINNER, TEXT_ALIGNMENT) == GUI_TEXT_ALIGN_LEFT) { + textBounds.x = (bounds.x - textBounds.width) - @intToFloat(f32, GuiGetStyle(SPINNER, TEXT_PADDING)); + } + } + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if (CheckCollisionPointRec(mousePoint, bounds)) { + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + } + } + if (!editMode) { + if (tempValue < minValue) { + tempValue = minValue; + } + if (tempValue > maxValue) { + tempValue = maxValue; + } + } + pressed = GuiValueBox(spinner, null, &tempValue, minValue, maxValue, editMode); + var tempBorderWidth: c_int = GuiGetStyle(BUTTON, BORDER_WIDTH); + var tempTextAlign: c_int = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, BORDER_WIDTH, GuiGetStyle(SPINNER, BORDER_WIDTH)); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER); + if (GuiButton(leftButtonBound, GuiIconText(RICON_ARROW_LEFT_FILL, null))) { + tempValue -= 1; + } + if (GuiButton(rightButtonBound, GuiIconText(RICON_ARROW_RIGHT_FILL, null))) { + tempValue += 1; + } + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, tempTextAlign); + GuiSetStyle(BUTTON, BORDER_WIDTH, tempBorderWidth); + GuiDrawText(text, textBounds, if (GuiGetStyle(SPINNER, TEXT_ALIGNMENT) == GUI_TEXT_ALIGN_RIGHT) GUI_TEXT_ALIGN_LEFT else GUI_TEXT_ALIGN_RIGHT, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LABEL, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + value.* = tempValue; + return pressed; +} +pub export fn GuiValueBox(arg_bounds: Rectangle, arg_text: [*c]const u8, arg_value: [*c]c_int, arg_minValue: c_int, arg_maxValue: c_int, arg_editMode: bool) bool { + var bounds = arg_bounds; + var text = arg_text; + var value = arg_value; + var minValue = arg_minValue; + var maxValue = arg_maxValue; + var editMode = arg_editMode; + var state: GuiControlState = guiState; + var pressed: bool = @as(c_int, 0) != 0; + var textValue: [33]u8 = "\x00"[0..1].* ++ [1]u8{0} ** 32; + _ = sprintf(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &textValue)), "%i", value.*); + var textBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + if (text != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + textBounds.width = @intToFloat(f32, GetTextWidth(text)); + textBounds.height = @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)); + textBounds.x = (bounds.x + bounds.width) + @intToFloat(f32, GuiGetStyle(VALUEBOX, TEXT_PADDING)); + textBounds.y = (bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @divTrunc(GuiGetStyle(DEFAULT, TEXT_SIZE), @as(c_int, 2))); + if (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == GUI_TEXT_ALIGN_LEFT) { + textBounds.x = (bounds.x - textBounds.width) - @intToFloat(f32, GuiGetStyle(VALUEBOX, TEXT_PADDING)); + } + } + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + var valueHasChanged: bool = @as(c_int, 0) != 0; + if (editMode) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + var keyCount: c_int = @bitCast(c_int, @truncate(c_uint, strlen(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &textValue))))); + if (keyCount < @as(c_int, 32)) { + if (@intToFloat(f32, GetTextWidth(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &textValue)))) < bounds.width) { + var key: c_int = GetCharPressed(); + if ((key >= @as(c_int, 48)) and (key <= @as(c_int, 57))) { + textValue[@intCast(c_uint, keyCount)] = @bitCast(u8, @truncate(i8, key)); + keyCount += 1; + valueHasChanged = @as(c_int, 1) != 0; + } + } + } + if (keyCount > @as(c_int, 0)) { + if (IsKeyPressed(KEY_BACKSPACE)) { + keyCount -= 1; + textValue[@intCast(c_uint, keyCount)] = '\x00'; + if (keyCount < @as(c_int, 0)) { + keyCount = 0; + } + valueHasChanged = @as(c_int, 1) != 0; + } + } + if (valueHasChanged) { + value.* = TextToInteger(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &textValue))); + } + if ((@as(c_int, @boolToInt(IsKeyPressed(KEY_ENTER))) != 0) or (!CheckCollisionPointRec(mousePoint, bounds) and (@as(c_int, @boolToInt(IsMouseButtonPressed(MOUSE_BUTTON_LEFT))) != 0))) { + pressed = @as(c_int, 1) != 0; + } + } else { + if (value.* > maxValue) { + value.* = maxValue; + } else if (value.* < minValue) { + value.* = minValue; + } + if (CheckCollisionPointRec(mousePoint, bounds)) { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) { + pressed = @as(c_int, 1) != 0; + } + } + } + } + var baseColor: Color = Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }; + if (state == @bitCast(c_uint, GUI_STATE_PRESSED)) { + baseColor = GetColor(@bitCast(c_uint, GuiGetStyle(VALUEBOX, BASE_COLOR_PRESSED))); + } else if (state == @bitCast(c_uint, GUI_STATE_DISABLED)) { + baseColor = GetColor(@bitCast(c_uint, GuiGetStyle(VALUEBOX, BASE_COLOR_DISABLED))); + } + GuiDrawRectangle(bounds, GuiGetStyle(VALUEBOX, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(VALUEBOX, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), baseColor); + GuiDrawText(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &textValue)), GetTextBounds(VALUEBOX, bounds), GUI_TEXT_ALIGN_CENTER, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(VALUEBOX, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + if (editMode) { + var cursor: Rectangle = Rectangle{ + .x = ((bounds.x + @intToFloat(f32, @divTrunc(GetTextWidth(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &textValue))), @as(c_int, 2)))) + (bounds.width / @intToFloat(f32, @as(c_int, 2)))) + @intToFloat(f32, @as(c_int, 2)), + .y = bounds.y + @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(VALUEBOX, BORDER_WIDTH)), + .width = @intToFloat(f32, @as(c_int, 4)), + .height = bounds.height - @intToFloat(f32, @as(c_int, 4) * GuiGetStyle(VALUEBOX, BORDER_WIDTH)), + }; + GuiDrawRectangle(cursor, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(VALUEBOX, BORDER_COLOR_PRESSED))), guiAlpha)); + } + GuiDrawText(text, textBounds, if (GuiGetStyle(VALUEBOX, TEXT_ALIGNMENT) == GUI_TEXT_ALIGN_RIGHT) GUI_TEXT_ALIGN_LEFT else GUI_TEXT_ALIGN_RIGHT, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LABEL, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + return pressed; +} +pub export fn GuiTextBox(arg_bounds: Rectangle, arg_text: [*c]u8, arg_textSize: c_int, arg_editMode: bool) bool { + var bounds = arg_bounds; + var text = arg_text; + var textSize = arg_textSize; + var editMode = arg_editMode; + var state: GuiControlState = guiState; + var pressed: bool = @as(c_int, 0) != 0; + var cursor: Rectangle = Rectangle{ + .x = ((bounds.x + @intToFloat(f32, GuiGetStyle(TEXTBOX, TEXT_PADDING))) + @intToFloat(f32, GetTextWidth(text))) + @intToFloat(f32, @as(c_int, 2)), + .y = (bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)), + .width = @intToFloat(f32, @as(c_int, 4)), + .height = @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)) * @intToFloat(f32, @as(c_int, 2)), + }; + if (cursor.height > bounds.height) { + cursor.height = bounds.height - @intToFloat(f32, GuiGetStyle(TEXTBOX, BORDER_WIDTH) * @as(c_int, 2)); + } + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if (editMode) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + var key: c_int = GetCharPressed(); + var keyCount: c_int = @bitCast(c_int, @truncate(c_uint, strlen(text))); + if (keyCount < (textSize - @as(c_int, 1))) { + var maxWidth: f32 = bounds.width - @intToFloat(f32, GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING) * @as(c_int, 2)); + if ((@intToFloat(f32, GetTextWidth(text)) < (maxWidth - @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)))) and (key >= @as(c_int, 32))) { + var byteSize: c_int = 0; + var textUTF8: [*c]const u8 = CodepointToUTF8(key, &byteSize); + { + var i: c_int = 0; + while (i < byteSize) : (i += 1) { + (blk: { + const tmp = keyCount; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).* = (blk: { + const tmp = i; + if (tmp >= 0) break :blk textUTF8 + @intCast(usize, tmp) else break :blk textUTF8 - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*; + keyCount += 1; + } + } + (blk: { + const tmp = keyCount; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).* = '\x00'; + } + } + if (keyCount > @as(c_int, 0)) { + if (IsKeyPressed(KEY_BACKSPACE)) { + keyCount -= 1; + (blk: { + const tmp = keyCount; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).* = '\x00'; + if (keyCount < @as(c_int, 0)) { + keyCount = 0; + } + } + } + if ((@as(c_int, @boolToInt(IsKeyPressed(KEY_ENTER))) != 0) or (!CheckCollisionPointRec(mousePoint, bounds) and (@as(c_int, @boolToInt(IsMouseButtonPressed(MOUSE_BUTTON_LEFT))) != 0))) { + pressed = @as(c_int, 1) != 0; + } + var textAlignment: c_int = GuiGetStyle(TEXTBOX, TEXT_ALIGNMENT); + if (textAlignment == GUI_TEXT_ALIGN_CENTER) { + cursor.x = ((bounds.x + @intToFloat(f32, @divTrunc(GetTextWidth(text), @as(c_int, 2)))) + (bounds.width / @intToFloat(f32, @as(c_int, 2)))) + @intToFloat(f32, @as(c_int, 1)); + } else if (textAlignment == GUI_TEXT_ALIGN_RIGHT) { + cursor.x = (bounds.x + bounds.width) - @intToFloat(f32, GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING)); + } + } else { + if (CheckCollisionPointRec(mousePoint, bounds)) { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) { + pressed = @as(c_int, 1) != 0; + } + } + } + } + if (state == @bitCast(c_uint, GUI_STATE_PRESSED)) { + GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, BASE_COLOR_PRESSED))), guiAlpha)); + } else if (state == @bitCast(c_uint, GUI_STATE_DISABLED)) { + GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, BASE_COLOR_DISABLED))), guiAlpha)); + } else { + GuiDrawRectangle(bounds, @as(c_int, 1), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }); + } + GuiDrawText(text, GetTextBounds(TEXTBOX, bounds), GuiGetStyle(TEXTBOX, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + if (editMode) { + GuiDrawRectangle(cursor, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED))), guiAlpha)); + } + return pressed; +} +pub export fn GuiTextBoxMulti(arg_bounds: Rectangle, arg_text: [*c]u8, arg_textSize: c_int, arg_editMode: bool) bool { + var bounds = arg_bounds; + var text = arg_text; + var textSize = arg_textSize; + var editMode = arg_editMode; + var state: GuiControlState = guiState; + var pressed: bool = @as(c_int, 0) != 0; + var textAreaBounds: Rectangle = Rectangle{ + .x = (bounds.x + @intToFloat(f32, GuiGetStyle(TEXTBOX, BORDER_WIDTH))) + @intToFloat(f32, GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING)), + .y = (bounds.y + @intToFloat(f32, GuiGetStyle(TEXTBOX, BORDER_WIDTH))) + @intToFloat(f32, GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING)), + .width = bounds.width - @intToFloat(f32, @as(c_int, 2) * (GuiGetStyle(TEXTBOX, BORDER_WIDTH) + GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING))), + .height = bounds.height - @intToFloat(f32, @as(c_int, 2) * (GuiGetStyle(TEXTBOX, BORDER_WIDTH) + GuiGetStyle(TEXTBOX, TEXT_INNER_PADDING))), + }; + var cursor: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = @intToFloat(f32, -@as(c_int, 1)), + .width = @intToFloat(f32, @as(c_int, 4)), + .height = @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)) + @intToFloat(f32, @as(c_int, 2)), + }; + var scaleFactor: f32 = @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)) / @intToFloat(f32, guiFont.baseSize); + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if (editMode) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + var codepoint: c_int = GetCharPressed(); + var textLength: c_int = @bitCast(c_int, @truncate(c_uint, strlen(text))); + if (textLength < (textSize - @as(c_int, 1))) { + if (IsKeyPressed(KEY_ENTER)) { + (blk: { + const tmp = textLength; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).* = '\n'; + textLength += 1; + } else if (codepoint >= @as(c_int, 32)) { + var charUTF8Length: c_int = 0; + var charEncoded: [*c]const u8 = CodepointToUTF8(codepoint, &charUTF8Length); + _ = memcpy(@ptrCast(?*anyopaque, text + @bitCast(usize, @intCast(isize, textLength))), @ptrCast(?*const anyopaque, charEncoded), @bitCast(c_ulong, @as(c_long, charUTF8Length))); + textLength += charUTF8Length; + } + } + if (textLength > @as(c_int, 0)) { + if (IsKeyPressed(KEY_BACKSPACE)) { + if (@bitCast(c_int, @as(c_uint, @bitCast(u8, (blk: { + const tmp = textLength - @as(c_int, 1); + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*))) < @as(c_int, 127)) { + textLength -= 1; + (blk: { + const tmp = textLength; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).* = '\x00'; + } else { + var charUTF8Length: c_int = 0; + while ((@bitCast(c_int, @as(c_uint, @bitCast(u8, (blk: { + const tmp = (textLength - @as(c_int, 1)) - charUTF8Length; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*))) & @as(c_int, 64)) == @as(c_int, 0)) { + charUTF8Length += 1; + } + textLength -= charUTF8Length + @as(c_int, 1); + (blk: { + const tmp = textLength; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).* = '\x00'; + } + } + } + if (!CheckCollisionPointRec(mousePoint, bounds) and (@as(c_int, @boolToInt(IsMouseButtonPressed(MOUSE_BUTTON_LEFT))) != 0)) { + pressed = @as(c_int, 1) != 0; + } + } else { + if (CheckCollisionPointRec(mousePoint, bounds)) { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) { + pressed = @as(c_int, 1) != 0; + } + } + } + } + if (state == @bitCast(c_uint, GUI_STATE_PRESSED)) { + GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, BASE_COLOR_PRESSED))), guiAlpha)); + } else if (state == @bitCast(c_uint, GUI_STATE_DISABLED)) { + GuiDrawRectangle(bounds, GuiGetStyle(TEXTBOX, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, BASE_COLOR_DISABLED))), guiAlpha)); + } else { + GuiDrawRectangle(bounds, @as(c_int, 1), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }); + } + var wrapMode: c_int = 1; + var cursorPos: Vector2 = Vector2{ + .x = textAreaBounds.x, + .y = textAreaBounds.y, + }; + { + var i: c_int = 0; + var codepointLength: c_int = 0; + while (@bitCast(c_int, @as(c_uint, (blk: { + const tmp = i; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*)) != @as(c_int, '\x00')) : (i += codepointLength) { + var codepoint: c_int = GetCodepoint(text + @bitCast(usize, @intCast(isize, i)), &codepointLength); + var index_1: c_int = GetGlyphIndex(guiFont, codepoint); + var atlasRec: Rectangle = (blk: { + const tmp = index_1; + if (tmp >= 0) break :blk guiFont.recs + @intCast(usize, tmp) else break :blk guiFont.recs - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*; + var glyphInfo: GlyphInfo = (blk: { + const tmp = index_1; + if (tmp >= 0) break :blk guiFont.glyphs + @intCast(usize, tmp) else break :blk guiFont.glyphs - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*; + if ((codepointLength == @as(c_int, 1)) and (codepoint == @as(c_int, '\n'))) { + cursorPos.y += (@intToFloat(f32, guiFont.baseSize) * scaleFactor) + @intToFloat(f32, GuiGetStyle(TEXTBOX, TEXT_LINES_PADDING)); + cursorPos.x = textAreaBounds.x; + } else { + if (wrapMode == @as(c_int, 1)) { + var glyphWidth: c_int = 0; + if (glyphInfo.advanceX != @as(c_int, 0)) { + glyphWidth += glyphInfo.advanceX; + } else { + glyphWidth += @floatToInt(i32, atlasRec.width + @intToFloat(f32, glyphInfo.offsetX)); + } + if ((cursorPos.x + (@intToFloat(f32, glyphWidth) * scaleFactor)) > (textAreaBounds.x + textAreaBounds.width)) { + cursorPos.y += (@intToFloat(f32, guiFont.baseSize) * scaleFactor) + @intToFloat(f32, GuiGetStyle(TEXTBOX, TEXT_LINES_PADDING)); + cursorPos.x = textAreaBounds.x; + } + } else if (wrapMode == @as(c_int, 2)) {} + DrawTextCodepoint(guiFont, codepoint, cursorPos, @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + var glyphWidth: c_int = 0; + if (glyphInfo.advanceX != @as(c_int, 0)) { + glyphWidth += glyphInfo.advanceX; + } else { + glyphWidth += @floatToInt(i32, atlasRec.width + @intToFloat(f32, glyphInfo.offsetX)); + } + cursorPos.x += (@intToFloat(f32, glyphWidth) * scaleFactor) + @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SPACING)); + } + } + } + cursor.x = cursorPos.x; + cursor.y = cursorPos.y; + if (editMode) { + GuiDrawRectangle(cursor, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(TEXTBOX, BORDER_COLOR_PRESSED))), guiAlpha)); + } + return pressed; +} +pub export fn GuiSlider(arg_bounds: Rectangle, arg_textLeft: [*c]const u8, arg_textRight: [*c]const u8, arg_value: f32, arg_minValue: f32, arg_maxValue: f32) f32 { + var bounds = arg_bounds; + var textLeft = arg_textLeft; + var textRight = arg_textRight; + var value = arg_value; + var minValue = arg_minValue; + var maxValue = arg_maxValue; + return GuiSliderPro(bounds, textLeft, textRight, value, minValue, maxValue, GuiGetStyle(SLIDER, SLIDER_WIDTH)); +} +pub export fn GuiSliderBar(arg_bounds: Rectangle, arg_textLeft: [*c]const u8, arg_textRight: [*c]const u8, arg_value: f32, arg_minValue: f32, arg_maxValue: f32) f32 { + var bounds = arg_bounds; + var textLeft = arg_textLeft; + var textRight = arg_textRight; + var value = arg_value; + var minValue = arg_minValue; + var maxValue = arg_maxValue; + return GuiSliderPro(bounds, textLeft, textRight, value, minValue, maxValue, @as(c_int, 0)); +} +pub export fn GuiProgressBar(arg_bounds: Rectangle, arg_textLeft: [*c]const u8, arg_textRight: [*c]const u8, arg_value: f32, arg_minValue: f32, arg_maxValue: f32) f32 { + var bounds = arg_bounds; + var textLeft = arg_textLeft; + var textRight = arg_textRight; + var value = arg_value; + var minValue = arg_minValue; + var maxValue = arg_maxValue; + var state: GuiControlState = guiState; + var progress: Rectangle = Rectangle{ + .x = bounds.x + @intToFloat(f32, GuiGetStyle(PROGRESSBAR, BORDER_WIDTH)), + .y = (bounds.y + @intToFloat(f32, GuiGetStyle(PROGRESSBAR, BORDER_WIDTH))) + @intToFloat(f32, GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING)), + .width = @intToFloat(f32, @as(c_int, 0)), + .height = (bounds.height - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(PROGRESSBAR, BORDER_WIDTH))) - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(PROGRESSBAR, PROGRESS_PADDING)), + }; + if (state != @bitCast(c_uint, GUI_STATE_DISABLED)) { + progress.width = (value / (maxValue - minValue)) * (bounds.width - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(PROGRESSBAR, BORDER_WIDTH))); + } + GuiDrawRectangle(bounds, GuiGetStyle(PROGRESSBAR, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(PROGRESSBAR, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }); + if ((state == @bitCast(c_uint, GUI_STATE_NORMAL)) or (state == @bitCast(c_uint, GUI_STATE_PRESSED))) { + GuiDrawRectangle(progress, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(PROGRESSBAR, BASE_COLOR_PRESSED))), guiAlpha)); + } else if (state == @bitCast(c_uint, GUI_STATE_FOCUSED)) { + GuiDrawRectangle(progress, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(PROGRESSBAR, TEXT_COLOR_FOCUSED))), guiAlpha)); + } + if (textLeft != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + var textBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + textBounds.width = @intToFloat(f32, GetTextWidth(textLeft)); + textBounds.height = @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)); + textBounds.x = (bounds.x - textBounds.width) - @intToFloat(f32, GuiGetStyle(PROGRESSBAR, TEXT_PADDING)); + textBounds.y = (bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @divTrunc(GuiGetStyle(DEFAULT, TEXT_SIZE), @as(c_int, 2))); + GuiDrawText(textLeft, textBounds, GUI_TEXT_ALIGN_RIGHT, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(PROGRESSBAR, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + } + if (textRight != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + var textBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + textBounds.width = @intToFloat(f32, GetTextWidth(textRight)); + textBounds.height = @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)); + textBounds.x = (bounds.x + bounds.width) + @intToFloat(f32, GuiGetStyle(PROGRESSBAR, TEXT_PADDING)); + textBounds.y = (bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @divTrunc(GuiGetStyle(DEFAULT, TEXT_SIZE), @as(c_int, 2))); + GuiDrawText(textRight, textBounds, GUI_TEXT_ALIGN_LEFT, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(PROGRESSBAR, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + } + return value; +} +pub export fn GuiStatusBar(arg_bounds: Rectangle, arg_text: [*c]const u8) void { + var bounds = arg_bounds; + var text = arg_text; + var state: GuiControlState = guiState; + GuiDrawRectangle(bounds, GuiGetStyle(STATUSBAR, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(STATUSBAR, if (state != @bitCast(c_uint, GUI_STATE_DISABLED)) BORDER_COLOR_NORMAL else BORDER_COLOR_DISABLED))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(STATUSBAR, if (state != @bitCast(c_uint, GUI_STATE_DISABLED)) BASE_COLOR_NORMAL else BASE_COLOR_DISABLED))), guiAlpha)); + GuiDrawText(text, GetTextBounds(STATUSBAR, bounds), GuiGetStyle(STATUSBAR, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(STATUSBAR, if (state != @bitCast(c_uint, GUI_STATE_DISABLED)) TEXT_COLOR_NORMAL else TEXT_COLOR_DISABLED))), guiAlpha)); +} +pub export fn GuiDummyRec(arg_bounds: Rectangle, arg_text: [*c]const u8) void { + var bounds = arg_bounds; + var text = arg_text; + var state: GuiControlState = guiState; + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if (CheckCollisionPointRec(mousePoint, bounds)) { + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + } + } + GuiDrawRectangle(bounds, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, if (state != @bitCast(c_uint, GUI_STATE_DISABLED)) BASE_COLOR_NORMAL else BASE_COLOR_DISABLED))), guiAlpha)); + GuiDrawText(text, GetTextBounds(DEFAULT, bounds), GUI_TEXT_ALIGN_CENTER, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(BUTTON, if (state != @bitCast(c_uint, GUI_STATE_DISABLED)) TEXT_COLOR_NORMAL else TEXT_COLOR_DISABLED))), guiAlpha)); +} +pub export fn GuiScrollBar(arg_bounds: Rectangle, arg_value: c_int, arg_minValue: c_int, arg_maxValue: c_int) c_int { + var bounds = arg_bounds; + var value = arg_value; + var minValue = arg_minValue; + var maxValue = arg_maxValue; + var state: GuiControlState = guiState; + var isVertical: bool = (if (bounds.width > bounds.height) @as(c_int, 0) else @as(c_int, 1)) != 0; + const spinnerSize: c_int = if (GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE) != 0) if (@as(c_int, @boolToInt(isVertical)) != 0) @floatToInt(c_int, bounds.width) - (@as(c_int, 2) * GuiGetStyle(SCROLLBAR, BORDER_WIDTH)) else @floatToInt(c_int, bounds.height) - (@as(c_int, 2) * GuiGetStyle(SCROLLBAR, BORDER_WIDTH)) else @as(c_int, 0); + var arrowUpLeft: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + var arrowDownRight: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + var scrollbar: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + var slider: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + if (value > maxValue) { + value = maxValue; + } + if (value < minValue) { + value = minValue; + } + const range: c_int = maxValue - minValue; + var sliderSize: c_int = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); + arrowUpLeft = Rectangle{ + .x = bounds.x + @intToFloat(f32, GuiGetStyle(SCROLLBAR, BORDER_WIDTH)), + .y = bounds.y + @intToFloat(f32, GuiGetStyle(SCROLLBAR, BORDER_WIDTH)), + .width = @intToFloat(f32, spinnerSize), + .height = @intToFloat(f32, spinnerSize), + }; + if (isVertical) { + arrowDownRight = Rectangle{ + .x = bounds.x + @intToFloat(f32, GuiGetStyle(SCROLLBAR, BORDER_WIDTH)), + .y = ((bounds.y + bounds.height) - @intToFloat(f32, spinnerSize)) - @intToFloat(f32, GuiGetStyle(SCROLLBAR, BORDER_WIDTH)), + .width = @intToFloat(f32, spinnerSize), + .height = @intToFloat(f32, spinnerSize), + }; + scrollbar = Rectangle{ + .x = (bounds.x + @intToFloat(f32, GuiGetStyle(SCROLLBAR, BORDER_WIDTH))) + @intToFloat(f32, GuiGetStyle(SCROLLBAR, SCROLL_PADDING)), + .y = arrowUpLeft.y + arrowUpLeft.height, + .width = bounds.width - @intToFloat(f32, @as(c_int, 2) * (GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING))), + .height = ((bounds.height - arrowUpLeft.height) - arrowDownRight.height) - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(SCROLLBAR, BORDER_WIDTH)), + }; + sliderSize = if (@intToFloat(f32, sliderSize) >= scrollbar.height) @floatToInt(c_int, scrollbar.height) - @as(c_int, 2) else sliderSize; + slider = Rectangle{ + .x = (bounds.x + @intToFloat(f32, GuiGetStyle(SCROLLBAR, BORDER_WIDTH))) + @intToFloat(f32, GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)), + .y = scrollbar.y + @intToFloat(f32, @floatToInt(c_int, (@intToFloat(f32, value - minValue) / @intToFloat(f32, range)) * (scrollbar.height - @intToFloat(f32, sliderSize)))), + .width = bounds.width - @intToFloat(f32, @as(c_int, 2) * (GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING))), + .height = @intToFloat(f32, sliderSize), + }; + } else { + arrowDownRight = Rectangle{ + .x = ((bounds.x + bounds.width) - @intToFloat(f32, spinnerSize)) - @intToFloat(f32, GuiGetStyle(SCROLLBAR, BORDER_WIDTH)), + .y = bounds.y + @intToFloat(f32, GuiGetStyle(SCROLLBAR, BORDER_WIDTH)), + .width = @intToFloat(f32, spinnerSize), + .height = @intToFloat(f32, spinnerSize), + }; + scrollbar = Rectangle{ + .x = arrowUpLeft.x + arrowUpLeft.width, + .y = (bounds.y + @intToFloat(f32, GuiGetStyle(SCROLLBAR, BORDER_WIDTH))) + @intToFloat(f32, GuiGetStyle(SCROLLBAR, SCROLL_PADDING)), + .width = ((bounds.width - arrowUpLeft.width) - arrowDownRight.width) - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(SCROLLBAR, BORDER_WIDTH)), + .height = bounds.height - @intToFloat(f32, @as(c_int, 2) * (GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_PADDING))), + }; + sliderSize = if (@intToFloat(f32, sliderSize) >= scrollbar.width) @floatToInt(c_int, scrollbar.width) - @as(c_int, 2) else sliderSize; + slider = Rectangle{ + .x = scrollbar.x + @intToFloat(f32, @floatToInt(c_int, (@intToFloat(f32, value - minValue) / @intToFloat(f32, range)) * (scrollbar.width - @intToFloat(f32, sliderSize)))), + .y = (bounds.y + @intToFloat(f32, GuiGetStyle(SCROLLBAR, BORDER_WIDTH))) + @intToFloat(f32, GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING)), + .width = @intToFloat(f32, sliderSize), + .height = bounds.height - @intToFloat(f32, @as(c_int, 2) * (GuiGetStyle(SCROLLBAR, BORDER_WIDTH) + GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING))), + }; + } + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if (CheckCollisionPointRec(mousePoint, bounds)) { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + var wheel: c_int = @floatToInt(c_int, GetMouseWheelMove()); + if (wheel != @as(c_int, 0)) { + value += wheel; + } + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) { + if (CheckCollisionPointRec(mousePoint, arrowUpLeft)) { + value -= @divTrunc(range, GuiGetStyle(SCROLLBAR, SCROLL_SPEED)); + } else if (CheckCollisionPointRec(mousePoint, arrowDownRight)) { + value += @divTrunc(range, GuiGetStyle(SCROLLBAR, SCROLL_SPEED)); + } + state = @bitCast(c_uint, GUI_STATE_PRESSED); + } else if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + if (!isVertical) { + var scrollArea: Rectangle = Rectangle{ + .x = arrowUpLeft.x + arrowUpLeft.width, + .y = arrowUpLeft.y, + .width = scrollbar.width, + .height = bounds.height - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(SCROLLBAR, BORDER_WIDTH)), + }; + if (CheckCollisionPointRec(mousePoint, scrollArea)) { + value = @floatToInt(c_int, ((((mousePoint.x - scrollArea.x) - (slider.width / @intToFloat(f32, @as(c_int, 2)))) * @intToFloat(f32, range)) / (scrollArea.width - slider.width)) + @intToFloat(f32, minValue)); + } + } else { + var scrollArea: Rectangle = Rectangle{ + .x = arrowUpLeft.x, + .y = arrowUpLeft.y + arrowUpLeft.height, + .width = bounds.width - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(SCROLLBAR, BORDER_WIDTH)), + .height = scrollbar.height, + }; + if (CheckCollisionPointRec(mousePoint, scrollArea)) { + value = @floatToInt(c_int, ((((mousePoint.y - scrollArea.y) - (slider.height / @intToFloat(f32, @as(c_int, 2)))) * @intToFloat(f32, range)) / (scrollArea.height - slider.height)) + @intToFloat(f32, minValue)); + } + } + } + } + if (value > maxValue) { + value = maxValue; + } + if (value < minValue) { + value = minValue; + } + } + GuiDrawRectangle(bounds, GuiGetStyle(SCROLLBAR, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, BORDER_COLOR_DISABLED))), guiAlpha)); + GuiDrawRectangle(scrollbar, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(BUTTON, BASE_COLOR_NORMAL))), guiAlpha)); + GuiDrawRectangle(slider, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(SLIDER, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + if (GuiGetStyle(SCROLLBAR, ARROWS_VISIBLE) != 0) { + GuiDrawText(if (@as(c_int, @boolToInt(isVertical)) != 0) "#121#" else "#118#", Rectangle{ + .x = arrowUpLeft.x, + .y = arrowUpLeft.y, + .width = if (@as(c_int, @boolToInt(isVertical)) != 0) bounds.width else bounds.height, + .height = if (@as(c_int, @boolToInt(isVertical)) != 0) bounds.width else bounds.height, + }, GUI_TEXT_ALIGN_CENTER, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(SCROLLBAR, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + GuiDrawText(if (@as(c_int, @boolToInt(isVertical)) != 0) "#120#" else "#119#", Rectangle{ + .x = arrowDownRight.x, + .y = arrowDownRight.y, + .width = if (@as(c_int, @boolToInt(isVertical)) != 0) bounds.width else bounds.height, + .height = if (@as(c_int, @boolToInt(isVertical)) != 0) bounds.width else bounds.height, + }, GUI_TEXT_ALIGN_CENTER, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(SCROLLBAR, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + } + return value; +} +pub export fn GuiGrid(arg_bounds: Rectangle, arg_spacing: f32, arg_subdivs: c_int) Vector2 { + var bounds = arg_bounds; + var spacing = arg_spacing; + var subdivs = arg_subdivs; + var state: GuiControlState = guiState; + var mousePoint: Vector2 = GetMousePosition(); + var currentCell: Vector2 = Vector2{ + .x = @intToFloat(f32, -@as(c_int, 1)), + .y = @intToFloat(f32, -@as(c_int, 1)), + }; + var linesV: c_int = (@floatToInt(c_int, bounds.width / spacing) * subdivs) + @as(c_int, 1); + var linesH: c_int = (@floatToInt(c_int, bounds.height / spacing) * subdivs) + @as(c_int, 1); + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + if (CheckCollisionPointRec(mousePoint, bounds)) { + currentCell.x = (mousePoint.x - bounds.x) / spacing; + currentCell.y = (mousePoint.y - bounds.y) / spacing; + } + } + while (true) { + switch (state) { + @bitCast(c_uint, @as(c_int, 0)) => { + { + if (subdivs > @as(c_int, 0)) { + { + var i: c_int = 0; + while (i < linesV) : (i += 1) { + var lineV: Rectangle = Rectangle{ + .x = bounds.x + ((spacing * @intToFloat(f32, i)) / @intToFloat(f32, subdivs)), + .y = bounds.y, + .width = @intToFloat(f32, @as(c_int, 1)), + .height = bounds.height, + }; + GuiDrawRectangle(lineV, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, if (@import("std").zig.c_translation.signedRemainder(i, subdivs) == @as(c_int, 0)) Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, LINE_COLOR))), 0.15000000596046448 * @intToFloat(f32, @as(c_int, 4))) else Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, LINE_COLOR))), 0.15000000596046448)); + } + } + { + var i: c_int = 0; + while (i < linesH) : (i += 1) { + var lineH: Rectangle = Rectangle{ + .x = bounds.x, + .y = bounds.y + ((spacing * @intToFloat(f32, i)) / @intToFloat(f32, subdivs)), + .width = bounds.width, + .height = @intToFloat(f32, @as(c_int, 1)), + }; + GuiDrawRectangle(lineH, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, if (@import("std").zig.c_translation.signedRemainder(i, subdivs) == @as(c_int, 0)) Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, LINE_COLOR))), 0.15000000596046448 * @intToFloat(f32, @as(c_int, 4))) else Fade(GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, LINE_COLOR))), 0.15000000596046448)); + } + } + } + } + break; + }, + else => break, + } + break; + } + return currentCell; +} +pub export fn GuiListView(arg_bounds: Rectangle, arg_text: [*c]const u8, arg_scrollIndex: [*c]c_int, arg_active: c_int) c_int { + var bounds = arg_bounds; + var text = arg_text; + var scrollIndex = arg_scrollIndex; + var active = arg_active; + var itemCount: c_int = 0; + var items: [*c][*c]const u8 = null; + if (text != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + items = GuiTextSplit(text, &itemCount, null); + } + return GuiListViewEx(bounds, items, itemCount, null, scrollIndex, active); +} +pub export fn GuiListViewEx(arg_bounds: Rectangle, arg_text: [*c][*c]const u8, arg_count: c_int, arg_focus: [*c]c_int, arg_scrollIndex: [*c]c_int, arg_active: c_int) c_int { + var bounds = arg_bounds; + var text = arg_text; + var count = arg_count; + var focus = arg_focus; + var scrollIndex = arg_scrollIndex; + var active = arg_active; + var state: GuiControlState = guiState; + var itemFocused: c_int = if (focus == @ptrCast([*c]c_int, @alignCast(@import("std").meta.alignment(c_int), @intToPtr(?*anyopaque, @as(c_int, 0))))) -@as(c_int, 1) else focus.*; + var itemSelected: c_int = active; + var useScrollBar: bool = @as(c_int, 0) != 0; + if (@intToFloat(f32, (GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING)) * count) > bounds.height) { + useScrollBar = @as(c_int, 1) != 0; + } + var itemBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + itemBounds.x = bounds.x + @intToFloat(f32, GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING)); + itemBounds.y = (bounds.y + @intToFloat(f32, GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING))) + @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)); + itemBounds.width = (bounds.width - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING))) - @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)); + itemBounds.height = @intToFloat(f32, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT)); + if (useScrollBar) { + itemBounds.width -= @intToFloat(f32, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH)); + } + var visibleItems: c_int = @divTrunc(@floatToInt(c_int, bounds.height), GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING)); + if (visibleItems > count) { + visibleItems = count; + } + var startIndex: c_int = if (scrollIndex == @ptrCast([*c]c_int, @alignCast(@import("std").meta.alignment(c_int), @intToPtr(?*anyopaque, @as(c_int, 0))))) @as(c_int, 0) else scrollIndex.*; + if ((startIndex < @as(c_int, 0)) or (startIndex > (count - visibleItems))) { + startIndex = 0; + } + var endIndex: c_int = startIndex + visibleItems; + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if (CheckCollisionPointRec(mousePoint, bounds)) { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + { + var i: c_int = 0; + while (i < visibleItems) : (i += 1) { + if (CheckCollisionPointRec(mousePoint, itemBounds)) { + itemFocused = startIndex + i; + if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) { + if (itemSelected == (startIndex + i)) { + itemSelected = -@as(c_int, 1); + } else { + itemSelected = startIndex + i; + } + } + break; + } + itemBounds.y += @intToFloat(f32, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING)); + } + } + if (useScrollBar) { + var wheelMove: c_int = @floatToInt(c_int, GetMouseWheelMove()); + startIndex -= wheelMove; + if (startIndex < @as(c_int, 0)) { + startIndex = 0; + } else if (startIndex > (count - visibleItems)) { + startIndex = count - visibleItems; + } + endIndex = startIndex + visibleItems; + if (endIndex > count) { + endIndex = count; + } + } + } else { + itemFocused = -@as(c_int, 1); + } + itemBounds.y = (bounds.y + @intToFloat(f32, GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING))) + @intToFloat(f32, GuiGetStyle(DEFAULT, BORDER_WIDTH)); + } + GuiDrawRectangle(bounds, GuiGetStyle(DEFAULT, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), GetColor(@bitCast(c_uint, GuiGetStyle(DEFAULT, BACKGROUND_COLOR)))); + { + var i: c_int = 0; + while ((i < visibleItems) and (text != @ptrCast([*c][*c]const u8, @alignCast(@import("std").meta.alignment([*c]const u8), @intToPtr(?*anyopaque, @as(c_int, 0)))))) : (i += 1) { + if (state == @bitCast(c_uint, GUI_STATE_DISABLED)) { + if ((startIndex + i) == itemSelected) { + GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, BORDER_COLOR_DISABLED))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, BASE_COLOR_DISABLED))), guiAlpha)); + } + GuiDrawText((blk: { + const tmp = startIndex + i; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, TEXT_COLOR_DISABLED))), guiAlpha)); + } else { + if ((startIndex + i) == itemSelected) { + GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, BORDER_COLOR_PRESSED))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, BASE_COLOR_PRESSED))), guiAlpha)); + GuiDrawText((blk: { + const tmp = startIndex + i; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, TEXT_COLOR_PRESSED))), guiAlpha)); + } else if ((startIndex + i) == itemFocused) { + GuiDrawRectangle(itemBounds, GuiGetStyle(LISTVIEW, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, BORDER_COLOR_FOCUSED))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, BASE_COLOR_FOCUSED))), guiAlpha)); + GuiDrawText((blk: { + const tmp = startIndex + i; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, TEXT_COLOR_FOCUSED))), guiAlpha)); + } else { + GuiDrawText((blk: { + const tmp = startIndex + i; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*, GetTextBounds(DEFAULT, itemBounds), GuiGetStyle(LISTVIEW, TEXT_ALIGNMENT), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(LISTVIEW, TEXT_COLOR_NORMAL))), guiAlpha)); + } + } + itemBounds.y += @intToFloat(f32, GuiGetStyle(LISTVIEW, LIST_ITEMS_HEIGHT) + GuiGetStyle(LISTVIEW, LIST_ITEMS_PADDING)); + } + } + if (useScrollBar) { + var scrollBarBounds: Rectangle = Rectangle{ + .x = ((bounds.x + bounds.width) - @intToFloat(f32, GuiGetStyle(LISTVIEW, BORDER_WIDTH))) - @intToFloat(f32, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH)), + .y = bounds.y + @intToFloat(f32, GuiGetStyle(LISTVIEW, BORDER_WIDTH)), + .width = @intToFloat(f32, GuiGetStyle(LISTVIEW, SCROLLBAR_WIDTH)), + .height = bounds.height - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(DEFAULT, BORDER_WIDTH)), + }; + var percentVisible: f32 = @intToFloat(f32, endIndex - startIndex) / @intToFloat(f32, count); + var sliderSize: f32 = bounds.height * percentVisible; + var prevSliderSize: c_int = GuiGetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE); + var prevScrollSpeed: c_int = GuiGetStyle(SCROLLBAR, SCROLL_SPEED); + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, @floatToInt(c_int, sliderSize)); + GuiSetStyle(SCROLLBAR, SCROLL_SPEED, count - visibleItems); + startIndex = GuiScrollBar(scrollBarBounds, startIndex, @as(c_int, 0), count - visibleItems); + GuiSetStyle(SCROLLBAR, SCROLL_SPEED, prevScrollSpeed); + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, prevSliderSize); + } + if (focus != @ptrCast([*c]c_int, @alignCast(@import("std").meta.alignment(c_int), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + focus.* = itemFocused; + } + if (scrollIndex != @ptrCast([*c]c_int, @alignCast(@import("std").meta.alignment(c_int), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + scrollIndex.* = startIndex; + } + return itemSelected; +} +pub export fn GuiMessageBox(arg_bounds: Rectangle, arg_title: [*c]const u8, arg_message: [*c]const u8, arg_buttons: [*c]const u8) c_int { + var bounds = arg_bounds; + var title = arg_title; + var message = arg_message; + var buttons = arg_buttons; + var clicked: c_int = -@as(c_int, 1); + var buttonCount: c_int = 0; + var buttonsText: [*c][*c]const u8 = GuiTextSplit(buttons, &buttonCount, null); + var buttonBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + buttonBounds.x = bounds.x + @intToFloat(f32, @as(c_int, 10)); + buttonBounds.y = ((bounds.y + bounds.height) - @intToFloat(f32, @as(c_int, 24))) - @intToFloat(f32, @as(c_int, 10)); + buttonBounds.width = (bounds.width - @intToFloat(f32, @as(c_int, 10) * (buttonCount + @as(c_int, 1)))) / @intToFloat(f32, buttonCount); + buttonBounds.height = 24; + var textSize: Vector2 = MeasureTextEx(guiFont, message, @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)), @intToFloat(f32, @as(c_int, 1))); + var textBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + textBounds.x = (bounds.x + (bounds.width / @intToFloat(f32, @as(c_int, 2)))) - (textSize.x / @intToFloat(f32, @as(c_int, 2))); + textBounds.y = ((bounds.y + @intToFloat(f32, @as(c_int, 22))) + ((((bounds.height - @intToFloat(f32, @as(c_int, 22))) - @intToFloat(f32, @as(c_int, 24))) - @intToFloat(f32, @as(c_int, 10))) / @intToFloat(f32, @as(c_int, 2)))) - (textSize.y / @intToFloat(f32, @as(c_int, 2))); + textBounds.width = textSize.x; + textBounds.height = textSize.y; + if (GuiWindowBox(bounds, title)) { + clicked = 0; + } + var prevTextAlignment: c_int = GuiGetStyle(LABEL, TEXT_ALIGNMENT); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER); + GuiLabel(textBounds, message); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, prevTextAlignment); + prevTextAlignment = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER); + { + var i: c_int = 0; + while (i < buttonCount) : (i += 1) { + if (GuiButton(buttonBounds, (blk: { + const tmp = i; + if (tmp >= 0) break :blk buttonsText + @intCast(usize, tmp) else break :blk buttonsText - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*)) { + clicked = i + @as(c_int, 1); + } + buttonBounds.x += buttonBounds.width + @intToFloat(f32, @as(c_int, 10)); + } + } + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, prevTextAlignment); + return clicked; +} +pub export fn GuiTextInputBox(arg_bounds: Rectangle, arg_title: [*c]const u8, arg_message: [*c]const u8, arg_buttons: [*c]const u8, arg_text: [*c]u8) c_int { + var bounds = arg_bounds; + var title = arg_title; + var message = arg_message; + var buttons = arg_buttons; + var text = arg_text; + const textEditMode = struct { + var static: bool = @as(c_int, 0) != 0; + }; + var btnIndex: c_int = -@as(c_int, 1); + var buttonCount: c_int = 0; + var buttonsText: [*c][*c]const u8 = GuiTextSplit(buttons, &buttonCount, null); + var buttonBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + buttonBounds.x = bounds.x + @intToFloat(f32, @as(c_int, 10)); + buttonBounds.y = ((bounds.y + bounds.height) - @intToFloat(f32, @as(c_int, 24))) - @intToFloat(f32, @as(c_int, 10)); + buttonBounds.width = (bounds.width - @intToFloat(f32, @as(c_int, 10) * (buttonCount + @as(c_int, 1)))) / @intToFloat(f32, buttonCount); + buttonBounds.height = 24; + var messageInputHeight: c_int = (((@floatToInt(c_int, bounds.height) - @as(c_int, 22)) - GuiGetStyle(STATUSBAR, BORDER_WIDTH)) - @as(c_int, 24)) - (@as(c_int, 2) * @as(c_int, 10)); + var textBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + if (message != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + var textSize: Vector2 = MeasureTextEx(guiFont, message, @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)), @intToFloat(f32, @as(c_int, 1))); + textBounds.x = (bounds.x + (bounds.width / @intToFloat(f32, @as(c_int, 2)))) - (textSize.x / @intToFloat(f32, @as(c_int, 2))); + textBounds.y = ((bounds.y + @intToFloat(f32, @as(c_int, 22))) + @intToFloat(f32, @divTrunc(messageInputHeight, @as(c_int, 4)))) - (textSize.y / @intToFloat(f32, @as(c_int, 2))); + textBounds.width = textSize.x; + textBounds.height = textSize.y; + } + var textBoxBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + textBoxBounds.x = bounds.x + @intToFloat(f32, @as(c_int, 10)); + textBoxBounds.y = (bounds.y + @intToFloat(f32, @as(c_int, 22))) - @intToFloat(f32, @divTrunc(@as(c_int, 30), @as(c_int, 2))); + if (message == @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + textBoxBounds.y += @intToFloat(f32, @divTrunc(messageInputHeight, @as(c_int, 2))); + } else { + textBoxBounds.y += @intToFloat(f32, @divTrunc(messageInputHeight, @as(c_int, 2)) + @divTrunc(messageInputHeight, @as(c_int, 4))); + } + textBoxBounds.width = bounds.width - @intToFloat(f32, @as(c_int, 10) * @as(c_int, 2)); + textBoxBounds.height = 30; + if (GuiWindowBox(bounds, title)) { + btnIndex = 0; + } + if (message != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + var prevTextAlignment: c_int = GuiGetStyle(LABEL, TEXT_ALIGNMENT); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER); + GuiLabel(textBounds, message); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, prevTextAlignment); + } + if (GuiTextBox(textBoxBounds, text, @as(c_int, 256), textEditMode.static)) { + textEditMode.static = !textEditMode.static; + } + var prevBtnTextAlignment: c_int = GuiGetStyle(BUTTON, TEXT_ALIGNMENT); + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER); + { + var i: c_int = 0; + while (i < buttonCount) : (i += 1) { + if (GuiButton(buttonBounds, (blk: { + const tmp = i; + if (tmp >= 0) break :blk buttonsText + @intCast(usize, tmp) else break :blk buttonsText - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*)) { + btnIndex = i + @as(c_int, 1); + } + buttonBounds.x += buttonBounds.width + @intToFloat(f32, @as(c_int, 10)); + } + } + GuiSetStyle(BUTTON, TEXT_ALIGNMENT, prevBtnTextAlignment); + return btnIndex; +} +pub export fn GuiColorPicker(arg_bounds: Rectangle, arg_color: Color) Color { + var bounds = arg_bounds; + var color = arg_color; + color = GuiColorPanel(bounds, color); + var boundsHue: Rectangle = Rectangle{ + .x = (bounds.x + bounds.width) + @intToFloat(f32, GuiGetStyle(COLORPICKER, HUEBAR_PADDING)), + .y = bounds.y, + .width = @intToFloat(f32, GuiGetStyle(COLORPICKER, HUEBAR_WIDTH)), + .height = bounds.height, + }; + var hsv: Vector3 = ConvertRGBtoHSV(Vector3{ + .x = @intToFloat(f32, @bitCast(c_int, @as(c_uint, color.r))) / 255.0, + .y = @intToFloat(f32, @bitCast(c_int, @as(c_uint, color.g))) / 255.0, + .z = @intToFloat(f32, @bitCast(c_int, @as(c_uint, color.b))) / 255.0, + }); + hsv.x = GuiColorBarHue(boundsHue, hsv.x); + var rgb: Vector3 = ConvertHSVtoRGB(hsv); + color = Color{ + .r = @floatToInt(u8, roundf(rgb.x * 255.0)), + .g = @floatToInt(u8, roundf(rgb.y * 255.0)), + .b = @floatToInt(u8, roundf(rgb.z * 255.0)), + .a = color.a, + }; + return color; +} +pub export fn GuiColorPanel(arg_bounds: Rectangle, arg_color: Color) Color { + var bounds = arg_bounds; + var color = arg_color; + const colWhite: Color = Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }; + const colBlack: Color = Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }; + var state: GuiControlState = guiState; + var pickerSelector: Vector2 = Vector2{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + }; + var vcolor: Vector3 = Vector3{ + .x = @intToFloat(f32, color.r) / 255.0, + .y = @intToFloat(f32, color.g) / 255.0, + .z = @intToFloat(f32, color.b) / 255.0, + }; + var hsv: Vector3 = ConvertRGBtoHSV(vcolor); + pickerSelector.x = bounds.x + (hsv.y * bounds.width); + pickerSelector.y = bounds.y + ((1.0 - hsv.z) * bounds.height); + var hue: f32 = -1.0; + var maxHue: Vector3 = Vector3{ + .x = if (hue >= 0.0) hue else hsv.x, + .y = 1.0, + .z = 1.0, + }; + var rgbHue: Vector3 = ConvertHSVtoRGB(maxHue); + var maxHueCol: Color = Color{ + .r = @floatToInt(u8, 255.0 * rgbHue.x), + .g = @floatToInt(u8, 255.0 * rgbHue.y), + .b = @floatToInt(u8, 255.0 * rgbHue.z), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }; + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if (CheckCollisionPointRec(mousePoint, bounds)) { + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + pickerSelector = mousePoint; + var colorPick: Vector2 = Vector2{ + .x = pickerSelector.x - bounds.x, + .y = pickerSelector.y - bounds.y, + }; + colorPick.x /= bounds.width; + colorPick.y /= bounds.height; + hsv.y = colorPick.x; + hsv.z = 1.0 - colorPick.y; + var rgb: Vector3 = ConvertHSVtoRGB(hsv); + color = Color{ + .r = @floatToInt(u8, 255.0 * rgb.x), + .g = @floatToInt(u8, 255.0 * rgb.y), + .b = @floatToInt(u8, 255.0 * rgb.z), + .a = @floatToInt(u8, (255.0 * @intToFloat(f32, color.a)) / 255.0), + }; + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + } + } + if (state != @bitCast(c_uint, GUI_STATE_DISABLED)) { + DrawRectangleGradientEx(bounds, Fade(colWhite, guiAlpha), Fade(colWhite, guiAlpha), Fade(maxHueCol, guiAlpha), Fade(maxHueCol, guiAlpha)); + DrawRectangleGradientEx(bounds, Fade(colBlack, @intToFloat(f32, @as(c_int, 0))), Fade(colBlack, guiAlpha), Fade(colBlack, guiAlpha), Fade(colBlack, @intToFloat(f32, @as(c_int, 0)))); + var selector: Rectangle = Rectangle{ + .x = pickerSelector.x - @intToFloat(f32, @divTrunc(GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE), @as(c_int, 2))), + .y = pickerSelector.y - @intToFloat(f32, @divTrunc(GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE), @as(c_int, 2))), + .width = @intToFloat(f32, GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)), + .height = @intToFloat(f32, GuiGetStyle(COLORPICKER, COLOR_SELECTOR_SIZE)), + }; + GuiDrawRectangle(selector, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(colWhite, guiAlpha)); + } else { + DrawRectangleGradientEx(bounds, Fade(Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED))), 0.10000000149011612), guiAlpha), Fade(Fade(colBlack, 0.6000000238418579), guiAlpha), Fade(Fade(colBlack, 0.6000000238418579), guiAlpha), Fade(Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED))), 0.6000000238418579), guiAlpha)); + } + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }); + return color; +} +pub export fn GuiColorBarAlpha(arg_bounds: Rectangle, arg_alpha: f32) f32 { + var bounds = arg_bounds; + var alpha = arg_alpha; + var state: GuiControlState = guiState; + var selector: Rectangle = Rectangle{ + .x = (bounds.x + (alpha * bounds.width)) - @intToFloat(f32, @divTrunc(GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT), @as(c_int, 2))), + .y = bounds.y - @intToFloat(f32, GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)), + .width = @intToFloat(f32, GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)), + .height = bounds.height + @intToFloat(f32, GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW) * @as(c_int, 2)), + }; + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if ((@as(c_int, @boolToInt(CheckCollisionPointRec(mousePoint, bounds))) != 0) or (@as(c_int, @boolToInt(CheckCollisionPointRec(mousePoint, selector))) != 0)) { + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + alpha = (mousePoint.x - bounds.x) / bounds.width; + if (alpha <= 0.0) { + alpha = 0.0; + } + if (alpha >= 1.0) { + alpha = 1.0; + } + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + } + } + if (state != @bitCast(c_uint, GUI_STATE_DISABLED)) { + var checksX: c_int = @divTrunc(@floatToInt(c_int, bounds.width), @as(c_int, 10)); + var checksY: c_int = @divTrunc(@floatToInt(c_int, bounds.height), @as(c_int, 10)); + { + var x: c_int = 0; + while (x < checksX) : (x += 1) { + { + var y: c_int = 0; + while (y < checksY) : (y += 1) { + var check: Rectangle = Rectangle{ + .x = bounds.x + @intToFloat(f32, x * @as(c_int, 10)), + .y = bounds.y + @intToFloat(f32, y * @as(c_int, 10)), + .width = @intToFloat(f32, @as(c_int, 10)), + .height = @intToFloat(f32, @as(c_int, 10)), + }; + GuiDrawRectangle(check, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, if (@import("std").zig.c_translation.signedRemainder(x + y, @as(c_int, 2)) != 0) Fade(Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED))), 0.4000000059604645), guiAlpha) else Fade(Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED))), 0.4000000059604645), guiAlpha)); + } + } + } + } + DrawRectangleGradientEx(bounds, Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha)); + } else { + DrawRectangleGradientEx(bounds, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED))), 0.10000000149011612), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED))), 0.10000000149011612), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED))), guiAlpha)); + } + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }); + GuiDrawRectangle(selector, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + return alpha; +} +pub export fn GuiColorBarHue(arg_bounds: Rectangle, arg_hue: f32) f32 { + var bounds = arg_bounds; + var hue = arg_hue; + var state: GuiControlState = guiState; + var selector: Rectangle = Rectangle{ + .x = bounds.x - @intToFloat(f32, GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW)), + .y = (bounds.y + ((hue / 360.0) * bounds.height)) - @intToFloat(f32, @divTrunc(GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT), @as(c_int, 2))), + .width = bounds.width + @intToFloat(f32, GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW) * @as(c_int, 2)), + .height = @intToFloat(f32, GuiGetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT)), + }; + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if ((@as(c_int, @boolToInt(CheckCollisionPointRec(mousePoint, bounds))) != 0) or (@as(c_int, @boolToInt(CheckCollisionPointRec(mousePoint, selector))) != 0)) { + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + hue = ((mousePoint.y - bounds.y) * @intToFloat(f32, @as(c_int, 360))) / bounds.height; + if (hue <= 0.0) { + hue = 0.0; + } + if (hue >= 359.0) { + hue = 359.0; + } + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + } + } + if (state != @bitCast(c_uint, GUI_STATE_DISABLED)) { + DrawRectangleGradientV(@floatToInt(c_int, bounds.x), @floatToInt(c_int, bounds.y), @floatToInt(c_int, bounds.width), @floatToInt(c_int, ceil(@floatCast(f64, bounds.height / @intToFloat(f32, @as(c_int, 6))))), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha)); + DrawRectangleGradientV(@floatToInt(c_int, bounds.x), @floatToInt(c_int, bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 6)))), @floatToInt(c_int, bounds.width), @floatToInt(c_int, ceil(@floatCast(f64, bounds.height / @intToFloat(f32, @as(c_int, 6))))), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha)); + DrawRectangleGradientV(@floatToInt(c_int, bounds.x), @floatToInt(c_int, bounds.y + (@intToFloat(f32, @as(c_int, 2)) * (bounds.height / @intToFloat(f32, @as(c_int, 6))))), @floatToInt(c_int, bounds.width), @floatToInt(c_int, ceil(@floatCast(f64, bounds.height / @intToFloat(f32, @as(c_int, 6))))), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha)); + DrawRectangleGradientV(@floatToInt(c_int, bounds.x), @floatToInt(c_int, bounds.y + (@intToFloat(f32, @as(c_int, 3)) * (bounds.height / @intToFloat(f32, @as(c_int, 6))))), @floatToInt(c_int, bounds.width), @floatToInt(c_int, ceil(@floatCast(f64, bounds.height / @intToFloat(f32, @as(c_int, 6))))), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha)); + DrawRectangleGradientV(@floatToInt(c_int, bounds.x), @floatToInt(c_int, bounds.y + (@intToFloat(f32, @as(c_int, 4)) * (bounds.height / @intToFloat(f32, @as(c_int, 6))))), @floatToInt(c_int, bounds.width), @floatToInt(c_int, ceil(@floatCast(f64, bounds.height / @intToFloat(f32, @as(c_int, 6))))), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha)); + DrawRectangleGradientV(@floatToInt(c_int, bounds.x), @floatToInt(c_int, bounds.y + (@intToFloat(f32, @as(c_int, 5)) * (bounds.height / @intToFloat(f32, @as(c_int, 6))))), @floatToInt(c_int, bounds.width), @floatToInt(c_int, bounds.height / @intToFloat(f32, @as(c_int, 6))), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha), Fade(Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 255))), + }, guiAlpha)); + } else { + DrawRectangleGradientV(@floatToInt(c_int, bounds.x), @floatToInt(c_int, bounds.y), @floatToInt(c_int, bounds.width), @floatToInt(c_int, bounds.height), Fade(Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, BASE_COLOR_DISABLED))), 0.10000000149011612), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, BORDER_COLOR_DISABLED))), guiAlpha)); + } + GuiDrawRectangle(bounds, GuiGetStyle(COLORPICKER, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }); + GuiDrawRectangle(selector, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(COLORPICKER, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + return hue; +} +pub const struct__IO_marker = opaque {}; +pub const __off_t = c_long; +pub const _IO_lock_t = anyopaque; +pub const __off64_t = c_long; +pub const struct__IO_codecvt = opaque {}; +pub const struct__IO_wide_data = opaque {}; +pub const struct__IO_FILE = extern struct { + _flags: c_int, + _IO_read_ptr: [*c]u8, + _IO_read_end: [*c]u8, + _IO_read_base: [*c]u8, + _IO_write_base: [*c]u8, + _IO_write_ptr: [*c]u8, + _IO_write_end: [*c]u8, + _IO_buf_base: [*c]u8, + _IO_buf_end: [*c]u8, + _IO_save_base: [*c]u8, + _IO_backup_base: [*c]u8, + _IO_save_end: [*c]u8, + _markers: ?*struct__IO_marker, + _chain: [*c]struct__IO_FILE, + _fileno: c_int, + _flags2: c_int, + _old_offset: __off_t, + _cur_column: c_ushort, + _vtable_offset: i8, + _shortbuf: [1]u8, + _lock: ?*_IO_lock_t, + _offset: __off64_t, + _codecvt: ?*struct__IO_codecvt, + _wide_data: ?*struct__IO_wide_data, + _freeres_list: [*c]struct__IO_FILE, + _freeres_buf: ?*anyopaque, + __pad5: usize, + _mode: c_int, + _unused2: [20]u8, +}; +pub const FILE = struct__IO_FILE; +pub export fn GuiLoadStyle(arg_fileName: [*c]const u8) void { + var fileName = arg_fileName; + var tryBinary: bool = @as(c_int, 0) != 0; + var rgsFile: [*c]FILE = fopen(fileName, "rt"); + if (rgsFile != @ptrCast([*c]FILE, @alignCast(@import("std").meta.alignment(FILE), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + var buffer: [256]u8 = [1]u8{ + 0, + } ++ [1]u8{0} ** 255; + _ = fgets(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &buffer)), @as(c_int, 256), rgsFile); + if (@bitCast(c_int, @as(c_uint, buffer[@intCast(c_uint, @as(c_int, 0))])) == @as(c_int, '#')) { + var controlId: c_int = 0; + var propertyId: c_int = 0; + var propertyValue: c_uint = 0; + while (!(feof(rgsFile) != 0)) { + while (true) { + switch (@bitCast(c_int, @as(c_uint, buffer[@intCast(c_uint, @as(c_int, 0))]))) { + @as(c_int, 112) => { + { + _ = sscanf(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &buffer)), "p %d %d 0x%x", &controlId, &propertyId, &propertyValue); + GuiSetStyle(controlId, propertyId, @bitCast(c_int, propertyValue)); + } + break; + }, + @as(c_int, 102) => { + { + var fontSize: c_int = 0; + var charmapFileName: [256]u8 = [1]u8{ + 0, + } ++ [1]u8{0} ** 255; + var fontFileName: [256]u8 = [1]u8{ + 0, + } ++ [1]u8{0} ** 255; + _ = sscanf(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &buffer)), "f %d %s %[^\r\n]s", &fontSize, @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &charmapFileName)), @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &fontFileName))); + var font: Font = Font{ + .baseSize = @as(c_int, 0), + .glyphCount = 0, + .glyphPadding = 0, + .texture = @import("std").mem.zeroes(struct_Texture), + .recs = null, + .glyphs = null, + }; + if (@bitCast(c_int, @as(c_uint, charmapFileName[@intCast(c_uint, @as(c_int, 0))])) != @as(c_int, '0')) { + var charValues: [*c]u8 = LoadFileText(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &charmapFileName))); + if (charValues != @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + var glyphCount: c_int = 0; + var chars: [*c][*c]const u8 = TextSplit(charValues, @bitCast(u8, @truncate(i8, @as(c_int, '\n'))), &glyphCount); + var values: [*c]c_int = @ptrCast([*c]c_int, @alignCast(@import("std").meta.alignment(c_int), malloc(@bitCast(c_ulong, @as(c_long, glyphCount)) *% @sizeOf(c_int)))); + { + var i: c_int = 0; + while (i < glyphCount) : (i += 1) { + (blk: { + const tmp = i; + if (tmp >= 0) break :blk values + @intCast(usize, tmp) else break :blk values - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).* = TextToInteger((blk: { + const tmp = i; + if (tmp >= 0) break :blk chars + @intCast(usize, tmp) else break :blk chars - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*); + } + } + font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &fontFileName))), fontSize, values, glyphCount); + free(@ptrCast(?*anyopaque, values)); + } + } else { + font = LoadFontEx(TextFormat("%s/%s", GetDirectoryPath(fileName), @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &fontFileName))), fontSize, null, @as(c_int, 0)); + } + if ((font.texture.id > @bitCast(c_uint, @as(c_int, 0))) and (font.glyphCount > @as(c_int, 0))) { + GuiSetFont(font); + } + } + break; + }, + else => break, + } + break; + } + _ = fgets(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &buffer)), @as(c_int, 256), rgsFile); + } + } else { + tryBinary = @as(c_int, 1) != 0; + } + _ = fclose(rgsFile); + } + if (tryBinary) { + rgsFile = fopen(fileName, "rb"); + if (rgsFile == @ptrCast([*c]FILE, @alignCast(@import("std").meta.alignment(FILE), @intToPtr(?*anyopaque, @as(c_int, 0))))) return; + var signature: [5]u8 = [1]u8{0} ** 5; + var version: c_short = 0; + var reserved: c_short = 0; + var propertyCount: c_int = 0; + _ = fread(@ptrCast(?*anyopaque, @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &signature))), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @bitCast(c_ulong, @as(c_long, @as(c_int, 4))), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &version), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_short), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &reserved), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_short), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &propertyCount), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + if ((((@bitCast(c_int, @as(c_uint, signature[@intCast(c_uint, @as(c_int, 0))])) == @as(c_int, 'r')) and (@bitCast(c_int, @as(c_uint, signature[@intCast(c_uint, @as(c_int, 1))])) == @as(c_int, 'G'))) and (@bitCast(c_int, @as(c_uint, signature[@intCast(c_uint, @as(c_int, 2))])) == @as(c_int, 'S'))) and (@bitCast(c_int, @as(c_uint, signature[@intCast(c_uint, @as(c_int, 3))])) == @as(c_int, ' '))) { + var controlId: c_short = 0; + var propertyId: c_short = 0; + var propertyValue: c_int = 0; + { + var i: c_int = 0; + while (i < propertyCount) : (i += 1) { + _ = fread(@ptrCast(?*anyopaque, &controlId), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_short), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &propertyId), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_short), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &propertyValue), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + if (@bitCast(c_int, @as(c_int, controlId)) == @as(c_int, 0)) { + GuiSetStyle(@as(c_int, 0), @bitCast(c_int, @as(c_int, propertyId)), propertyValue); + if (@bitCast(c_int, @as(c_int, propertyId)) < @as(c_int, 16)) { + var i_1: c_int = 1; + while (i_1 < @as(c_int, 16)) : (i_1 += 1) { + GuiSetStyle(i_1, @bitCast(c_int, @as(c_int, propertyId)), propertyValue); + } + } + } else { + GuiSetStyle(@bitCast(c_int, @as(c_int, controlId)), @bitCast(c_int, @as(c_int, propertyId)), propertyValue); + } + } + } + var fontDataSize: c_int = 0; + _ = fread(@ptrCast(?*anyopaque, &fontDataSize), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + if (fontDataSize > @as(c_int, 0)) { + var font: Font = Font{ + .baseSize = @as(c_int, 0), + .glyphCount = 0, + .glyphPadding = 0, + .texture = @import("std").mem.zeroes(struct_Texture), + .recs = null, + .glyphs = null, + }; + var fontType: c_int = 0; + var whiteRec: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + _ = fread(@ptrCast(?*anyopaque, &font.baseSize), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &font.glyphCount), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &fontType), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &whiteRec), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(Rectangle), rgsFile); + var fontImageSize: c_int = 0; + _ = fread(@ptrCast(?*anyopaque, &fontImageSize), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + if (fontImageSize > @as(c_int, 0)) { + var imFont: Image = Image{ + .data = null, + .width = 0, + .height = 0, + .mipmaps = 0, + .format = 0, + }; + imFont.mipmaps = 1; + _ = fread(@ptrCast(?*anyopaque, &imFont.width), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &imFont.height), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &imFont.format), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + imFont.data = @ptrCast(?*anyopaque, @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), malloc(@bitCast(c_ulong, @as(c_long, fontImageSize)))))); + _ = fread(imFont.data, @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @bitCast(c_ulong, @as(c_long, fontImageSize)), rgsFile); + font.texture = LoadTextureFromImage(imFont); + free(imFont.data); + } + font.recs = @ptrCast([*c]Rectangle, @alignCast(@import("std").meta.alignment(Rectangle), calloc(@bitCast(c_ulong, @as(c_long, font.glyphCount)), @sizeOf(Rectangle)))); + { + var i: c_int = 0; + while (i < font.glyphCount) : (i += 1) { + _ = fread(@ptrCast(?*anyopaque, &(blk: { + const tmp = i; + if (tmp >= 0) break :blk font.recs + @intCast(usize, tmp) else break :blk font.recs - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(Rectangle), rgsFile); + } + } + font.glyphs = @ptrCast([*c]GlyphInfo, @alignCast(@import("std").meta.alignment(GlyphInfo), calloc(@bitCast(c_ulong, @as(c_long, font.glyphCount)), @sizeOf(GlyphInfo)))); + { + var i: c_int = 0; + while (i < font.glyphCount) : (i += 1) { + _ = fread(@ptrCast(?*anyopaque, &(blk: { + const tmp = i; + if (tmp >= 0) break :blk font.glyphs + @intCast(usize, tmp) else break :blk font.glyphs - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*.value), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &(blk: { + const tmp = i; + if (tmp >= 0) break :blk font.glyphs + @intCast(usize, tmp) else break :blk font.glyphs - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*.offsetX), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &(blk: { + const tmp = i; + if (tmp >= 0) break :blk font.glyphs + @intCast(usize, tmp) else break :blk font.glyphs - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*.offsetY), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + _ = fread(@ptrCast(?*anyopaque, &(blk: { + const tmp = i; + if (tmp >= 0) break :blk font.glyphs + @intCast(usize, tmp) else break :blk font.glyphs - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*.advanceX), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_int), rgsFile); + } + } + GuiSetFont(font); + if ((whiteRec.width != @intToFloat(f32, @as(c_int, 0))) and (whiteRec.height != @intToFloat(f32, @as(c_int, 0)))) { + SetShapesTexture(font.texture, whiteRec); + } + } + } + _ = fclose(rgsFile); + } +} +pub export fn GuiLoadStyleDefault() void { + guiStyleLoaded = @as(c_int, 1) != 0; + GuiSetStyle(DEFAULT, BORDER_COLOR_NORMAL, @bitCast(c_int, @as(c_uint, 2206434303))); + GuiSetStyle(DEFAULT, BASE_COLOR_NORMAL, @bitCast(c_int, @as(c_uint, 3385444863))); + GuiSetStyle(DEFAULT, TEXT_COLOR_NORMAL, @as(c_int, 1751673087)); + GuiSetStyle(DEFAULT, BORDER_COLOR_FOCUSED, @as(c_int, 1538447871)); + GuiSetStyle(DEFAULT, BASE_COLOR_FOCUSED, @bitCast(c_int, @as(c_uint, 3387948799))); + GuiSetStyle(DEFAULT, TEXT_COLOR_FOCUSED, @as(c_int, 1822145791)); + GuiSetStyle(DEFAULT, BORDER_COLOR_PRESSED, @as(c_int, 76728319)); + GuiSetStyle(DEFAULT, BASE_COLOR_PRESSED, @bitCast(c_int, @as(c_uint, 2548629503))); + GuiSetStyle(DEFAULT, TEXT_COLOR_PRESSED, @as(c_int, 915124223)); + GuiSetStyle(DEFAULT, BORDER_COLOR_DISABLED, @bitCast(c_int, @as(c_uint, 3049374463))); + GuiSetStyle(DEFAULT, BASE_COLOR_DISABLED, @bitCast(c_int, @as(c_uint, 3874089471))); + GuiSetStyle(DEFAULT, TEXT_COLOR_DISABLED, @bitCast(c_int, @as(c_uint, 2931276031))); + GuiSetStyle(DEFAULT, BORDER_WIDTH, @as(c_int, 1)); + GuiSetStyle(DEFAULT, TEXT_PADDING, @as(c_int, 0)); + GuiSetStyle(DEFAULT, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_CENTER); + GuiSetStyle(LABEL, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_LEFT); + GuiSetStyle(BUTTON, BORDER_WIDTH, @as(c_int, 2)); + GuiSetStyle(SLIDER, TEXT_PADDING, @as(c_int, 5)); + GuiSetStyle(CHECKBOX, TEXT_PADDING, @as(c_int, 5)); + GuiSetStyle(CHECKBOX, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_RIGHT); + GuiSetStyle(TEXTBOX, TEXT_PADDING, @as(c_int, 5)); + GuiSetStyle(TEXTBOX, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_LEFT); + GuiSetStyle(VALUEBOX, TEXT_PADDING, @as(c_int, 4)); + GuiSetStyle(VALUEBOX, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_LEFT); + GuiSetStyle(SPINNER, TEXT_PADDING, @as(c_int, 4)); + GuiSetStyle(SPINNER, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_LEFT); + GuiSetStyle(STATUSBAR, TEXT_PADDING, @as(c_int, 6)); + GuiSetStyle(STATUSBAR, TEXT_ALIGNMENT, GUI_TEXT_ALIGN_LEFT); + GuiSetStyle(DEFAULT, TEXT_SIZE, @as(c_int, 10)); + GuiSetStyle(DEFAULT, TEXT_SPACING, @as(c_int, 1)); + GuiSetStyle(DEFAULT, LINE_COLOR, @bitCast(c_int, @as(c_uint, 2427172351))); + GuiSetStyle(DEFAULT, BACKGROUND_COLOR, @bitCast(c_int, @as(c_uint, 4126537215))); + GuiSetStyle(TOGGLE, GROUP_PADDING, @as(c_int, 2)); + GuiSetStyle(SLIDER, SLIDER_WIDTH, @as(c_int, 15)); + GuiSetStyle(SLIDER, SLIDER_PADDING, @as(c_int, 1)); + GuiSetStyle(PROGRESSBAR, PROGRESS_PADDING, @as(c_int, 1)); + GuiSetStyle(CHECKBOX, CHECK_PADDING, @as(c_int, 1)); + GuiSetStyle(COMBOBOX, COMBO_BUTTON_WIDTH, @as(c_int, 30)); + GuiSetStyle(COMBOBOX, COMBO_BUTTON_PADDING, @as(c_int, 2)); + GuiSetStyle(DROPDOWNBOX, ARROW_PADDING, @as(c_int, 16)); + GuiSetStyle(DROPDOWNBOX, DROPDOWN_ITEMS_PADDING, @as(c_int, 2)); + GuiSetStyle(TEXTBOX, TEXT_LINES_PADDING, @as(c_int, 5)); + GuiSetStyle(TEXTBOX, TEXT_INNER_PADDING, @as(c_int, 4)); + GuiSetStyle(TEXTBOX, COLOR_SELECTED_FG, @bitCast(c_int, @as(c_uint, 4043308799))); + GuiSetStyle(TEXTBOX, COLOR_SELECTED_BG, @bitCast(c_int, @as(c_uint, 2207973344))); + GuiSetStyle(SPINNER, SPIN_BUTTON_WIDTH, @as(c_int, 20)); + GuiSetStyle(SPINNER, SPIN_BUTTON_PADDING, @as(c_int, 2)); + GuiSetStyle(SCROLLBAR, BORDER_WIDTH, @as(c_int, 0)); + GuiSetStyle(SCROLLBAR, ARROWS_VISIBLE, @as(c_int, 0)); + GuiSetStyle(SCROLLBAR, ARROWS_SIZE, @as(c_int, 6)); + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_PADDING, @as(c_int, 0)); + GuiSetStyle(SCROLLBAR, SCROLL_SLIDER_SIZE, @as(c_int, 16)); + GuiSetStyle(SCROLLBAR, SCROLL_PADDING, @as(c_int, 0)); + GuiSetStyle(SCROLLBAR, SCROLL_SPEED, @as(c_int, 10)); + GuiSetStyle(LISTVIEW, LIST_ITEMS_HEIGHT, @as(c_int, 30)); + GuiSetStyle(LISTVIEW, LIST_ITEMS_PADDING, @as(c_int, 2)); + GuiSetStyle(LISTVIEW, SCROLLBAR_WIDTH, @as(c_int, 10)); + GuiSetStyle(LISTVIEW, SCROLLBAR_SIDE, SCROLLBAR_RIGHT_SIDE); + GuiSetStyle(COLORPICKER, COLOR_SELECTOR_SIZE, @as(c_int, 6)); + GuiSetStyle(COLORPICKER, HUEBAR_WIDTH, @as(c_int, 20)); + GuiSetStyle(COLORPICKER, HUEBAR_PADDING, @as(c_int, 10)); + GuiSetStyle(COLORPICKER, HUEBAR_SELECTOR_HEIGHT, @as(c_int, 6)); + GuiSetStyle(COLORPICKER, HUEBAR_SELECTOR_OVERFLOW, @as(c_int, 2)); + guiFont = GetFontDefault(); +} +pub export fn GuiIconText(arg_iconId: c_int, arg_text: [*c]const u8) [*c]const u8 { + var iconId = arg_iconId; + var text = arg_text; + const buffer = struct { + var static: [1024]u8 = [1]u8{ + 0, + } ++ [1]u8{0} ** 1023; + }; + _ = memset(@ptrCast(?*anyopaque, @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &buffer.static))), @as(c_int, 0), @bitCast(c_ulong, @as(c_long, @as(c_int, 1024)))); + _ = sprintf(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &buffer.static)), "#%03i#", iconId); + if (text != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + { + var i: c_int = 5; + while (i < @as(c_int, 1024)) : (i += 1) { + buffer.static[@intCast(c_uint, i)] = (blk: { + const tmp = i - @as(c_int, 5); + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*; + if (@bitCast(c_int, @as(c_uint, (blk: { + const tmp = i - @as(c_int, 5); + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*)) == @as(c_int, '\x00')) break; + } + } + } + return @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &buffer.static)); +} +pub export fn GuiDrawIcon(arg_iconId: c_int, arg_posX: c_int, arg_posY: c_int, arg_pixelSize: c_int, arg_color: Color) void { + var iconId = arg_iconId; + var posX = arg_posX; + var posY = arg_posY; + var pixelSize = arg_pixelSize; + var color = arg_color; + { + var i: c_int = 0; + var y: c_int = 0; + while (i < @divTrunc(@as(c_int, 16) * @as(c_int, 16), @as(c_int, 32))) : (i += 1) { + { + var k: c_int = 0; + while (k < @as(c_int, 32)) : (k += 1) { + if ((guiIcons[@intCast(c_uint, (iconId * @divTrunc(@as(c_int, 16) * @as(c_int, 16), @as(c_int, 32))) + i)] & @bitCast(c_uint, @as(c_int, 1) << @intCast(@import("std").math.Log2Int(c_int), k))) != 0) { + DrawRectangle(posX + (@import("std").zig.c_translation.signedRemainder(k, @as(c_int, 16)) * pixelSize), posY + (y * pixelSize), pixelSize, pixelSize, color); + } + if ((k == @as(c_int, 15)) or (k == @as(c_int, 31))) { + y += 1; + } + } + } + } + } +} +pub export fn GuiGetIcons() [*c]c_uint { + return @ptrCast([*c]c_uint, @alignCast(@import("std").meta.alignment(c_uint), &guiIcons)); +} +pub export fn GuiGetIconData(arg_iconId: c_int) [*c]c_uint { + var iconId = arg_iconId; + const iconData = struct { + var static: [8]c_uint = [1]c_uint{ + 0, + } ++ [1]c_uint{0} ** 7; + }; + _ = memset(@ptrCast(?*anyopaque, @ptrCast([*c]c_uint, @alignCast(@import("std").meta.alignment(c_uint), &iconData.static))), @as(c_int, 0), @bitCast(c_ulong, @as(c_long, @divTrunc(@as(c_int, 16) * @as(c_int, 16), @as(c_int, 32)))) *% @sizeOf(c_uint)); + if (iconId < @as(c_int, 256)) { + _ = memcpy(@ptrCast(?*anyopaque, @ptrCast([*c]c_uint, @alignCast(@import("std").meta.alignment(c_uint), &iconData.static))), @ptrCast(?*const anyopaque, &guiIcons[@intCast(c_uint, iconId * @divTrunc(@as(c_int, 16) * @as(c_int, 16), @as(c_int, 32)))]), @bitCast(c_ulong, @as(c_long, @divTrunc(@as(c_int, 16) * @as(c_int, 16), @as(c_int, 32)))) *% @sizeOf(c_uint)); + } + return @ptrCast([*c]c_uint, @alignCast(@import("std").meta.alignment(c_uint), &iconData.static)); +} +pub export fn GuiSetIconData(arg_iconId: c_int, arg_data: [*c]c_uint) void { + var iconId = arg_iconId; + var data = arg_data; + if (iconId < @as(c_int, 256)) { + _ = memcpy(@ptrCast(?*anyopaque, &guiIcons[@intCast(c_uint, iconId * @divTrunc(@as(c_int, 16) * @as(c_int, 16), @as(c_int, 32)))]), @ptrCast(?*const anyopaque, data), @bitCast(c_ulong, @as(c_long, @divTrunc(@as(c_int, 16) * @as(c_int, 16), @as(c_int, 32)))) *% @sizeOf(c_uint)); + } +} +pub export fn GuiSetIconPixel(arg_iconId: c_int, arg_x: c_int, arg_y: c_int) void { + var iconId = arg_iconId; + var x = arg_x; + var y = arg_y; + _ = blk: { + const ref = &guiIcons[@bitCast(c_ulong, @as(c_long, iconId * @divTrunc(@as(c_int, 16) * @as(c_int, 16), @as(c_int, 32)))) +% (@bitCast(c_ulong, @as(c_long, y)) / ((@sizeOf(c_uint) *% @bitCast(c_ulong, @as(c_long, @as(c_int, 8)))) / @bitCast(c_ulong, @as(c_long, @as(c_int, 16)))))]; + ref.* |= @bitCast(c_uint, @as(c_int, 1) << @intCast(@import("std").math.Log2Int(c_int), @bitCast(c_ulong, @as(c_long, x)) +% ((@bitCast(c_ulong, @as(c_long, y)) % ((@sizeOf(c_uint) *% @bitCast(c_ulong, @as(c_long, @as(c_int, 8)))) / @bitCast(c_ulong, @as(c_long, @as(c_int, 16))))) *% @bitCast(c_ulong, @as(c_long, @as(c_int, 16)))))); + break :blk ref.*; + }; +} +pub export fn GuiClearIconPixel(arg_iconId: c_int, arg_x: c_int, arg_y: c_int) void { + var iconId = arg_iconId; + var x = arg_x; + var y = arg_y; + _ = blk: { + const ref = &guiIcons[@bitCast(c_ulong, @as(c_long, iconId * @divTrunc(@as(c_int, 16) * @as(c_int, 16), @as(c_int, 32)))) +% (@bitCast(c_ulong, @as(c_long, y)) / ((@sizeOf(c_uint) *% @bitCast(c_ulong, @as(c_long, @as(c_int, 8)))) / @bitCast(c_ulong, @as(c_long, @as(c_int, 16)))))]; + ref.* &= @bitCast(c_uint, ~(@as(c_int, 1) << @intCast(@import("std").math.Log2Int(c_int), @bitCast(c_ulong, @as(c_long, x)) +% ((@bitCast(c_ulong, @as(c_long, y)) % ((@sizeOf(c_uint) *% @bitCast(c_ulong, @as(c_long, @as(c_int, 8)))) / @bitCast(c_ulong, @as(c_long, @as(c_int, 16))))) *% @bitCast(c_ulong, @as(c_long, @as(c_int, 16))))))); + break :blk ref.*; + }; +} +pub export fn GuiCheckIconPixel(arg_iconId: c_int, arg_x: c_int, arg_y: c_int) bool { + var iconId = arg_iconId; + var x = arg_x; + var y = arg_y; + return (guiIcons[@intCast(c_uint, (iconId * @as(c_int, 8)) + @divTrunc(y, @as(c_int, 2)))] & @bitCast(c_uint, @as(c_int, 1) << @intCast(@import("std").math.Log2Int(c_int), x + (@import("std").zig.c_translation.signedRemainder(y, @as(c_int, 2)) * @as(c_int, 16))))) != 0; +} +pub const __u_char = u8; +pub const __u_short = c_ushort; +pub const __u_int = c_uint; +pub const __u_long = c_ulong; +pub const __int8_t = i8; +pub const __uint8_t = u8; +pub const __int16_t = c_short; +pub const __uint16_t = c_ushort; +pub const __int32_t = c_int; +pub const __uint32_t = c_uint; +pub const __int64_t = c_long; +pub const __uint64_t = c_ulong; +pub const __int_least8_t = __int8_t; +pub const __uint_least8_t = __uint8_t; +pub const __int_least16_t = __int16_t; +pub const __uint_least16_t = __uint16_t; +pub const __int_least32_t = __int32_t; +pub const __uint_least32_t = __uint32_t; +pub const __int_least64_t = __int64_t; +pub const __uint_least64_t = __uint64_t; +pub const __quad_t = c_long; +pub const __u_quad_t = c_ulong; +pub const __intmax_t = c_long; +pub const __uintmax_t = c_ulong; +pub const __dev_t = c_ulong; +pub const __uid_t = c_uint; +pub const __gid_t = c_uint; +pub const __ino_t = c_ulong; +pub const __ino64_t = c_ulong; +pub const __mode_t = c_uint; +pub const __nlink_t = c_ulong; +pub const __pid_t = c_int; +pub const __fsid_t = extern struct { + __val: [2]c_int, +}; +pub const __clock_t = c_long; +pub const __rlim_t = c_ulong; +pub const __rlim64_t = c_ulong; +pub const __id_t = c_uint; +pub const __time_t = c_long; +pub const __useconds_t = c_uint; +pub const __suseconds_t = c_long; +pub const __suseconds64_t = c_long; +pub const __daddr_t = c_int; +pub const __key_t = c_int; +pub const __clockid_t = c_int; +pub const __timer_t = ?*anyopaque; +pub const __blksize_t = c_long; +pub const __blkcnt_t = c_long; +pub const __blkcnt64_t = c_long; +pub const __fsblkcnt_t = c_ulong; +pub const __fsblkcnt64_t = c_ulong; +pub const __fsfilcnt_t = c_ulong; +pub const __fsfilcnt64_t = c_ulong; +pub const __fsword_t = c_long; +pub const __ssize_t = c_long; +pub const __syscall_slong_t = c_long; +pub const __syscall_ulong_t = c_ulong; +pub const __loff_t = __off64_t; +pub const __caddr_t = [*c]u8; +pub const __intptr_t = c_long; +pub const __socklen_t = c_uint; +pub const __sig_atomic_t = c_int; +const union_unnamed_1 = extern union { + __wch: c_uint, + __wchb: [4]u8, +}; +pub const __mbstate_t = extern struct { + __count: c_int, + __value: union_unnamed_1, +}; +pub const struct__G_fpos_t = extern struct { + __pos: __off_t, + __state: __mbstate_t, +}; +pub const __fpos_t = struct__G_fpos_t; +pub const struct__G_fpos64_t = extern struct { + __pos: __off64_t, + __state: __mbstate_t, +}; +pub const __fpos64_t = struct__G_fpos64_t; +pub const __FILE = struct__IO_FILE; +pub const off_t = __off_t; +pub const fpos_t = __fpos_t; +pub extern var stdin: [*c]FILE; +pub extern var stdout: [*c]FILE; +pub extern var stderr: [*c]FILE; +pub extern fn remove(__filename: [*c]const u8) c_int; +pub extern fn rename(__old: [*c]const u8, __new: [*c]const u8) c_int; +pub extern fn renameat(__oldfd: c_int, __old: [*c]const u8, __newfd: c_int, __new: [*c]const u8) c_int; +pub extern fn fclose(__stream: [*c]FILE) c_int; +pub extern fn tmpfile() [*c]FILE; +pub extern fn tmpnam([*c]u8) [*c]u8; +pub extern fn tmpnam_r(__s: [*c]u8) [*c]u8; +pub extern fn tempnam(__dir: [*c]const u8, __pfx: [*c]const u8) [*c]u8; +pub extern fn fflush(__stream: [*c]FILE) c_int; +pub extern fn fflush_unlocked(__stream: [*c]FILE) c_int; +pub extern fn fopen(__filename: [*c]const u8, __modes: [*c]const u8) [*c]FILE; +pub extern fn freopen(noalias __filename: [*c]const u8, noalias __modes: [*c]const u8, noalias __stream: [*c]FILE) [*c]FILE; +pub extern fn fdopen(__fd: c_int, __modes: [*c]const u8) [*c]FILE; +pub extern fn fmemopen(__s: ?*anyopaque, __len: usize, __modes: [*c]const u8) [*c]FILE; +pub extern fn open_memstream(__bufloc: [*c][*c]u8, __sizeloc: [*c]usize) [*c]FILE; +pub extern fn setbuf(noalias __stream: [*c]FILE, noalias __buf: [*c]u8) void; +pub extern fn setvbuf(noalias __stream: [*c]FILE, noalias __buf: [*c]u8, __modes: c_int, __n: usize) c_int; +pub extern fn setbuffer(noalias __stream: [*c]FILE, noalias __buf: [*c]u8, __size: usize) void; +pub extern fn setlinebuf(__stream: [*c]FILE) void; +pub extern fn fprintf(__stream: [*c]FILE, __format: [*c]const u8, ...) c_int; +pub extern fn printf(__format: [*c]const u8, ...) c_int; +pub extern fn sprintf(__s: [*c]u8, __format: [*c]const u8, ...) c_int; +pub extern fn vfprintf(__s: [*c]FILE, __format: [*c]const u8, __arg: [*c]struct___va_list_tag) c_int; +pub fn vprintf(arg___fmt: [*c]const u8, arg___arg: [*c]struct___va_list_tag) callconv(.C) c_int { + var __fmt = arg___fmt; + var __arg = arg___arg; + return vfprintf(stdout, __fmt, __arg); +} +pub extern fn vsprintf(__s: [*c]u8, __format: [*c]const u8, __arg: [*c]struct___va_list_tag) c_int; +pub extern fn snprintf(__s: [*c]u8, __maxlen: c_ulong, __format: [*c]const u8, ...) c_int; +pub extern fn vsnprintf(__s: [*c]u8, __maxlen: c_ulong, __format: [*c]const u8, __arg: [*c]struct___va_list_tag) c_int; +pub extern fn vdprintf(__fd: c_int, noalias __fmt: [*c]const u8, __arg: [*c]struct___va_list_tag) c_int; +pub extern fn dprintf(__fd: c_int, noalias __fmt: [*c]const u8, ...) c_int; +pub extern fn fscanf(noalias __stream: [*c]FILE, noalias __format: [*c]const u8, ...) c_int; +pub extern fn scanf(noalias __format: [*c]const u8, ...) c_int; +pub extern fn sscanf(noalias __s: [*c]const u8, noalias __format: [*c]const u8, ...) c_int; +pub const _Float32 = f32; +pub const _Float64 = f64; +pub const _Float32x = f64; +pub const _Float64x = c_longdouble; +pub extern fn vfscanf(noalias __s: [*c]FILE, noalias __format: [*c]const u8, __arg: [*c]struct___va_list_tag) c_int; +pub extern fn vscanf(noalias __format: [*c]const u8, __arg: [*c]struct___va_list_tag) c_int; +pub extern fn vsscanf(noalias __s: [*c]const u8, noalias __format: [*c]const u8, __arg: [*c]struct___va_list_tag) c_int; +pub extern fn fgetc(__stream: [*c]FILE) c_int; +pub extern fn getc(__stream: [*c]FILE) c_int; +pub fn getchar() callconv(.C) c_int { + return getc(stdin); +} +pub fn getc_unlocked(arg___fp: [*c]FILE) callconv(.C) c_int { + var __fp = arg___fp; + return if (__builtin_expect(@bitCast(c_long, @as(c_long, @boolToInt(__fp.*._IO_read_ptr >= __fp.*._IO_read_end))), @bitCast(c_long, @as(c_long, @as(c_int, 0)))) != 0) __uflow(__fp) else @bitCast(c_int, @as(c_uint, @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), blk: { + const ref = &__fp.*._IO_read_ptr; + const tmp = ref.*; + ref.* += 1; + break :blk tmp; + })).*)); +} +pub fn getchar_unlocked() callconv(.C) c_int { + return if (__builtin_expect(@bitCast(c_long, @as(c_long, @boolToInt(stdin.*._IO_read_ptr >= stdin.*._IO_read_end))), @bitCast(c_long, @as(c_long, @as(c_int, 0)))) != 0) __uflow(stdin) else @bitCast(c_int, @as(c_uint, @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), blk: { + const ref = &stdin.*._IO_read_ptr; + const tmp = ref.*; + ref.* += 1; + break :blk tmp; + })).*)); +} +pub fn fgetc_unlocked(arg___fp: [*c]FILE) callconv(.C) c_int { + var __fp = arg___fp; + return if (__builtin_expect(@bitCast(c_long, @as(c_long, @boolToInt(__fp.*._IO_read_ptr >= __fp.*._IO_read_end))), @bitCast(c_long, @as(c_long, @as(c_int, 0)))) != 0) __uflow(__fp) else @bitCast(c_int, @as(c_uint, @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), blk: { + const ref = &__fp.*._IO_read_ptr; + const tmp = ref.*; + ref.* += 1; + break :blk tmp; + })).*)); +} +pub extern fn fputc(__c: c_int, __stream: [*c]FILE) c_int; +pub extern fn putc(__c: c_int, __stream: [*c]FILE) c_int; +pub fn putchar(arg___c: c_int) callconv(.C) c_int { + var __c = arg___c; + return putc(__c, stdout); +} +pub fn fputc_unlocked(arg___c: c_int, arg___stream: [*c]FILE) callconv(.C) c_int { + var __c = arg___c; + var __stream = arg___stream; + return if (__builtin_expect(@bitCast(c_long, @as(c_long, @boolToInt(__stream.*._IO_write_ptr >= __stream.*._IO_write_end))), @bitCast(c_long, @as(c_long, @as(c_int, 0)))) != 0) __overflow(__stream, @bitCast(c_int, @as(c_uint, @bitCast(u8, @truncate(i8, __c))))) else @bitCast(c_int, @as(c_uint, @bitCast(u8, blk: { + const tmp = @bitCast(u8, @truncate(i8, __c)); + (blk_1: { + const ref = &__stream.*._IO_write_ptr; + const tmp_2 = ref.*; + ref.* += 1; + break :blk_1 tmp_2; + }).* = tmp; + break :blk tmp; + }))); +} +pub fn putc_unlocked(arg___c: c_int, arg___stream: [*c]FILE) callconv(.C) c_int { + var __c = arg___c; + var __stream = arg___stream; + return if (__builtin_expect(@bitCast(c_long, @as(c_long, @boolToInt(__stream.*._IO_write_ptr >= __stream.*._IO_write_end))), @bitCast(c_long, @as(c_long, @as(c_int, 0)))) != 0) __overflow(__stream, @bitCast(c_int, @as(c_uint, @bitCast(u8, @truncate(i8, __c))))) else @bitCast(c_int, @as(c_uint, @bitCast(u8, blk: { + const tmp = @bitCast(u8, @truncate(i8, __c)); + (blk_1: { + const ref = &__stream.*._IO_write_ptr; + const tmp_2 = ref.*; + ref.* += 1; + break :blk_1 tmp_2; + }).* = tmp; + break :blk tmp; + }))); +} +pub fn putchar_unlocked(arg___c: c_int) callconv(.C) c_int { + var __c = arg___c; + return if (__builtin_expect(@bitCast(c_long, @as(c_long, @boolToInt(stdout.*._IO_write_ptr >= stdout.*._IO_write_end))), @bitCast(c_long, @as(c_long, @as(c_int, 0)))) != 0) __overflow(stdout, @bitCast(c_int, @as(c_uint, @bitCast(u8, @truncate(i8, __c))))) else @bitCast(c_int, @as(c_uint, @bitCast(u8, blk: { + const tmp = @bitCast(u8, @truncate(i8, __c)); + (blk_1: { + const ref = &stdout.*._IO_write_ptr; + const tmp_2 = ref.*; + ref.* += 1; + break :blk_1 tmp_2; + }).* = tmp; + break :blk tmp; + }))); +} +pub extern fn getw(__stream: [*c]FILE) c_int; +pub extern fn putw(__w: c_int, __stream: [*c]FILE) c_int; +pub extern fn fgets(noalias __s: [*c]u8, __n: c_int, noalias __stream: [*c]FILE) [*c]u8; +pub extern fn __getdelim(noalias __lineptr: [*c][*c]u8, noalias __n: [*c]usize, __delimiter: c_int, noalias __stream: [*c]FILE) __ssize_t; +pub extern fn getdelim(noalias __lineptr: [*c][*c]u8, noalias __n: [*c]usize, __delimiter: c_int, noalias __stream: [*c]FILE) __ssize_t; +pub extern fn getline(noalias __lineptr: [*c][*c]u8, noalias __n: [*c]usize, noalias __stream: [*c]FILE) __ssize_t; +pub extern fn fputs(noalias __s: [*c]const u8, noalias __stream: [*c]FILE) c_int; +pub extern fn puts(__s: [*c]const u8) c_int; +pub extern fn ungetc(__c: c_int, __stream: [*c]FILE) c_int; +pub extern fn fread(__ptr: ?*anyopaque, __size: c_ulong, __n: c_ulong, __stream: [*c]FILE) c_ulong; +pub extern fn fwrite(__ptr: ?*const anyopaque, __size: c_ulong, __n: c_ulong, __s: [*c]FILE) c_ulong; +pub extern fn fread_unlocked(noalias __ptr: ?*anyopaque, __size: usize, __n: usize, noalias __stream: [*c]FILE) usize; +pub extern fn fwrite_unlocked(noalias __ptr: ?*const anyopaque, __size: usize, __n: usize, noalias __stream: [*c]FILE) usize; +pub extern fn fseek(__stream: [*c]FILE, __off: c_long, __whence: c_int) c_int; +pub extern fn ftell(__stream: [*c]FILE) c_long; +pub extern fn rewind(__stream: [*c]FILE) void; +pub extern fn fseeko(__stream: [*c]FILE, __off: __off_t, __whence: c_int) c_int; +pub extern fn ftello(__stream: [*c]FILE) __off_t; +pub extern fn fgetpos(noalias __stream: [*c]FILE, noalias __pos: [*c]fpos_t) c_int; +pub extern fn fsetpos(__stream: [*c]FILE, __pos: [*c]const fpos_t) c_int; +pub extern fn clearerr(__stream: [*c]FILE) void; +pub extern fn feof(__stream: [*c]FILE) c_int; +pub extern fn ferror(__stream: [*c]FILE) c_int; +pub extern fn clearerr_unlocked(__stream: [*c]FILE) void; +pub fn feof_unlocked(arg___stream: [*c]FILE) callconv(.C) c_int { + var __stream = arg___stream; + return @boolToInt((__stream.*._flags & @as(c_int, 16)) != @as(c_int, 0)); +} +pub fn ferror_unlocked(arg___stream: [*c]FILE) callconv(.C) c_int { + var __stream = arg___stream; + return @boolToInt((__stream.*._flags & @as(c_int, 32)) != @as(c_int, 0)); +} +pub extern fn perror(__s: [*c]const u8) void; +pub extern fn fileno(__stream: [*c]FILE) c_int; +pub extern fn fileno_unlocked(__stream: [*c]FILE) c_int; +pub extern fn pclose(__stream: [*c]FILE) c_int; +pub extern fn popen(__command: [*c]const u8, __modes: [*c]const u8) [*c]FILE; +pub extern fn ctermid(__s: [*c]u8) [*c]u8; +pub extern fn flockfile(__stream: [*c]FILE) void; +pub extern fn ftrylockfile(__stream: [*c]FILE) c_int; +pub extern fn funlockfile(__stream: [*c]FILE) void; +pub extern fn __uflow([*c]FILE) c_int; +pub extern fn __overflow([*c]FILE, c_int) c_int; +pub const wchar_t = c_int; +pub const div_t = extern struct { + quot: c_int, + rem: c_int, +}; +pub const ldiv_t = extern struct { + quot: c_long, + rem: c_long, +}; +pub const lldiv_t = extern struct { + quot: c_longlong, + rem: c_longlong, +}; +pub extern fn __ctype_get_mb_cur_max() usize; +pub fn atof(arg___nptr: [*c]const u8) callconv(.C) f64 { + var __nptr = arg___nptr; + return strtod(__nptr, @ptrCast([*c][*c]u8, @alignCast(@import("std").meta.alignment([*c]u8), @intToPtr(?*anyopaque, @as(c_int, 0))))); +} +pub fn atoi(arg___nptr: [*c]const u8) callconv(.C) c_int { + var __nptr = arg___nptr; + return @bitCast(c_int, @truncate(c_int, strtol(__nptr, @ptrCast([*c][*c]u8, @alignCast(@import("std").meta.alignment([*c]u8), @intToPtr(?*anyopaque, @as(c_int, 0)))), @as(c_int, 10)))); +} +pub fn atol(arg___nptr: [*c]const u8) callconv(.C) c_long { + var __nptr = arg___nptr; + return strtol(__nptr, @ptrCast([*c][*c]u8, @alignCast(@import("std").meta.alignment([*c]u8), @intToPtr(?*anyopaque, @as(c_int, 0)))), @as(c_int, 10)); +} +pub fn atoll(arg___nptr: [*c]const u8) callconv(.C) c_longlong { + var __nptr = arg___nptr; + return strtoll(__nptr, @ptrCast([*c][*c]u8, @alignCast(@import("std").meta.alignment([*c]u8), @intToPtr(?*anyopaque, @as(c_int, 0)))), @as(c_int, 10)); +} +pub extern fn strtod(__nptr: [*c]const u8, __endptr: [*c][*c]u8) f64; +pub extern fn strtof(__nptr: [*c]const u8, __endptr: [*c][*c]u8) f32; +pub extern fn strtold(__nptr: [*c]const u8, __endptr: [*c][*c]u8) c_longdouble; +pub extern fn strtol(__nptr: [*c]const u8, __endptr: [*c][*c]u8, __base: c_int) c_long; +pub extern fn strtoul(__nptr: [*c]const u8, __endptr: [*c][*c]u8, __base: c_int) c_ulong; +pub extern fn strtoq(noalias __nptr: [*c]const u8, noalias __endptr: [*c][*c]u8, __base: c_int) c_longlong; +pub extern fn strtouq(noalias __nptr: [*c]const u8, noalias __endptr: [*c][*c]u8, __base: c_int) c_ulonglong; +pub extern fn strtoll(__nptr: [*c]const u8, __endptr: [*c][*c]u8, __base: c_int) c_longlong; +pub extern fn strtoull(__nptr: [*c]const u8, __endptr: [*c][*c]u8, __base: c_int) c_ulonglong; +pub extern fn l64a(__n: c_long) [*c]u8; +pub extern fn a64l(__s: [*c]const u8) c_long; +pub const u_char = __u_char; +pub const u_short = __u_short; +pub const u_int = __u_int; +pub const u_long = __u_long; +pub const quad_t = __quad_t; +pub const u_quad_t = __u_quad_t; +pub const fsid_t = __fsid_t; +pub const loff_t = __loff_t; +pub const ino_t = __ino_t; +pub const dev_t = __dev_t; +pub const gid_t = __gid_t; +pub const mode_t = __mode_t; +pub const nlink_t = __nlink_t; +pub const uid_t = __uid_t; +pub const pid_t = __pid_t; +pub const id_t = __id_t; +pub const daddr_t = __daddr_t; +pub const caddr_t = __caddr_t; +pub const key_t = __key_t; +pub const clock_t = __clock_t; +pub const clockid_t = __clockid_t; +pub const time_t = __time_t; +pub const timer_t = __timer_t; +pub const ulong = c_ulong; +pub const ushort = c_ushort; +pub const uint = c_uint; +pub const u_int8_t = __uint8_t; +pub const u_int16_t = __uint16_t; +pub const u_int32_t = __uint32_t; +pub const u_int64_t = __uint64_t; +pub const register_t = c_long; +pub fn __bswap_16(arg___bsx: __uint16_t) callconv(.C) __uint16_t { + var __bsx = arg___bsx; + return @bitCast(__uint16_t, @truncate(c_short, ((@bitCast(c_int, @as(c_uint, __bsx)) >> @intCast(@import("std").math.Log2Int(c_int), 8)) & @as(c_int, 255)) | ((@bitCast(c_int, @as(c_uint, __bsx)) & @as(c_int, 255)) << @intCast(@import("std").math.Log2Int(c_int), 8)))); +} +pub fn __bswap_32(arg___bsx: __uint32_t) callconv(.C) __uint32_t { + var __bsx = arg___bsx; + return ((((__bsx & @as(c_uint, 4278190080)) >> @intCast(@import("std").math.Log2Int(c_uint), 24)) | ((__bsx & @as(c_uint, 16711680)) >> @intCast(@import("std").math.Log2Int(c_uint), 8))) | ((__bsx & @as(c_uint, 65280)) << @intCast(@import("std").math.Log2Int(c_uint), 8))) | ((__bsx & @as(c_uint, 255)) << @intCast(@import("std").math.Log2Int(c_uint), 24)); +} +pub fn __bswap_64(arg___bsx: __uint64_t) callconv(.C) __uint64_t { + var __bsx = arg___bsx; + return @bitCast(__uint64_t, @truncate(c_ulong, ((((((((@bitCast(c_ulonglong, @as(c_ulonglong, __bsx)) & @as(c_ulonglong, 18374686479671623680)) >> @intCast(@import("std").math.Log2Int(c_ulonglong), 56)) | ((@bitCast(c_ulonglong, @as(c_ulonglong, __bsx)) & @as(c_ulonglong, 71776119061217280)) >> @intCast(@import("std").math.Log2Int(c_ulonglong), 40))) | ((@bitCast(c_ulonglong, @as(c_ulonglong, __bsx)) & @as(c_ulonglong, 280375465082880)) >> @intCast(@import("std").math.Log2Int(c_ulonglong), 24))) | ((@bitCast(c_ulonglong, @as(c_ulonglong, __bsx)) & @as(c_ulonglong, 1095216660480)) >> @intCast(@import("std").math.Log2Int(c_ulonglong), 8))) | ((@bitCast(c_ulonglong, @as(c_ulonglong, __bsx)) & @as(c_ulonglong, 4278190080)) << @intCast(@import("std").math.Log2Int(c_ulonglong), 8))) | ((@bitCast(c_ulonglong, @as(c_ulonglong, __bsx)) & @as(c_ulonglong, 16711680)) << @intCast(@import("std").math.Log2Int(c_ulonglong), 24))) | ((@bitCast(c_ulonglong, @as(c_ulonglong, __bsx)) & @as(c_ulonglong, 65280)) << @intCast(@import("std").math.Log2Int(c_ulonglong), 40))) | ((@bitCast(c_ulonglong, @as(c_ulonglong, __bsx)) & @as(c_ulonglong, 255)) << @intCast(@import("std").math.Log2Int(c_ulonglong), 56)))); +} +pub fn __uint16_identity(arg___x: __uint16_t) callconv(.C) __uint16_t { + var __x = arg___x; + return __x; +} +pub fn __uint32_identity(arg___x: __uint32_t) callconv(.C) __uint32_t { + var __x = arg___x; + return __x; +} +pub fn __uint64_identity(arg___x: __uint64_t) callconv(.C) __uint64_t { + var __x = arg___x; + return __x; +} +pub const __sigset_t = extern struct { + __val: [16]c_ulong, +}; +pub const sigset_t = __sigset_t; +pub const struct_timeval = extern struct { + tv_sec: __time_t, + tv_usec: __suseconds_t, +}; +pub const struct_timespec = extern struct { + tv_sec: __time_t, + tv_nsec: __syscall_slong_t, +}; +pub const suseconds_t = __suseconds_t; +pub const __fd_mask = c_long; +pub const fd_set = extern struct { + __fds_bits: [16]__fd_mask, +}; +pub const fd_mask = __fd_mask; +pub extern fn select(__nfds: c_int, noalias __readfds: [*c]fd_set, noalias __writefds: [*c]fd_set, noalias __exceptfds: [*c]fd_set, noalias __timeout: [*c]struct_timeval) c_int; +pub extern fn pselect(__nfds: c_int, noalias __readfds: [*c]fd_set, noalias __writefds: [*c]fd_set, noalias __exceptfds: [*c]fd_set, noalias __timeout: [*c]const struct_timespec, noalias __sigmask: [*c]const __sigset_t) c_int; +pub const blksize_t = __blksize_t; +pub const blkcnt_t = __blkcnt_t; +pub const fsblkcnt_t = __fsblkcnt_t; +pub const fsfilcnt_t = __fsfilcnt_t; +pub const struct___pthread_internal_list = extern struct { + __prev: [*c]struct___pthread_internal_list, + __next: [*c]struct___pthread_internal_list, +}; +pub const __pthread_list_t = struct___pthread_internal_list; +pub const struct___pthread_internal_slist = extern struct { + __next: [*c]struct___pthread_internal_slist, +}; +pub const __pthread_slist_t = struct___pthread_internal_slist; +pub const struct___pthread_mutex_s = extern struct { + __lock: c_int, + __count: c_uint, + __owner: c_int, + __nusers: c_uint, + __kind: c_int, + __spins: c_short, + __elision: c_short, + __list: __pthread_list_t, +}; +pub const struct___pthread_rwlock_arch_t = extern struct { + __readers: c_uint, + __writers: c_uint, + __wrphase_futex: c_uint, + __writers_futex: c_uint, + __pad3: c_uint, + __pad4: c_uint, + __cur_writer: c_int, + __shared: c_int, + __rwelision: i8, + __pad1: [7]u8, + __pad2: c_ulong, + __flags: c_uint, +}; +const struct_unnamed_3 = extern struct { + __low: c_uint, + __high: c_uint, +}; +const union_unnamed_2 = extern union { + __wseq: c_ulonglong, + __wseq32: struct_unnamed_3, +}; +const struct_unnamed_5 = extern struct { + __low: c_uint, + __high: c_uint, +}; +const union_unnamed_4 = extern union { + __g1_start: c_ulonglong, + __g1_start32: struct_unnamed_5, +}; +pub const struct___pthread_cond_s = extern struct { + unnamed_0: union_unnamed_2, + unnamed_1: union_unnamed_4, + __g_refs: [2]c_uint, + __g_size: [2]c_uint, + __g1_orig_size: c_uint, + __wrefs: c_uint, + __g_signals: [2]c_uint, +}; +pub const __tss_t = c_uint; +pub const __thrd_t = c_ulong; +pub const __once_flag = extern struct { + __data: c_int, +}; +pub const pthread_t = c_ulong; +pub const pthread_mutexattr_t = extern union { + __size: [4]u8, + __align: c_int, +}; +pub const pthread_condattr_t = extern union { + __size: [4]u8, + __align: c_int, +}; +pub const pthread_key_t = c_uint; +pub const pthread_once_t = c_int; +pub const union_pthread_attr_t = extern union { + __size: [56]u8, + __align: c_long, +}; +pub const pthread_attr_t = union_pthread_attr_t; +pub const pthread_mutex_t = extern union { + __data: struct___pthread_mutex_s, + __size: [40]u8, + __align: c_long, +}; +pub const pthread_cond_t = extern union { + __data: struct___pthread_cond_s, + __size: [48]u8, + __align: c_longlong, +}; +pub const pthread_rwlock_t = extern union { + __data: struct___pthread_rwlock_arch_t, + __size: [56]u8, + __align: c_long, +}; +pub const pthread_rwlockattr_t = extern union { + __size: [8]u8, + __align: c_long, +}; +pub const pthread_spinlock_t = c_int; +pub const pthread_barrier_t = extern union { + __size: [32]u8, + __align: c_long, +}; +pub const pthread_barrierattr_t = extern union { + __size: [4]u8, + __align: c_int, +}; +pub extern fn random() c_long; +pub extern fn srandom(__seed: c_uint) void; +pub extern fn initstate(__seed: c_uint, __statebuf: [*c]u8, __statelen: usize) [*c]u8; +pub extern fn setstate(__statebuf: [*c]u8) [*c]u8; +pub const struct_random_data = extern struct { + fptr: [*c]i32, + rptr: [*c]i32, + state: [*c]i32, + rand_type: c_int, + rand_deg: c_int, + rand_sep: c_int, + end_ptr: [*c]i32, +}; +pub extern fn random_r(noalias __buf: [*c]struct_random_data, noalias __result: [*c]i32) c_int; +pub extern fn srandom_r(__seed: c_uint, __buf: [*c]struct_random_data) c_int; +pub extern fn initstate_r(__seed: c_uint, noalias __statebuf: [*c]u8, __statelen: usize, noalias __buf: [*c]struct_random_data) c_int; +pub extern fn setstate_r(noalias __statebuf: [*c]u8, noalias __buf: [*c]struct_random_data) c_int; +pub extern fn rand() c_int; +pub extern fn srand(__seed: c_uint) void; +pub extern fn rand_r(__seed: [*c]c_uint) c_int; +pub extern fn drand48() f64; +pub extern fn erand48(__xsubi: [*c]c_ushort) f64; +pub extern fn lrand48() c_long; +pub extern fn nrand48(__xsubi: [*c]c_ushort) c_long; +pub extern fn mrand48() c_long; +pub extern fn jrand48(__xsubi: [*c]c_ushort) c_long; +pub extern fn srand48(__seedval: c_long) void; +pub extern fn seed48(__seed16v: [*c]c_ushort) [*c]c_ushort; +pub extern fn lcong48(__param: [*c]c_ushort) void; +pub const struct_drand48_data = extern struct { + __x: [3]c_ushort, + __old_x: [3]c_ushort, + __c: c_ushort, + __init: c_ushort, + __a: c_ulonglong, +}; +pub extern fn drand48_r(noalias __buffer: [*c]struct_drand48_data, noalias __result: [*c]f64) c_int; +pub extern fn erand48_r(__xsubi: [*c]c_ushort, noalias __buffer: [*c]struct_drand48_data, noalias __result: [*c]f64) c_int; +pub extern fn lrand48_r(noalias __buffer: [*c]struct_drand48_data, noalias __result: [*c]c_long) c_int; +pub extern fn nrand48_r(__xsubi: [*c]c_ushort, noalias __buffer: [*c]struct_drand48_data, noalias __result: [*c]c_long) c_int; +pub extern fn mrand48_r(noalias __buffer: [*c]struct_drand48_data, noalias __result: [*c]c_long) c_int; +pub extern fn jrand48_r(__xsubi: [*c]c_ushort, noalias __buffer: [*c]struct_drand48_data, noalias __result: [*c]c_long) c_int; +pub extern fn srand48_r(__seedval: c_long, __buffer: [*c]struct_drand48_data) c_int; +pub extern fn seed48_r(__seed16v: [*c]c_ushort, __buffer: [*c]struct_drand48_data) c_int; +pub extern fn lcong48_r(__param: [*c]c_ushort, __buffer: [*c]struct_drand48_data) c_int; +pub extern fn malloc(__size: c_ulong) ?*anyopaque; +pub extern fn calloc(__nmemb: c_ulong, __size: c_ulong) ?*anyopaque; +pub extern fn realloc(__ptr: ?*anyopaque, __size: c_ulong) ?*anyopaque; +pub extern fn free(__ptr: ?*anyopaque) void; +pub extern fn reallocarray(__ptr: ?*anyopaque, __nmemb: usize, __size: usize) ?*anyopaque; +pub extern fn alloca(__size: c_ulong) ?*anyopaque; +pub extern fn valloc(__size: usize) ?*anyopaque; +pub extern fn posix_memalign(__memptr: [*c]?*anyopaque, __alignment: usize, __size: usize) c_int; +pub extern fn aligned_alloc(__alignment: c_ulong, __size: c_ulong) ?*anyopaque; +pub extern fn abort() noreturn; +pub extern fn atexit(__func: ?fn () callconv(.C) void) c_int; +pub extern fn at_quick_exit(__func: ?fn () callconv(.C) void) c_int; +pub extern fn on_exit(__func: ?fn (c_int, ?*anyopaque) callconv(.C) void, __arg: ?*anyopaque) c_int; +pub extern fn exit(__status: c_int) noreturn; +pub extern fn quick_exit(__status: c_int) noreturn; +pub extern fn _Exit(__status: c_int) noreturn; +pub extern fn getenv(__name: [*c]const u8) [*c]u8; +pub extern fn putenv(__string: [*c]u8) c_int; +pub extern fn setenv(__name: [*c]const u8, __value: [*c]const u8, __replace: c_int) c_int; +pub extern fn unsetenv(__name: [*c]const u8) c_int; +pub extern fn clearenv() c_int; +pub extern fn mktemp(__template: [*c]u8) [*c]u8; +pub extern fn mkstemp(__template: [*c]u8) c_int; +pub extern fn mkstemps(__template: [*c]u8, __suffixlen: c_int) c_int; +pub extern fn mkdtemp(__template: [*c]u8) [*c]u8; +pub extern fn system(__command: [*c]const u8) c_int; +pub extern fn realpath(noalias __name: [*c]const u8, noalias __resolved: [*c]u8) [*c]u8; +pub const __compar_fn_t = ?fn (?*const anyopaque, ?*const anyopaque) callconv(.C) c_int; +pub fn bsearch(arg___key: ?*const anyopaque, arg___base: ?*const anyopaque, arg___nmemb: usize, arg___size: usize, arg___compar: __compar_fn_t) callconv(.C) ?*anyopaque { + var __key = arg___key; + var __base = arg___base; + var __nmemb = arg___nmemb; + var __size = arg___size; + var __compar = arg___compar; + var __l: usize = undefined; + var __u: usize = undefined; + var __idx: usize = undefined; + var __p: ?*const anyopaque = undefined; + var __comparison: c_int = undefined; + __l = 0; + __u = __nmemb; + while (__l < __u) { + __idx = (__l +% __u) / @bitCast(c_ulong, @as(c_long, @as(c_int, 2))); + __p = @intToPtr(?*anyopaque, @ptrToInt(@ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), __base)) + (__idx *% __size))); + __comparison = __compar.?(__key, __p); + if (__comparison < @as(c_int, 0)) { + __u = __idx; + } else if (__comparison > @as(c_int, 0)) { + __l = __idx +% @bitCast(c_ulong, @as(c_long, @as(c_int, 1))); + } else return @intToPtr(?*anyopaque, @ptrToInt(__p)); + } + return @intToPtr(?*anyopaque, @as(c_int, 0)); +} +pub extern fn qsort(__base: ?*anyopaque, __nmemb: usize, __size: usize, __compar: __compar_fn_t) void; +pub extern fn abs(__x: c_int) c_int; +pub extern fn labs(__x: c_long) c_long; +pub extern fn llabs(__x: c_longlong) c_longlong; +pub extern fn div(__numer: c_int, __denom: c_int) div_t; +pub extern fn ldiv(__numer: c_long, __denom: c_long) ldiv_t; +pub extern fn lldiv(__numer: c_longlong, __denom: c_longlong) lldiv_t; +pub extern fn ecvt(__value: f64, __ndigit: c_int, noalias __decpt: [*c]c_int, noalias __sign: [*c]c_int) [*c]u8; +pub extern fn fcvt(__value: f64, __ndigit: c_int, noalias __decpt: [*c]c_int, noalias __sign: [*c]c_int) [*c]u8; +pub extern fn gcvt(__value: f64, __ndigit: c_int, __buf: [*c]u8) [*c]u8; +pub extern fn qecvt(__value: c_longdouble, __ndigit: c_int, noalias __decpt: [*c]c_int, noalias __sign: [*c]c_int) [*c]u8; +pub extern fn qfcvt(__value: c_longdouble, __ndigit: c_int, noalias __decpt: [*c]c_int, noalias __sign: [*c]c_int) [*c]u8; +pub extern fn qgcvt(__value: c_longdouble, __ndigit: c_int, __buf: [*c]u8) [*c]u8; +pub extern fn ecvt_r(__value: f64, __ndigit: c_int, noalias __decpt: [*c]c_int, noalias __sign: [*c]c_int, noalias __buf: [*c]u8, __len: usize) c_int; +pub extern fn fcvt_r(__value: f64, __ndigit: c_int, noalias __decpt: [*c]c_int, noalias __sign: [*c]c_int, noalias __buf: [*c]u8, __len: usize) c_int; +pub extern fn qecvt_r(__value: c_longdouble, __ndigit: c_int, noalias __decpt: [*c]c_int, noalias __sign: [*c]c_int, noalias __buf: [*c]u8, __len: usize) c_int; +pub extern fn qfcvt_r(__value: c_longdouble, __ndigit: c_int, noalias __decpt: [*c]c_int, noalias __sign: [*c]c_int, noalias __buf: [*c]u8, __len: usize) c_int; +pub extern fn mblen(__s: [*c]const u8, __n: usize) c_int; +pub extern fn mbtowc(noalias __pwc: [*c]wchar_t, noalias __s: [*c]const u8, __n: usize) c_int; +pub extern fn wctomb(__s: [*c]u8, __wchar: wchar_t) c_int; +pub extern fn mbstowcs(noalias __pwcs: [*c]wchar_t, noalias __s: [*c]const u8, __n: usize) usize; +pub extern fn wcstombs(noalias __s: [*c]u8, noalias __pwcs: [*c]const wchar_t, __n: usize) usize; +pub extern fn rpmatch(__response: [*c]const u8) c_int; +pub extern fn getsubopt(noalias __optionp: [*c][*c]u8, noalias __tokens: [*c]const [*c]u8, noalias __valuep: [*c][*c]u8) c_int; +pub extern fn getloadavg(__loadavg: [*c]f64, __nelem: c_int) c_int; +pub extern fn memcpy(__dest: ?*anyopaque, __src: ?*const anyopaque, __n: c_ulong) ?*anyopaque; +pub extern fn memmove(__dest: ?*anyopaque, __src: ?*const anyopaque, __n: c_ulong) ?*anyopaque; +pub extern fn memccpy(__dest: ?*anyopaque, __src: ?*const anyopaque, __c: c_int, __n: c_ulong) ?*anyopaque; +pub extern fn memset(__s: ?*anyopaque, __c: c_int, __n: c_ulong) ?*anyopaque; +pub extern fn memcmp(__s1: ?*const anyopaque, __s2: ?*const anyopaque, __n: c_ulong) c_int; +pub extern fn memchr(__s: ?*const anyopaque, __c: c_int, __n: c_ulong) ?*anyopaque; +pub extern fn strcpy(__dest: [*c]u8, __src: [*c]const u8) [*c]u8; +pub extern fn strncpy(__dest: [*c]u8, __src: [*c]const u8, __n: c_ulong) [*c]u8; +pub extern fn strcat(__dest: [*c]u8, __src: [*c]const u8) [*c]u8; +pub extern fn strncat(__dest: [*c]u8, __src: [*c]const u8, __n: c_ulong) [*c]u8; +pub extern fn strcmp(__s1: [*c]const u8, __s2: [*c]const u8) c_int; +pub extern fn strncmp(__s1: [*c]const u8, __s2: [*c]const u8, __n: c_ulong) c_int; +pub extern fn strcoll(__s1: [*c]const u8, __s2: [*c]const u8) c_int; +pub extern fn strxfrm(__dest: [*c]u8, __src: [*c]const u8, __n: c_ulong) c_ulong; +pub const struct___locale_data = opaque {}; +pub const struct___locale_struct = extern struct { + __locales: [13]?*struct___locale_data, + __ctype_b: [*c]const c_ushort, + __ctype_tolower: [*c]const c_int, + __ctype_toupper: [*c]const c_int, + __names: [13][*c]const u8, +}; +pub const __locale_t = [*c]struct___locale_struct; +pub const locale_t = __locale_t; +pub extern fn strcoll_l(__s1: [*c]const u8, __s2: [*c]const u8, __l: locale_t) c_int; +pub extern fn strxfrm_l(__dest: [*c]u8, __src: [*c]const u8, __n: usize, __l: locale_t) usize; +pub extern fn strdup(__s: [*c]const u8) [*c]u8; +pub extern fn strndup(__string: [*c]const u8, __n: c_ulong) [*c]u8; +pub extern fn strchr(__s: [*c]const u8, __c: c_int) [*c]u8; +pub extern fn strrchr(__s: [*c]const u8, __c: c_int) [*c]u8; +pub extern fn strcspn(__s: [*c]const u8, __reject: [*c]const u8) c_ulong; +pub extern fn strspn(__s: [*c]const u8, __accept: [*c]const u8) c_ulong; +pub extern fn strpbrk(__s: [*c]const u8, __accept: [*c]const u8) [*c]u8; +pub extern fn strstr(__haystack: [*c]const u8, __needle: [*c]const u8) [*c]u8; +pub extern fn strtok(__s: [*c]u8, __delim: [*c]const u8) [*c]u8; +pub extern fn __strtok_r(noalias __s: [*c]u8, noalias __delim: [*c]const u8, noalias __save_ptr: [*c][*c]u8) [*c]u8; +pub extern fn strtok_r(noalias __s: [*c]u8, noalias __delim: [*c]const u8, noalias __save_ptr: [*c][*c]u8) [*c]u8; +pub extern fn strlen(__s: [*c]const u8) c_ulong; +pub extern fn strnlen(__string: [*c]const u8, __maxlen: usize) usize; +pub extern fn strerror(__errnum: c_int) [*c]u8; +pub extern fn strerror_r(__errnum: c_int, __buf: [*c]u8, __buflen: usize) c_int; +pub extern fn strerror_l(__errnum: c_int, __l: locale_t) [*c]u8; +pub extern fn bcmp(__s1: ?*const anyopaque, __s2: ?*const anyopaque, __n: c_ulong) c_int; +pub extern fn bcopy(__src: ?*const anyopaque, __dest: ?*anyopaque, __n: usize) void; +pub extern fn bzero(__s: ?*anyopaque, __n: c_ulong) void; +pub extern fn index(__s: [*c]const u8, __c: c_int) [*c]u8; +pub extern fn rindex(__s: [*c]const u8, __c: c_int) [*c]u8; +pub extern fn ffs(__i: c_int) c_int; +pub extern fn ffsl(__l: c_long) c_int; +pub extern fn ffsll(__ll: c_longlong) c_int; +pub extern fn strcasecmp(__s1: [*c]const u8, __s2: [*c]const u8) c_int; +pub extern fn strncasecmp(__s1: [*c]const u8, __s2: [*c]const u8, __n: c_ulong) c_int; +pub extern fn strcasecmp_l(__s1: [*c]const u8, __s2: [*c]const u8, __loc: locale_t) c_int; +pub extern fn strncasecmp_l(__s1: [*c]const u8, __s2: [*c]const u8, __n: usize, __loc: locale_t) c_int; +pub extern fn explicit_bzero(__s: ?*anyopaque, __n: usize) void; +pub extern fn strsep(noalias __stringp: [*c][*c]u8, noalias __delim: [*c]const u8) [*c]u8; +pub extern fn strsignal(__sig: c_int) [*c]u8; +pub extern fn __stpcpy(noalias __dest: [*c]u8, noalias __src: [*c]const u8) [*c]u8; +pub extern fn stpcpy(__dest: [*c]u8, __src: [*c]const u8) [*c]u8; +pub extern fn __stpncpy(noalias __dest: [*c]u8, noalias __src: [*c]const u8, __n: usize) [*c]u8; +pub extern fn stpncpy(__dest: [*c]u8, __src: [*c]const u8, __n: c_ulong) [*c]u8; +pub const float_t = f32; +pub const double_t = f64; +pub extern fn __fpclassify(__value: f64) c_int; +pub extern fn __signbit(__value: f64) c_int; +pub extern fn __isinf(__value: f64) c_int; +pub extern fn __finite(__value: f64) c_int; +pub extern fn __isnan(__value: f64) c_int; +pub extern fn __iseqsig(__x: f64, __y: f64) c_int; +pub extern fn __issignaling(__value: f64) c_int; +pub extern fn acos(__x: f64) f64; +pub extern fn __acos(__x: f64) f64; +pub extern fn asin(__x: f64) f64; +pub extern fn __asin(__x: f64) f64; +pub extern fn atan(__x: f64) f64; +pub extern fn __atan(__x: f64) f64; +pub extern fn atan2(__y: f64, __x: f64) f64; +pub extern fn __atan2(__y: f64, __x: f64) f64; +pub extern fn cos(__x: f64) f64; +pub extern fn __cos(__x: f64) f64; +pub extern fn sin(__x: f64) f64; +pub extern fn __sin(__x: f64) f64; +pub extern fn tan(__x: f64) f64; +pub extern fn __tan(__x: f64) f64; +pub extern fn cosh(__x: f64) f64; +pub extern fn __cosh(__x: f64) f64; +pub extern fn sinh(__x: f64) f64; +pub extern fn __sinh(__x: f64) f64; +pub extern fn tanh(__x: f64) f64; +pub extern fn __tanh(__x: f64) f64; +pub extern fn acosh(__x: f64) f64; +pub extern fn __acosh(__x: f64) f64; +pub extern fn asinh(__x: f64) f64; +pub extern fn __asinh(__x: f64) f64; +pub extern fn atanh(__x: f64) f64; +pub extern fn __atanh(__x: f64) f64; +pub extern fn exp(__x: f64) f64; +pub extern fn __exp(__x: f64) f64; +pub extern fn frexp(__x: f64, __exponent: [*c]c_int) f64; +pub extern fn __frexp(__x: f64, __exponent: [*c]c_int) f64; +pub extern fn ldexp(__x: f64, __exponent: c_int) f64; +pub extern fn __ldexp(__x: f64, __exponent: c_int) f64; +pub extern fn log(__x: f64) f64; +pub extern fn __log(__x: f64) f64; +pub extern fn log10(__x: f64) f64; +pub extern fn __log10(__x: f64) f64; +pub extern fn modf(__x: f64, __iptr: [*c]f64) f64; +pub extern fn __modf(__x: f64, __iptr: [*c]f64) f64; +pub extern fn expm1(__x: f64) f64; +pub extern fn __expm1(__x: f64) f64; +pub extern fn log1p(__x: f64) f64; +pub extern fn __log1p(__x: f64) f64; +pub extern fn logb(__x: f64) f64; +pub extern fn __logb(__x: f64) f64; +pub extern fn exp2(__x: f64) f64; +pub extern fn __exp2(__x: f64) f64; +pub extern fn log2(__x: f64) f64; +pub extern fn __log2(__x: f64) f64; +pub extern fn pow(__x: f64, __y: f64) f64; +pub extern fn __pow(__x: f64, __y: f64) f64; +pub extern fn sqrt(__x: f64) f64; +pub extern fn __sqrt(__x: f64) f64; +pub extern fn hypot(__x: f64, __y: f64) f64; +pub extern fn __hypot(__x: f64, __y: f64) f64; +pub extern fn cbrt(__x: f64) f64; +pub extern fn __cbrt(__x: f64) f64; +pub extern fn ceil(__x: f64) f64; +pub extern fn __ceil(__x: f64) f64; +pub extern fn fabs(__x: f64) f64; +pub extern fn __fabs(__x: f64) f64; +pub extern fn floor(__x: f64) f64; +pub extern fn __floor(__x: f64) f64; +pub extern fn fmod(__x: f64, __y: f64) f64; +pub extern fn __fmod(__x: f64, __y: f64) f64; +pub extern fn isinf(__value: f64) c_int; +pub extern fn finite(__value: f64) c_int; +pub extern fn drem(__x: f64, __y: f64) f64; +pub extern fn __drem(__x: f64, __y: f64) f64; +pub extern fn significand(__x: f64) f64; +pub extern fn __significand(__x: f64) f64; +pub extern fn copysign(__x: f64, __y: f64) f64; +pub extern fn __copysign(__x: f64, __y: f64) f64; +pub extern fn nan(__tagb: [*c]const u8) f64; +pub extern fn __nan(__tagb: [*c]const u8) f64; +pub extern fn isnan(__value: f64) c_int; +pub extern fn j0(f64) f64; +pub extern fn __j0(f64) f64; +pub extern fn j1(f64) f64; +pub extern fn __j1(f64) f64; +pub extern fn jn(c_int, f64) f64; +pub extern fn __jn(c_int, f64) f64; +pub extern fn y0(f64) f64; +pub extern fn __y0(f64) f64; +pub extern fn y1(f64) f64; +pub extern fn __y1(f64) f64; +pub extern fn yn(c_int, f64) f64; +pub extern fn __yn(c_int, f64) f64; +pub extern fn erf(f64) f64; +pub extern fn __erf(f64) f64; +pub extern fn erfc(f64) f64; +pub extern fn __erfc(f64) f64; +pub extern fn lgamma(f64) f64; +pub extern fn __lgamma(f64) f64; +pub extern fn tgamma(f64) f64; +pub extern fn __tgamma(f64) f64; +pub extern fn gamma(f64) f64; +pub extern fn __gamma(f64) f64; +pub extern fn lgamma_r(f64, __signgamp: [*c]c_int) f64; +pub extern fn __lgamma_r(f64, __signgamp: [*c]c_int) f64; +pub extern fn rint(__x: f64) f64; +pub extern fn __rint(__x: f64) f64; +pub extern fn nextafter(__x: f64, __y: f64) f64; +pub extern fn __nextafter(__x: f64, __y: f64) f64; +pub extern fn nexttoward(__x: f64, __y: c_longdouble) f64; +pub extern fn __nexttoward(__x: f64, __y: c_longdouble) f64; +pub extern fn remainder(__x: f64, __y: f64) f64; +pub extern fn __remainder(__x: f64, __y: f64) f64; +pub extern fn scalbn(__x: f64, __n: c_int) f64; +pub extern fn __scalbn(__x: f64, __n: c_int) f64; +pub extern fn ilogb(__x: f64) c_int; +pub extern fn __ilogb(__x: f64) c_int; +pub extern fn scalbln(__x: f64, __n: c_long) f64; +pub extern fn __scalbln(__x: f64, __n: c_long) f64; +pub extern fn nearbyint(__x: f64) f64; +pub extern fn __nearbyint(__x: f64) f64; +pub extern fn round(__x: f64) f64; +pub extern fn __round(__x: f64) f64; +pub extern fn trunc(__x: f64) f64; +pub extern fn __trunc(__x: f64) f64; +pub extern fn remquo(__x: f64, __y: f64, __quo: [*c]c_int) f64; +pub extern fn __remquo(__x: f64, __y: f64, __quo: [*c]c_int) f64; +pub extern fn lrint(__x: f64) c_long; +pub extern fn __lrint(__x: f64) c_long; +pub extern fn llrint(__x: f64) c_longlong; +pub extern fn __llrint(__x: f64) c_longlong; +pub extern fn lround(__x: f64) c_long; +pub extern fn __lround(__x: f64) c_long; +pub extern fn llround(__x: f64) c_longlong; +pub extern fn __llround(__x: f64) c_longlong; +pub extern fn fdim(__x: f64, __y: f64) f64; +pub extern fn __fdim(__x: f64, __y: f64) f64; +pub extern fn fmax(__x: f64, __y: f64) f64; +pub extern fn __fmax(__x: f64, __y: f64) f64; +pub extern fn fmin(__x: f64, __y: f64) f64; +pub extern fn __fmin(__x: f64, __y: f64) f64; +pub extern fn fma(__x: f64, __y: f64, __z: f64) f64; +pub extern fn __fma(__x: f64, __y: f64, __z: f64) f64; +pub extern fn scalb(__x: f64, __n: f64) f64; +pub extern fn __scalb(__x: f64, __n: f64) f64; +pub extern fn __fpclassifyf(__value: f32) c_int; +pub extern fn __signbitf(__value: f32) c_int; +pub extern fn __isinff(__value: f32) c_int; +pub extern fn __finitef(__value: f32) c_int; +pub extern fn __isnanf(__value: f32) c_int; +pub extern fn __iseqsigf(__x: f32, __y: f32) c_int; +pub extern fn __issignalingf(__value: f32) c_int; +pub extern fn acosf(__x: f32) f32; +pub extern fn __acosf(__x: f32) f32; +pub extern fn asinf(__x: f32) f32; +pub extern fn __asinf(__x: f32) f32; +pub extern fn atanf(__x: f32) f32; +pub extern fn __atanf(__x: f32) f32; +pub extern fn atan2f(__y: f32, __x: f32) f32; +pub extern fn __atan2f(__y: f32, __x: f32) f32; +pub extern fn cosf(__x: f32) f32; +pub extern fn __cosf(__x: f32) f32; +pub extern fn sinf(__x: f32) f32; +pub extern fn __sinf(__x: f32) f32; +pub extern fn tanf(__x: f32) f32; +pub extern fn __tanf(__x: f32) f32; +pub extern fn coshf(__x: f32) f32; +pub extern fn __coshf(__x: f32) f32; +pub extern fn sinhf(__x: f32) f32; +pub extern fn __sinhf(__x: f32) f32; +pub extern fn tanhf(__x: f32) f32; +pub extern fn __tanhf(__x: f32) f32; +pub extern fn acoshf(__x: f32) f32; +pub extern fn __acoshf(__x: f32) f32; +pub extern fn asinhf(__x: f32) f32; +pub extern fn __asinhf(__x: f32) f32; +pub extern fn atanhf(__x: f32) f32; +pub extern fn __atanhf(__x: f32) f32; +pub extern fn expf(__x: f32) f32; +pub extern fn __expf(__x: f32) f32; +pub extern fn frexpf(__x: f32, __exponent: [*c]c_int) f32; +pub extern fn __frexpf(__x: f32, __exponent: [*c]c_int) f32; +pub extern fn ldexpf(__x: f32, __exponent: c_int) f32; +pub extern fn __ldexpf(__x: f32, __exponent: c_int) f32; +pub extern fn logf(__x: f32) f32; +pub extern fn __logf(__x: f32) f32; +pub extern fn log10f(__x: f32) f32; +pub extern fn __log10f(__x: f32) f32; +pub extern fn modff(__x: f32, __iptr: [*c]f32) f32; +pub extern fn __modff(__x: f32, __iptr: [*c]f32) f32; +pub extern fn expm1f(__x: f32) f32; +pub extern fn __expm1f(__x: f32) f32; +pub extern fn log1pf(__x: f32) f32; +pub extern fn __log1pf(__x: f32) f32; +pub extern fn logbf(__x: f32) f32; +pub extern fn __logbf(__x: f32) f32; +pub extern fn exp2f(__x: f32) f32; +pub extern fn __exp2f(__x: f32) f32; +pub extern fn log2f(__x: f32) f32; +pub extern fn __log2f(__x: f32) f32; +pub extern fn powf(__x: f32, __y: f32) f32; +pub extern fn __powf(__x: f32, __y: f32) f32; +pub extern fn sqrtf(__x: f32) f32; +pub extern fn __sqrtf(__x: f32) f32; +pub extern fn hypotf(__x: f32, __y: f32) f32; +pub extern fn __hypotf(__x: f32, __y: f32) f32; +pub extern fn cbrtf(__x: f32) f32; +pub extern fn __cbrtf(__x: f32) f32; +pub extern fn ceilf(__x: f32) f32; +pub extern fn __ceilf(__x: f32) f32; +pub extern fn fabsf(__x: f32) f32; +pub extern fn __fabsf(__x: f32) f32; +pub extern fn floorf(__x: f32) f32; +pub extern fn __floorf(__x: f32) f32; +pub extern fn fmodf(__x: f32, __y: f32) f32; +pub extern fn __fmodf(__x: f32, __y: f32) f32; +pub extern fn isinff(__value: f32) c_int; +pub extern fn finitef(__value: f32) c_int; +pub extern fn dremf(__x: f32, __y: f32) f32; +pub extern fn __dremf(__x: f32, __y: f32) f32; +pub extern fn significandf(__x: f32) f32; +pub extern fn __significandf(__x: f32) f32; +pub extern fn copysignf(__x: f32, __y: f32) f32; +pub extern fn __copysignf(__x: f32, __y: f32) f32; +pub extern fn nanf(__tagb: [*c]const u8) f32; +pub extern fn __nanf(__tagb: [*c]const u8) f32; +pub extern fn isnanf(__value: f32) c_int; +pub extern fn j0f(f32) f32; +pub extern fn __j0f(f32) f32; +pub extern fn j1f(f32) f32; +pub extern fn __j1f(f32) f32; +pub extern fn jnf(c_int, f32) f32; +pub extern fn __jnf(c_int, f32) f32; +pub extern fn y0f(f32) f32; +pub extern fn __y0f(f32) f32; +pub extern fn y1f(f32) f32; +pub extern fn __y1f(f32) f32; +pub extern fn ynf(c_int, f32) f32; +pub extern fn __ynf(c_int, f32) f32; +pub extern fn erff(f32) f32; +pub extern fn __erff(f32) f32; +pub extern fn erfcf(f32) f32; +pub extern fn __erfcf(f32) f32; +pub extern fn lgammaf(f32) f32; +pub extern fn __lgammaf(f32) f32; +pub extern fn tgammaf(f32) f32; +pub extern fn __tgammaf(f32) f32; +pub extern fn gammaf(f32) f32; +pub extern fn __gammaf(f32) f32; +pub extern fn lgammaf_r(f32, __signgamp: [*c]c_int) f32; +pub extern fn __lgammaf_r(f32, __signgamp: [*c]c_int) f32; +pub extern fn rintf(__x: f32) f32; +pub extern fn __rintf(__x: f32) f32; +pub extern fn nextafterf(__x: f32, __y: f32) f32; +pub extern fn __nextafterf(__x: f32, __y: f32) f32; +pub extern fn nexttowardf(__x: f32, __y: c_longdouble) f32; +pub extern fn __nexttowardf(__x: f32, __y: c_longdouble) f32; +pub extern fn remainderf(__x: f32, __y: f32) f32; +pub extern fn __remainderf(__x: f32, __y: f32) f32; +pub extern fn scalbnf(__x: f32, __n: c_int) f32; +pub extern fn __scalbnf(__x: f32, __n: c_int) f32; +pub extern fn ilogbf(__x: f32) c_int; +pub extern fn __ilogbf(__x: f32) c_int; +pub extern fn scalblnf(__x: f32, __n: c_long) f32; +pub extern fn __scalblnf(__x: f32, __n: c_long) f32; +pub extern fn nearbyintf(__x: f32) f32; +pub extern fn __nearbyintf(__x: f32) f32; +pub extern fn roundf(__x: f32) f32; +pub extern fn __roundf(__x: f32) f32; +pub extern fn truncf(__x: f32) f32; +pub extern fn __truncf(__x: f32) f32; +pub extern fn remquof(__x: f32, __y: f32, __quo: [*c]c_int) f32; +pub extern fn __remquof(__x: f32, __y: f32, __quo: [*c]c_int) f32; +pub extern fn lrintf(__x: f32) c_long; +pub extern fn __lrintf(__x: f32) c_long; +pub extern fn llrintf(__x: f32) c_longlong; +pub extern fn __llrintf(__x: f32) c_longlong; +pub extern fn lroundf(__x: f32) c_long; +pub extern fn __lroundf(__x: f32) c_long; +pub extern fn llroundf(__x: f32) c_longlong; +pub extern fn __llroundf(__x: f32) c_longlong; +pub extern fn fdimf(__x: f32, __y: f32) f32; +pub extern fn __fdimf(__x: f32, __y: f32) f32; +pub extern fn fmaxf(__x: f32, __y: f32) f32; +pub extern fn __fmaxf(__x: f32, __y: f32) f32; +pub extern fn fminf(__x: f32, __y: f32) f32; +pub extern fn __fminf(__x: f32, __y: f32) f32; +pub extern fn fmaf(__x: f32, __y: f32, __z: f32) f32; +pub extern fn __fmaf(__x: f32, __y: f32, __z: f32) f32; +pub extern fn scalbf(__x: f32, __n: f32) f32; +pub extern fn __scalbf(__x: f32, __n: f32) f32; +pub extern fn __fpclassifyl(__value: c_longdouble) c_int; +pub extern fn __signbitl(__value: c_longdouble) c_int; +pub extern fn __isinfl(__value: c_longdouble) c_int; +pub extern fn __finitel(__value: c_longdouble) c_int; +pub extern fn __isnanl(__value: c_longdouble) c_int; +pub extern fn __iseqsigl(__x: c_longdouble, __y: c_longdouble) c_int; +pub extern fn __issignalingl(__value: c_longdouble) c_int; +pub extern fn acosl(__x: c_longdouble) c_longdouble; +pub extern fn __acosl(__x: c_longdouble) c_longdouble; +pub extern fn asinl(__x: c_longdouble) c_longdouble; +pub extern fn __asinl(__x: c_longdouble) c_longdouble; +pub extern fn atanl(__x: c_longdouble) c_longdouble; +pub extern fn __atanl(__x: c_longdouble) c_longdouble; +pub extern fn atan2l(__y: c_longdouble, __x: c_longdouble) c_longdouble; +pub extern fn __atan2l(__y: c_longdouble, __x: c_longdouble) c_longdouble; +pub extern fn cosl(__x: c_longdouble) c_longdouble; +pub extern fn __cosl(__x: c_longdouble) c_longdouble; +pub extern fn sinl(__x: c_longdouble) c_longdouble; +pub extern fn __sinl(__x: c_longdouble) c_longdouble; +pub extern fn tanl(__x: c_longdouble) c_longdouble; +pub extern fn __tanl(__x: c_longdouble) c_longdouble; +pub extern fn coshl(__x: c_longdouble) c_longdouble; +pub extern fn __coshl(__x: c_longdouble) c_longdouble; +pub extern fn sinhl(__x: c_longdouble) c_longdouble; +pub extern fn __sinhl(__x: c_longdouble) c_longdouble; +pub extern fn tanhl(__x: c_longdouble) c_longdouble; +pub extern fn __tanhl(__x: c_longdouble) c_longdouble; +pub extern fn acoshl(__x: c_longdouble) c_longdouble; +pub extern fn __acoshl(__x: c_longdouble) c_longdouble; +pub extern fn asinhl(__x: c_longdouble) c_longdouble; +pub extern fn __asinhl(__x: c_longdouble) c_longdouble; +pub extern fn atanhl(__x: c_longdouble) c_longdouble; +pub extern fn __atanhl(__x: c_longdouble) c_longdouble; +pub extern fn expl(__x: c_longdouble) c_longdouble; +pub extern fn __expl(__x: c_longdouble) c_longdouble; +pub extern fn frexpl(__x: c_longdouble, __exponent: [*c]c_int) c_longdouble; +pub extern fn __frexpl(__x: c_longdouble, __exponent: [*c]c_int) c_longdouble; +pub extern fn ldexpl(__x: c_longdouble, __exponent: c_int) c_longdouble; +pub extern fn __ldexpl(__x: c_longdouble, __exponent: c_int) c_longdouble; +pub extern fn logl(__x: c_longdouble) c_longdouble; +pub extern fn __logl(__x: c_longdouble) c_longdouble; +pub extern fn log10l(__x: c_longdouble) c_longdouble; +pub extern fn __log10l(__x: c_longdouble) c_longdouble; +pub extern fn modfl(__x: c_longdouble, __iptr: [*c]c_longdouble) c_longdouble; +pub extern fn __modfl(__x: c_longdouble, __iptr: [*c]c_longdouble) c_longdouble; +pub extern fn expm1l(__x: c_longdouble) c_longdouble; +pub extern fn __expm1l(__x: c_longdouble) c_longdouble; +pub extern fn log1pl(__x: c_longdouble) c_longdouble; +pub extern fn __log1pl(__x: c_longdouble) c_longdouble; +pub extern fn logbl(__x: c_longdouble) c_longdouble; +pub extern fn __logbl(__x: c_longdouble) c_longdouble; +pub extern fn exp2l(__x: c_longdouble) c_longdouble; +pub extern fn __exp2l(__x: c_longdouble) c_longdouble; +pub extern fn log2l(__x: c_longdouble) c_longdouble; +pub extern fn __log2l(__x: c_longdouble) c_longdouble; +pub extern fn powl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn __powl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn sqrtl(__x: c_longdouble) c_longdouble; +pub extern fn __sqrtl(__x: c_longdouble) c_longdouble; +pub extern fn hypotl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn __hypotl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn cbrtl(__x: c_longdouble) c_longdouble; +pub extern fn __cbrtl(__x: c_longdouble) c_longdouble; +pub extern fn ceill(__x: c_longdouble) c_longdouble; +pub extern fn __ceill(__x: c_longdouble) c_longdouble; +pub extern fn fabsl(__x: c_longdouble) c_longdouble; +pub extern fn __fabsl(__x: c_longdouble) c_longdouble; +pub extern fn floorl(__x: c_longdouble) c_longdouble; +pub extern fn __floorl(__x: c_longdouble) c_longdouble; +pub extern fn fmodl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn __fmodl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn isinfl(__value: c_longdouble) c_int; +pub extern fn finitel(__value: c_longdouble) c_int; +pub extern fn dreml(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn __dreml(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn significandl(__x: c_longdouble) c_longdouble; +pub extern fn __significandl(__x: c_longdouble) c_longdouble; +pub extern fn copysignl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn __copysignl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn nanl(__tagb: [*c]const u8) c_longdouble; +pub extern fn __nanl(__tagb: [*c]const u8) c_longdouble; +pub extern fn isnanl(__value: c_longdouble) c_int; +pub extern fn j0l(c_longdouble) c_longdouble; +pub extern fn __j0l(c_longdouble) c_longdouble; +pub extern fn j1l(c_longdouble) c_longdouble; +pub extern fn __j1l(c_longdouble) c_longdouble; +pub extern fn jnl(c_int, c_longdouble) c_longdouble; +pub extern fn __jnl(c_int, c_longdouble) c_longdouble; +pub extern fn y0l(c_longdouble) c_longdouble; +pub extern fn __y0l(c_longdouble) c_longdouble; +pub extern fn y1l(c_longdouble) c_longdouble; +pub extern fn __y1l(c_longdouble) c_longdouble; +pub extern fn ynl(c_int, c_longdouble) c_longdouble; +pub extern fn __ynl(c_int, c_longdouble) c_longdouble; +pub extern fn erfl(c_longdouble) c_longdouble; +pub extern fn __erfl(c_longdouble) c_longdouble; +pub extern fn erfcl(c_longdouble) c_longdouble; +pub extern fn __erfcl(c_longdouble) c_longdouble; +pub extern fn lgammal(c_longdouble) c_longdouble; +pub extern fn __lgammal(c_longdouble) c_longdouble; +pub extern fn tgammal(c_longdouble) c_longdouble; +pub extern fn __tgammal(c_longdouble) c_longdouble; +pub extern fn gammal(c_longdouble) c_longdouble; +pub extern fn __gammal(c_longdouble) c_longdouble; +pub extern fn lgammal_r(c_longdouble, __signgamp: [*c]c_int) c_longdouble; +pub extern fn __lgammal_r(c_longdouble, __signgamp: [*c]c_int) c_longdouble; +pub extern fn rintl(__x: c_longdouble) c_longdouble; +pub extern fn __rintl(__x: c_longdouble) c_longdouble; +pub extern fn nextafterl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn __nextafterl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn nexttowardl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn __nexttowardl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn remainderl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn __remainderl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn scalbnl(__x: c_longdouble, __n: c_int) c_longdouble; +pub extern fn __scalbnl(__x: c_longdouble, __n: c_int) c_longdouble; +pub extern fn ilogbl(__x: c_longdouble) c_int; +pub extern fn __ilogbl(__x: c_longdouble) c_int; +pub extern fn scalblnl(__x: c_longdouble, __n: c_long) c_longdouble; +pub extern fn __scalblnl(__x: c_longdouble, __n: c_long) c_longdouble; +pub extern fn nearbyintl(__x: c_longdouble) c_longdouble; +pub extern fn __nearbyintl(__x: c_longdouble) c_longdouble; +pub extern fn roundl(__x: c_longdouble) c_longdouble; +pub extern fn __roundl(__x: c_longdouble) c_longdouble; +pub extern fn truncl(__x: c_longdouble) c_longdouble; +pub extern fn __truncl(__x: c_longdouble) c_longdouble; +pub extern fn remquol(__x: c_longdouble, __y: c_longdouble, __quo: [*c]c_int) c_longdouble; +pub extern fn __remquol(__x: c_longdouble, __y: c_longdouble, __quo: [*c]c_int) c_longdouble; +pub extern fn lrintl(__x: c_longdouble) c_long; +pub extern fn __lrintl(__x: c_longdouble) c_long; +pub extern fn llrintl(__x: c_longdouble) c_longlong; +pub extern fn __llrintl(__x: c_longdouble) c_longlong; +pub extern fn lroundl(__x: c_longdouble) c_long; +pub extern fn __lroundl(__x: c_longdouble) c_long; +pub extern fn llroundl(__x: c_longdouble) c_longlong; +pub extern fn __llroundl(__x: c_longdouble) c_longlong; +pub extern fn fdiml(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn __fdiml(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn fmaxl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn __fmaxl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn fminl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn __fminl(__x: c_longdouble, __y: c_longdouble) c_longdouble; +pub extern fn fmal(__x: c_longdouble, __y: c_longdouble, __z: c_longdouble) c_longdouble; +pub extern fn __fmal(__x: c_longdouble, __y: c_longdouble, __z: c_longdouble) c_longdouble; +pub extern fn scalbl(__x: c_longdouble, __n: c_longdouble) c_longdouble; +pub extern fn __scalbl(__x: c_longdouble, __n: c_longdouble) c_longdouble; +pub extern var signgam: c_int; +pub const FP_NAN: c_int = 0; +pub const FP_INFINITE: c_int = 1; +pub const FP_ZERO: c_int = 2; +pub const FP_SUBNORMAL: c_int = 3; +pub const FP_NORMAL: c_int = 4; +const enum_unnamed_6 = c_uint; +pub const RICON_NONE: c_int = 0; +pub const RICON_FOLDER_FILE_OPEN: c_int = 1; +pub const RICON_FILE_SAVE_CLASSIC: c_int = 2; +pub const RICON_FOLDER_OPEN: c_int = 3; +pub const RICON_FOLDER_SAVE: c_int = 4; +pub const RICON_FILE_OPEN: c_int = 5; +pub const RICON_FILE_SAVE: c_int = 6; +pub const RICON_FILE_EXPORT: c_int = 7; +pub const RICON_FILE_NEW: c_int = 8; +pub const RICON_FILE_DELETE: c_int = 9; +pub const RICON_FILETYPE_TEXT: c_int = 10; +pub const RICON_FILETYPE_AUDIO: c_int = 11; +pub const RICON_FILETYPE_IMAGE: c_int = 12; +pub const RICON_FILETYPE_PLAY: c_int = 13; +pub const RICON_FILETYPE_VIDEO: c_int = 14; +pub const RICON_FILETYPE_INFO: c_int = 15; +pub const RICON_FILE_COPY: c_int = 16; +pub const RICON_FILE_CUT: c_int = 17; +pub const RICON_FILE_PASTE: c_int = 18; +pub const RICON_CURSOR_HAND: c_int = 19; +pub const RICON_CURSOR_POINTER: c_int = 20; +pub const RICON_CURSOR_CLASSIC: c_int = 21; +pub const RICON_PENCIL: c_int = 22; +pub const RICON_PENCIL_BIG: c_int = 23; +pub const RICON_BRUSH_CLASSIC: c_int = 24; +pub const RICON_BRUSH_PAINTER: c_int = 25; +pub const RICON_WATER_DROP: c_int = 26; +pub const RICON_COLOR_PICKER: c_int = 27; +pub const RICON_RUBBER: c_int = 28; +pub const RICON_COLOR_BUCKET: c_int = 29; +pub const RICON_TEXT_T: c_int = 30; +pub const RICON_TEXT_A: c_int = 31; +pub const RICON_SCALE: c_int = 32; +pub const RICON_RESIZE: c_int = 33; +pub const RICON_FILTER_POINT: c_int = 34; +pub const RICON_FILTER_BILINEAR: c_int = 35; +pub const RICON_CROP: c_int = 36; +pub const RICON_CROP_ALPHA: c_int = 37; +pub const RICON_SQUARE_TOGGLE: c_int = 38; +pub const RICON_SYMMETRY: c_int = 39; +pub const RICON_SYMMETRY_HORIZONTAL: c_int = 40; +pub const RICON_SYMMETRY_VERTICAL: c_int = 41; +pub const RICON_LENS: c_int = 42; +pub const RICON_LENS_BIG: c_int = 43; +pub const RICON_EYE_ON: c_int = 44; +pub const RICON_EYE_OFF: c_int = 45; +pub const RICON_FILTER_TOP: c_int = 46; +pub const RICON_FILTER: c_int = 47; +pub const RICON_TARGET_POINT: c_int = 48; +pub const RICON_TARGET_SMALL: c_int = 49; +pub const RICON_TARGET_BIG: c_int = 50; +pub const RICON_TARGET_MOVE: c_int = 51; +pub const RICON_CURSOR_MOVE: c_int = 52; +pub const RICON_CURSOR_SCALE: c_int = 53; +pub const RICON_CURSOR_SCALE_RIGHT: c_int = 54; +pub const RICON_CURSOR_SCALE_LEFT: c_int = 55; +pub const RICON_UNDO: c_int = 56; +pub const RICON_REDO: c_int = 57; +pub const RICON_REREDO: c_int = 58; +pub const RICON_MUTATE: c_int = 59; +pub const RICON_ROTATE: c_int = 60; +pub const RICON_REPEAT: c_int = 61; +pub const RICON_SHUFFLE: c_int = 62; +pub const RICON_EMPTYBOX: c_int = 63; +pub const RICON_TARGET: c_int = 64; +pub const RICON_TARGET_SMALL_FILL: c_int = 65; +pub const RICON_TARGET_BIG_FILL: c_int = 66; +pub const RICON_TARGET_MOVE_FILL: c_int = 67; +pub const RICON_CURSOR_MOVE_FILL: c_int = 68; +pub const RICON_CURSOR_SCALE_FILL: c_int = 69; +pub const RICON_CURSOR_SCALE_RIGHT_FILL: c_int = 70; +pub const RICON_CURSOR_SCALE_LEFT_FILL: c_int = 71; +pub const RICON_UNDO_FILL: c_int = 72; +pub const RICON_REDO_FILL: c_int = 73; +pub const RICON_REREDO_FILL: c_int = 74; +pub const RICON_MUTATE_FILL: c_int = 75; +pub const RICON_ROTATE_FILL: c_int = 76; +pub const RICON_REPEAT_FILL: c_int = 77; +pub const RICON_SHUFFLE_FILL: c_int = 78; +pub const RICON_EMPTYBOX_SMALL: c_int = 79; +pub const RICON_BOX: c_int = 80; +pub const RICON_BOX_TOP: c_int = 81; +pub const RICON_BOX_TOP_RIGHT: c_int = 82; +pub const RICON_BOX_RIGHT: c_int = 83; +pub const RICON_BOX_BOTTOM_RIGHT: c_int = 84; +pub const RICON_BOX_BOTTOM: c_int = 85; +pub const RICON_BOX_BOTTOM_LEFT: c_int = 86; +pub const RICON_BOX_LEFT: c_int = 87; +pub const RICON_BOX_TOP_LEFT: c_int = 88; +pub const RICON_BOX_CENTER: c_int = 89; +pub const RICON_BOX_CIRCLE_MASK: c_int = 90; +pub const RICON_POT: c_int = 91; +pub const RICON_ALPHA_MULTIPLY: c_int = 92; +pub const RICON_ALPHA_CLEAR: c_int = 93; +pub const RICON_DITHERING: c_int = 94; +pub const RICON_MIPMAPS: c_int = 95; +pub const RICON_BOX_GRID: c_int = 96; +pub const RICON_GRID: c_int = 97; +pub const RICON_BOX_CORNERS_SMALL: c_int = 98; +pub const RICON_BOX_CORNERS_BIG: c_int = 99; +pub const RICON_FOUR_BOXES: c_int = 100; +pub const RICON_GRID_FILL: c_int = 101; +pub const RICON_BOX_MULTISIZE: c_int = 102; +pub const RICON_ZOOM_SMALL: c_int = 103; +pub const RICON_ZOOM_MEDIUM: c_int = 104; +pub const RICON_ZOOM_BIG: c_int = 105; +pub const RICON_ZOOM_ALL: c_int = 106; +pub const RICON_ZOOM_CENTER: c_int = 107; +pub const RICON_BOX_DOTS_SMALL: c_int = 108; +pub const RICON_BOX_DOTS_BIG: c_int = 109; +pub const RICON_BOX_CONCENTRIC: c_int = 110; +pub const RICON_BOX_GRID_BIG: c_int = 111; +pub const RICON_OK_TICK: c_int = 112; +pub const RICON_CROSS: c_int = 113; +pub const RICON_ARROW_LEFT: c_int = 114; +pub const RICON_ARROW_RIGHT: c_int = 115; +pub const RICON_ARROW_DOWN: c_int = 116; +pub const RICON_ARROW_UP: c_int = 117; +pub const RICON_ARROW_LEFT_FILL: c_int = 118; +pub const RICON_ARROW_RIGHT_FILL: c_int = 119; +pub const RICON_ARROW_DOWN_FILL: c_int = 120; +pub const RICON_ARROW_UP_FILL: c_int = 121; +pub const RICON_AUDIO: c_int = 122; +pub const RICON_FX: c_int = 123; +pub const RICON_WAVE: c_int = 124; +pub const RICON_WAVE_SINUS: c_int = 125; +pub const RICON_WAVE_SQUARE: c_int = 126; +pub const RICON_WAVE_TRIANGULAR: c_int = 127; +pub const RICON_CROSS_SMALL: c_int = 128; +pub const RICON_PLAYER_PREVIOUS: c_int = 129; +pub const RICON_PLAYER_PLAY_BACK: c_int = 130; +pub const RICON_PLAYER_PLAY: c_int = 131; +pub const RICON_PLAYER_PAUSE: c_int = 132; +pub const RICON_PLAYER_STOP: c_int = 133; +pub const RICON_PLAYER_NEXT: c_int = 134; +pub const RICON_PLAYER_RECORD: c_int = 135; +pub const RICON_MAGNET: c_int = 136; +pub const RICON_LOCK_CLOSE: c_int = 137; +pub const RICON_LOCK_OPEN: c_int = 138; +pub const RICON_CLOCK: c_int = 139; +pub const RICON_TOOLS: c_int = 140; +pub const RICON_GEAR: c_int = 141; +pub const RICON_GEAR_BIG: c_int = 142; +pub const RICON_BIN: c_int = 143; +pub const RICON_HAND_POINTER: c_int = 144; +pub const RICON_LASER: c_int = 145; +pub const RICON_COIN: c_int = 146; +pub const RICON_EXPLOSION: c_int = 147; +pub const RICON_1UP: c_int = 148; +pub const RICON_PLAYER: c_int = 149; +pub const RICON_PLAYER_JUMP: c_int = 150; +pub const RICON_KEY: c_int = 151; +pub const RICON_DEMON: c_int = 152; +pub const RICON_TEXT_POPUP: c_int = 153; +pub const RICON_GEAR_EX: c_int = 154; +pub const RICON_CRACK: c_int = 155; +pub const RICON_CRACK_POINTS: c_int = 156; +pub const RICON_STAR: c_int = 157; +pub const RICON_DOOR: c_int = 158; +pub const RICON_EXIT: c_int = 159; +pub const RICON_MODE_2D: c_int = 160; +pub const RICON_MODE_3D: c_int = 161; +pub const RICON_CUBE: c_int = 162; +pub const RICON_CUBE_FACE_TOP: c_int = 163; +pub const RICON_CUBE_FACE_LEFT: c_int = 164; +pub const RICON_CUBE_FACE_FRONT: c_int = 165; +pub const RICON_CUBE_FACE_BOTTOM: c_int = 166; +pub const RICON_CUBE_FACE_RIGHT: c_int = 167; +pub const RICON_CUBE_FACE_BACK: c_int = 168; +pub const RICON_CAMERA: c_int = 169; +pub const RICON_SPECIAL: c_int = 170; +pub const RICON_LINK_NET: c_int = 171; +pub const RICON_LINK_BOXES: c_int = 172; +pub const RICON_LINK_MULTI: c_int = 173; +pub const RICON_LINK: c_int = 174; +pub const RICON_LINK_BROKE: c_int = 175; +pub const RICON_TEXT_NOTES: c_int = 176; +pub const RICON_NOTEBOOK: c_int = 177; +pub const RICON_SUITCASE: c_int = 178; +pub const RICON_SUITCASE_ZIP: c_int = 179; +pub const RICON_MAILBOX: c_int = 180; +pub const RICON_MONITOR: c_int = 181; +pub const RICON_PRINTER: c_int = 182; +pub const RICON_PHOTO_CAMERA: c_int = 183; +pub const RICON_PHOTO_CAMERA_FLASH: c_int = 184; +pub const RICON_HOUSE: c_int = 185; +pub const RICON_HEART: c_int = 186; +pub const RICON_CORNER: c_int = 187; +pub const RICON_VERTICAL_BARS: c_int = 188; +pub const RICON_VERTICAL_BARS_FILL: c_int = 189; +pub const RICON_LIFE_BARS: c_int = 190; +pub const RICON_INFO: c_int = 191; +pub const RICON_CROSSLINE: c_int = 192; +pub const RICON_HELP: c_int = 193; +pub const RICON_FILETYPE_ALPHA: c_int = 194; +pub const RICON_FILETYPE_HOME: c_int = 195; +pub const RICON_LAYERS_VISIBLE: c_int = 196; +pub const RICON_LAYERS: c_int = 197; +pub const RICON_WINDOW: c_int = 198; +pub const RICON_HIDPI: c_int = 199; +pub const RICON_200: c_int = 200; +pub const RICON_201: c_int = 201; +pub const RICON_202: c_int = 202; +pub const RICON_203: c_int = 203; +pub const RICON_204: c_int = 204; +pub const RICON_205: c_int = 205; +pub const RICON_206: c_int = 206; +pub const RICON_207: c_int = 207; +pub const RICON_208: c_int = 208; +pub const RICON_209: c_int = 209; +pub const RICON_210: c_int = 210; +pub const RICON_211: c_int = 211; +pub const RICON_212: c_int = 212; +pub const RICON_213: c_int = 213; +pub const RICON_214: c_int = 214; +pub const RICON_215: c_int = 215; +pub const RICON_216: c_int = 216; +pub const RICON_217: c_int = 217; +pub const RICON_218: c_int = 218; +pub const RICON_219: c_int = 219; +pub const RICON_220: c_int = 220; +pub const RICON_221: c_int = 221; +pub const RICON_222: c_int = 222; +pub const RICON_223: c_int = 223; +pub const RICON_224: c_int = 224; +pub const RICON_225: c_int = 225; +pub const RICON_226: c_int = 226; +pub const RICON_227: c_int = 227; +pub const RICON_228: c_int = 228; +pub const RICON_229: c_int = 229; +pub const RICON_230: c_int = 230; +pub const RICON_231: c_int = 231; +pub const RICON_232: c_int = 232; +pub const RICON_233: c_int = 233; +pub const RICON_234: c_int = 234; +pub const RICON_235: c_int = 235; +pub const RICON_236: c_int = 236; +pub const RICON_237: c_int = 237; +pub const RICON_238: c_int = 238; +pub const RICON_239: c_int = 239; +pub const RICON_240: c_int = 240; +pub const RICON_241: c_int = 241; +pub const RICON_242: c_int = 242; +pub const RICON_243: c_int = 243; +pub const RICON_244: c_int = 244; +pub const RICON_245: c_int = 245; +pub const RICON_246: c_int = 246; +pub const RICON_247: c_int = 247; +pub const RICON_248: c_int = 248; +pub const RICON_249: c_int = 249; +pub const RICON_250: c_int = 250; +pub const RICON_251: c_int = 251; +pub const RICON_252: c_int = 252; +pub const RICON_253: c_int = 253; +pub const RICON_254: c_int = 254; +pub const RICON_255: c_int = 255; +pub const guiIconName = c_uint; +pub var guiIcons: [2048]c_uint = [2048]c_uint{ + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 1073217536)), + @bitCast(c_uint, @as(c_int, 789061640)), + @bitCast(c_uint, @as(c_int, 541204606)), + @bitCast(c_uint, @as(c_int, 1073905602)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 32766)), + @bitCast(c_uint, @as(c_int, 1073610752)), + @bitCast(c_uint, @as(c_int, 1143104546)), + @bitCast(c_uint, @as(c_int, 1073891298)), + @bitCast(c_uint, @as(c_int, 1610235906)), + @bitCast(c_uint, @as(c_int, 1474973706)), + @bitCast(c_uint, @as(c_int, 1342853130)), + @bitCast(c_uint, @as(c_int, 1073897466)), + @bitCast(c_uint, @as(c_int, 32766)), + 0, + @bitCast(c_uint, @as(c_int, 4325502)), + @bitCast(c_uint, @as(c_int, 1073905602)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 1090666498)), + @bitCast(c_uint, @as(c_int, 1145193090)), + @bitCast(c_uint, @as(c_int, 2034123010)), + @bitCast(c_uint, @as(c_int, 256)), + 0, + @bitCast(c_uint, @as(c_int, 4325502)), + @bitCast(c_uint, @as(c_int, 1073905602)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 1090666754)), + @bitCast(c_uint, @as(c_int, 1145192706)), + @bitCast(c_uint, @as(c_int, 2034123394)), + 0, + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 538714128)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 553918468)), + @bitCast(c_uint, @as(c_int, 608445060)), + @bitCast(c_uint, @as(c_int, 553918724)), + @bitCast(c_uint, @as(c_int, 537141508)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 538714128)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 553918468)), + @bitCast(c_uint, @as(c_int, 553918724)), + @bitCast(c_uint, @as(c_int, 579085380)), + @bitCast(c_uint, @as(c_int, 537141508)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 538714128)), + @bitCast(c_uint, @as(c_int, 270340)), + @bitCast(c_uint, @as(c_int, 537137156)), + @bitCast(c_uint, @as(c_int, 545539972)), + @bitCast(c_uint, @as(c_int, 8655748)), + @bitCast(c_uint, @as(c_int, 537143172)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 538714128)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 570696196)), + @bitCast(c_uint, @as(c_int, 570699652)), + @bitCast(c_uint, @as(c_int, 537141764)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 538714128)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 621029508)), + @bitCast(c_uint, @as(c_int, 621027844)), + @bitCast(c_uint, @as(c_int, 537143428)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 538714128)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537145332)), + @bitCast(c_uint, @as(c_int, 537145332)), + @bitCast(c_uint, @as(c_int, 537145332)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 538714128)), + @bitCast(c_uint, @as(c_int, 654581764)), + @bitCast(c_uint, @as(c_int, 608445636)), + @bitCast(c_uint, @as(c_int, 641999940)), + @bitCast(c_uint, @as(c_int, 543434340)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 538714128)), + @bitCast(c_uint, @as(c_int, 637806084)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 893659268)), + @bitCast(c_uint, @as(c_int, 605299244)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 538714128)), + @bitCast(c_uint, @as(c_int, 549724164)), + @bitCast(c_uint, @as(c_int, 574890308)), + @bitCast(c_uint, @as(c_int, 574891076)), + @bitCast(c_uint, @as(c_int, 549724484)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 1073491952)), + @bitCast(c_uint, @as(c_int, 1060909044)), + @bitCast(c_uint, @as(c_int, 1035742900)), + @bitCast(c_uint, @as(c_int, 1035742132)), + @bitCast(c_uint, @as(c_int, 1060908724)), + @bitCast(c_uint, @as(c_int, 1073491956)), + @bitCast(c_uint, @as(c_int, 12276)), + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 538714128)), + @bitCast(c_uint, @as(c_int, 562307460)), + @bitCast(c_uint, @as(c_int, 562307076)), + @bitCast(c_uint, @as(c_int, 562307460)), + @bitCast(c_uint, @as(c_int, 562307460)), + @bitCast(c_uint, @as(c_int, 537141636)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 267386880)), + @bitCast(c_uint, @as(c_int, 941361168)), + @bitCast(c_uint, @as(c_int, 671361028)), + @bitCast(c_uint, @as(c_int, 671361028)), + @bitCast(c_uint, @as(c_int, 671361028)), + @bitCast(c_uint, @as(c_int, 671361028)), + @bitCast(c_uint, @as(c_int, 537931772)), + @bitCast(c_uint, @as(c_int, 16368)), + 0, + @bitCast(c_uint, @as(c_int, 1880883200)), + @bitCast(c_uint, @as(c_int, 127671828)), + @bitCast(c_uint, @as(c_int, 1436549360)), + @bitCast(c_uint, @as(c_int, 127664368)), + @bitCast(c_uint, @as(c_int, 1880890900)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 29360128)), + @bitCast(c_uint, @as(c_int, 333716460)), + @bitCast(c_uint, @as(c_int, 1065619460)), + @bitCast(c_uint, @as(c_int, 541335748)), + @bitCast(c_uint, @as(c_int, 541335620)), + @bitCast(c_uint, @as(c_int, 541335620)), + @bitCast(c_uint, @as(c_int, 545005636)), + @bitCast(c_uint, @as(c_int, 16320)), + 0, + @bitCast(c_uint, @as(c_int, 983568352)), + @bitCast(c_uint, @as(c_int, 716974752)), + @bitCast(c_uint, @as(c_int, 715401892)), + @bitCast(c_uint, @as(c_int, 537143972)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 1073487876)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 3932172)), + @bitCast(c_uint, @as(c_int, 50856136)), + @bitCast(c_uint, @as(c_int, 806358032)), + @bitCast(c_uint, @as(c_int, 270540832)), + @bitCast(c_uint, @as(c_int, 71305280)), + @bitCast(c_uint, @as(c_int, 25166464)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1572864)), + @bitCast(c_uint, @as(c_int, 32505976)), + @bitCast(c_uint, @as(c_int, 65013744)), + @bitCast(c_uint, @as(c_int, 130024416)), + @bitCast(c_uint, @as(c_int, 67112512)), + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 67108864)), + @bitCast(c_uint, @as(c_int, 285215232)), + @bitCast(c_uint, @as(c_int, 71305856)), + @bitCast(c_uint, @as(c_int, 17826336)), + @bitCast(c_uint, @as(c_int, 5767304)), + 56, + 0, + @bitCast(c_uint, @as(c_int, 67108864)), + @bitCast(c_uint, @as(c_int, 352324096)), + @bitCast(c_uint, @as(c_int, 1346381952)), + @bitCast(c_uint, @as(c_int, 336603168)), + @bitCast(c_uint, @as(c_int, 84150792)), + @bitCast(c_uint, @as(c_int, 22807180)), + @bitCast(c_uint, @as(c_int, 8126652)), + 0, + @bitCast(c_uint, @as(c_int, 29360128)), + @bitCast(c_uint, @as(c_int, 20971840)), + @bitCast(c_uint, @as(c_int, 20971840)), + @bitCast(c_uint, @as(c_int, 267911488)), + @bitCast(c_uint, @as(c_int, 267913224)), + @bitCast(c_uint, @as(c_int, 178784264)), + @bitCast(c_uint, @as(c_int, 178784936)), + @bitCast(c_uint, @as(c_int, 4088)), + @bitCast(c_uint, @as(c_int, 536608768)), + @bitCast(c_uint, @as(c_int, 1610383358)), + @bitCast(c_uint, @as(c_int, 1073758208)), + @bitCast(c_uint, @as(c_int, 8421248)), + @bitCast(c_uint, @as(c_int, 29360576)), + @bitCast(c_uint, @as(c_int, 29360576)), + @bitCast(c_uint, @as(c_int, 29360576)), + 128, + 0, + @bitCast(c_uint, @as(c_int, 8388608)), + @bitCast(c_uint, @as(c_int, 29360256)), + @bitCast(c_uint, @as(c_int, 65012160)), + @bitCast(c_uint, @as(c_int, 133170144)), + @bitCast(c_uint, @as(c_int, 56624880)), + @bitCast(c_uint, @as(c_int, 448)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1040201728)), + @bitCast(c_uint, @as(c_int, 528498560)), + @bitCast(c_uint, @as(c_int, 203431488)), + @bitCast(c_uint, @as(c_int, 34081808)), + @bitCast(c_uint, @as(c_int, 8651012)), + @bitCast(c_uint, @as(c_int, 3670084)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 125829888)), + @bitCast(c_uint, @as(c_int, 534777792)), + @bitCast(c_uint, @as(c_int, 1065893840)), + @bitCast(c_uint, @as(c_int, 235020036)), + @bitCast(c_uint, @as(c_int, 33817602)), + @bitCast(c_uint, @as(c_int, 15728904)), + 0, + @bitCast(c_uint, @as(c_int, 12582912)), + @bitCast(c_uint, @as(c_int, 41943360)), + @bitCast(c_uint, @as(c_int, 136315968)), + @bitCast(c_uint, @as(c_int, 537399312)), + @bitCast(c_uint, @as(c_int, 805187588)), + @bitCast(c_uint, @as(c_int, 66586620)), + @bitCast(c_uint, @as(c_int, 14680560)), + 64, + 0, + @bitCast(c_uint, @as(c_int, 562315260)), + @bitCast(c_uint, @as(c_int, 25166208)), + @bitCast(c_uint, @as(c_int, 25166208)), + @bitCast(c_uint, @as(c_int, 25166208)), + @bitCast(c_uint, @as(c_int, 25166208)), + @bitCast(c_uint, @as(c_int, 62914944)), + 0, + @bitCast(c_uint, @as(c_int, 8388608)), + @bitCast(c_uint, @as(c_int, 20971904)), + @bitCast(c_uint, @as(c_int, 102761280)), + @bitCast(c_uint, @as(c_int, 202376736)), + @bitCast(c_uint, @as(c_int, 536349712)), + @bitCast(c_uint, @as(c_int, 940316680)), + @bitCast(c_uint, @as(c_int, 1879470084)), + @bitCast(c_uint, @as(c_int, 63503)), + @bitCast(c_uint, @as(c_int, 2013265920)), + @bitCast(c_uint, @as(c_int, 1342193664)), + @bitCast(c_uint, @as(c_int, 18432)), + @bitCast(c_uint, @as(c_int, 62915520)), + @bitCast(c_uint, @as(c_int, 62915520)), + @bitCast(c_uint, @as(c_int, 1048576)), + @bitCast(c_uint, @as(c_int, 131082)), + 14, + @bitCast(c_uint, @as(c_int, 1968570368)), + @bitCast(c_uint, @as(c_int, 1577074690)), + @bitCast(c_uint, @as(c_int, 1409290242)), + @bitCast(c_uint, @as(c_int, 1090523650)), + @bitCast(c_uint, @as(c_int, 1082261758)), + @bitCast(c_uint, @as(c_int, 1082261634)), + @bitCast(c_uint, @as(c_int, 1082261634)), + @bitCast(c_uint, @as(c_int, 27390)), + 0, + @bitCast(c_uint, @as(c_int, 1056980736)), + @bitCast(c_uint, @as(c_int, 1056980736)), + @bitCast(c_uint, @as(c_int, 1056980736)), + @bitCast(c_uint, @as(c_int, 4194432)), + @bitCast(c_uint, @as(c_int, 1835040)), + @bitCast(c_uint, @as(c_int, 1835036)), + 0, + @bitCast(c_uint, @as(c_int, 1837105152)), + @bitCast(c_uint, @as(c_int, 16512)), + @bitCast(c_uint, @as(c_int, 1082146944)), + @bitCast(c_uint, @as(c_int, 1082130432)), + @bitCast(c_uint, @as(c_int, 4222336)), + @bitCast(c_uint, @as(c_int, 1835040)), + @bitCast(c_uint, @as(c_int, 1835036)), + 0, + @bitCast(c_uint, @as(c_int, 1074266112)), + @bitCast(c_uint, @as(c_int, 536748040)), + @bitCast(c_uint, @as(c_int, 336072712)), + @bitCast(c_uint, @as(c_int, 285741576)), + @bitCast(c_uint, @as(c_int, 273158280)), + @bitCast(c_uint, @as(c_int, 268963880)), + @bitCast(c_uint, @as(c_int, 268730360)), + @bitCast(c_uint, @as(c_int, 4098)), + @bitCast(c_uint, @as(c_int, 1048576)), + @bitCast(c_uint, @as(c_int, 1073479696)), + @bitCast(c_uint, @as(c_int, 716191056)), + @bitCast(c_uint, @as(c_int, 581969232)), + @bitCast(c_uint, @as(c_int, 548413776)), + @bitCast(c_uint, @as(c_int, 540024912)), + @bitCast(c_uint, @as(c_int, 536936432)), + @bitCast(c_uint, @as(c_int, 8192)), + @bitCast(c_uint, @as(c_int, 1073741824)), + @bitCast(c_uint, @as(c_int, 536354816)), + @bitCast(c_uint, @as(c_int, 67643400)), + @bitCast(c_uint, @as(c_int, 17310216)), + @bitCast(c_uint, @as(c_int, 4726920)), + @bitCast(c_uint, @as(c_int, 1581096)), + @bitCast(c_uint, @as(c_int, 894705672)), + 2, + 0, + @bitCast(c_uint, @as(c_int, 41943680)), + @bitCast(c_uint, @as(c_int, 113247936)), + @bitCast(c_uint, @as(c_int, 245370592)), + @bitCast(c_uint, @as(c_int, 512761520)), + @bitCast(c_uint, @as(c_int, 1049116312)), + @bitCast(c_uint, @as(c_int, 2130476684)), + 0, + @bitCast(c_uint, @as(c_int, 16777216)), + @bitCast(c_uint, @as(c_int, 90177792)), + @bitCast(c_uint, @as(c_int, 491261264)), + @bitCast(c_uint, @as(c_int, 2101493060)), + @bitCast(c_uint, @as(c_int, 1027898690)), + @bitCast(c_uint, @as(c_int, 223354184)), + @bitCast(c_uint, @as(c_int, 16778592)), + @bitCast(c_uint, @as(c_int, 256)), + @bitCast(c_uint, @as(c_int, 25165824)), + @bitCast(c_uint, @as(c_int, 69206592)), + @bitCast(c_uint, @as(c_int, 268961808)), + @bitCast(c_uint, @as(c_int, 8184)), + @bitCast(c_uint, @as(c_int, 32766)), + @bitCast(c_uint, @as(c_int, 267395064)), + @bitCast(c_uint, @as(c_int, 62916576)), + @bitCast(c_uint, @as(c_int, 384)), + 0, + @bitCast(c_uint, @as(c_int, 17301744)), + @bitCast(c_uint, @as(c_int, 33817092)), + @bitCast(c_uint, @as(c_int, 33817092)), + @bitCast(c_uint, @as(c_int, 133169928)), + @bitCast(c_uint, @as(c_int, 469765632)), + @bitCast(c_uint, @as(c_int, 805320704)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 102237168)), + @bitCast(c_uint, @as(c_int, 136580108)), + @bitCast(c_uint, @as(c_int, 134481940)), + @bitCast(c_uint, @as(c_int, 202115076)), + @bitCast(c_uint, @as(c_int, 602936856)), + @bitCast(c_uint, @as(c_int, 402662400)), + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 477104064)), + @bitCast(c_uint, @as(c_int, 1670263704)), + @bitCast(c_uint, @as(c_int, 477115288)), + @bitCast(c_uint, @as(c_int, 1984)), + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 268443648)), + @bitCast(c_uint, @as(c_int, 74452928)), + @bitCast(c_uint, @as(c_int, 1628320280)), + @bitCast(c_uint, @as(c_int, 477114520)), + @bitCast(c_uint, @as(c_int, 1050528)), + 8, + 0, + 0, + @bitCast(c_uint, @as(c_int, 32764)), + @bitCast(c_uint, @as(c_int, 1074036732)), + @bitCast(c_uint, @as(c_int, 269492232)), + @bitCast(c_uint, @as(c_int, 71305248)), + @bitCast(c_uint, @as(c_int, 41943680)), + @bitCast(c_uint, @as(c_int, 41943680)), + @bitCast(c_uint, @as(c_int, 256)), + 0, + @bitCast(c_uint, @as(c_int, 1073905662)), + @bitCast(c_uint, @as(c_int, 268967940)), + @bitCast(c_uint, @as(c_int, 69208080)), + @bitCast(c_uint, @as(c_int, 37749312)), + @bitCast(c_uint, @as(c_int, 37749312)), + @bitCast(c_uint, @as(c_int, 20972096)), + 192, + @bitCast(c_uint, @as(c_int, 8388608)), + @bitCast(c_uint, @as(c_int, 8388736)), + 128, + @bitCast(c_uint, @as(c_int, 1016987648)), + 0, + @bitCast(c_uint, @as(c_int, 8388736)), + @bitCast(c_uint, @as(c_int, 8388736)), + 0, + @bitCast(c_uint, @as(c_int, 8388608)), + @bitCast(c_uint, @as(c_int, 8388736)), + @bitCast(c_uint, @as(c_int, 8388736)), + @bitCast(c_uint, @as(c_int, 1065222592)), + @bitCast(c_uint, @as(c_int, 8389056)), + @bitCast(c_uint, @as(c_int, 8388736)), + @bitCast(c_uint, @as(c_int, 8388736)), + 0, + @bitCast(c_uint, @as(c_int, 8388608)), + @bitCast(c_uint, @as(c_int, 8388736)), + @bitCast(c_uint, @as(c_int, 65011840)), + @bitCast(c_uint, @as(c_int, 1044251168)), + @bitCast(c_uint, @as(c_int, 65012256)), + @bitCast(c_uint, @as(c_int, 8388736)), + @bitCast(c_uint, @as(c_int, 8388736)), + 0, + @bitCast(c_uint, @as(c_int, 16777216)), + @bitCast(c_uint, @as(c_int, 71303808)), + @bitCast(c_uint, @as(c_int, 16777472)), + @bitCast(c_uint, @as(c_int, 1132732424)), + @bitCast(c_uint, @as(c_int, 1132763826)), + @bitCast(c_uint, @as(c_int, 16785416)), + @bitCast(c_uint, @as(c_int, 71303424)), + @bitCast(c_uint, @as(c_int, 16777856)), + @bitCast(c_uint, @as(c_int, 16777216)), + @bitCast(c_uint, @as(c_int, 71303808)), + @bitCast(c_uint, @as(c_int, 16777472)), + @bitCast(c_uint, @as(c_int, 1090789640)), + @bitCast(c_uint, @as(c_int, 1090822130)), + @bitCast(c_uint, @as(c_int, 16785672)), + @bitCast(c_uint, @as(c_int, 71303424)), + @bitCast(c_uint, @as(c_int, 16777856)), + @bitCast(c_uint, @as(c_int, 2015232000)), + @bitCast(c_uint, @as(c_int, 1342849026)), + @bitCast(c_uint, @as(c_int, 69224466)), + @bitCast(c_uint, @as(c_int, 576)), + @bitCast(c_uint, @as(c_int, 37748736)), + @bitCast(c_uint, @as(c_int, 1209140256)), + @bitCast(c_uint, @as(c_int, 1073893386)), + @bitCast(c_uint, @as(c_int, 30750)), + 0, + @bitCast(c_uint, @as(c_int, 536886272)), + @bitCast(c_uint, @as(c_int, 603990016)), + @bitCast(c_uint, @as(c_int, 16777728)), + @bitCast(c_uint, @as(c_int, 4194432)), + @bitCast(c_uint, @as(c_int, 1310756)), + @bitCast(c_uint, @as(c_int, 3932164)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 262204)), + @bitCast(c_uint, @as(c_int, 2359316)), + @bitCast(c_uint, @as(c_int, 8388672)), + @bitCast(c_uint, @as(c_int, 33554688)), + @bitCast(c_uint, @as(c_int, 671097856)), + @bitCast(c_uint, @as(c_int, 1006641152)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1048608)), + @bitCast(c_uint, @as(c_int, 269492168)), + @bitCast(c_uint, @as(c_int, 268439584)), + @bitCast(c_uint, @as(c_int, 268439552)), + @bitCast(c_uint, @as(c_int, 268439552)), + @bitCast(c_uint, @as(c_int, 8128)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 134218752)), + @bitCast(c_uint, @as(c_int, 134747128)), + @bitCast(c_uint, @as(c_int, 525320)), + @bitCast(c_uint, @as(c_int, 524296)), + @bitCast(c_uint, @as(c_int, 524296)), + @bitCast(c_uint, @as(c_int, 1016)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1073479680)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 536879104)), + @bitCast(c_uint, @as(c_int, 541073408)), + @bitCast(c_uint, @as(c_int, 1066410016)), + @bitCast(c_uint, @as(c_int, 4194336)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1073479680)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 670834692)), + @bitCast(c_uint, @as(c_int, 538976256)), + @bitCast(c_uint, @as(c_int, 1070080016)), + @bitCast(c_uint, @as(c_int, 2097168)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 267386880)), + @bitCast(c_uint, @as(c_int, 268965912)), + @bitCast(c_uint, @as(c_int, 293605384)), + @bitCast(c_uint, @as(c_int, 268439936)), + @bitCast(c_uint, @as(c_int, 403705888)), + @bitCast(c_uint, @as(c_int, 1052616)), + 32, + 0, + @bitCast(c_uint, @as(c_int, 67109376)), + @bitCast(c_uint, @as(c_int, 604252668)), + @bitCast(c_uint, @as(c_int, 537141764)), + @bitCast(c_uint, @as(c_int, 541335556)), + @bitCast(c_uint, @as(c_int, 1066672164)), + @bitCast(c_uint, @as(c_int, 4194336)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 536875008)), + @bitCast(c_uint, @as(c_int, 571493390)), + @bitCast(c_uint, @as(c_int, 8392992)), + @bitCast(c_uint, @as(c_int, 287309888)), + @bitCast(c_uint, @as(c_int, 1275994640)), + @bitCast(c_uint, @as(c_int, 268443648)), + 0, + @bitCast(c_uint, @as(c_int, 2147352576)), + @bitCast(c_uint, @as(c_int, 1342324738)), + @bitCast(c_uint, @as(c_int, 1141000194)), + @bitCast(c_uint, @as(c_int, 1090667010)), + @bitCast(c_uint, @as(c_int, 1078083714)), + @bitCast(c_uint, @as(c_int, 1074937890)), + @bitCast(c_uint, @as(c_int, 1073889290)), + @bitCast(c_uint, @as(c_int, 32766)), + @bitCast(c_uint, @as(c_int, 8388608)), + @bitCast(c_uint, @as(c_int, 65011840)), + @bitCast(c_uint, @as(c_int, 134743184)), + @bitCast(c_uint, @as(c_int, 1016989704)), + @bitCast(c_uint, @as(c_int, 134744072)), + @bitCast(c_uint, @as(c_int, 65012880)), + @bitCast(c_uint, @as(c_int, 8388736)), + 0, + @bitCast(c_uint, @as(c_int, 8388608)), + @bitCast(c_uint, @as(c_int, 8388736)), + @bitCast(c_uint, @as(c_int, 8388736)), + @bitCast(c_uint, @as(c_int, 1073611200)), + @bitCast(c_uint, @as(c_int, 8389056)), + @bitCast(c_uint, @as(c_int, 8388736)), + @bitCast(c_uint, @as(c_int, 8388736)), + 0, + @bitCast(c_uint, @as(c_int, 8388608)), + @bitCast(c_uint, @as(c_int, 8388736)), + @bitCast(c_uint, @as(c_int, 65011840)), + @bitCast(c_uint, @as(c_int, 1073611744)), + @bitCast(c_uint, @as(c_int, 65012704)), + @bitCast(c_uint, @as(c_int, 8388736)), + @bitCast(c_uint, @as(c_int, 8388736)), + 0, + @bitCast(c_uint, @as(c_int, 16777216)), + @bitCast(c_uint, @as(c_int, 130024320)), + @bitCast(c_uint, @as(c_int, 16777472)), + @bitCast(c_uint, @as(c_int, 1670127624)), + @bitCast(c_uint, @as(c_int, 1670183870)), + @bitCast(c_uint, @as(c_int, 16785416)), + @bitCast(c_uint, @as(c_int, 130023680)), + @bitCast(c_uint, @as(c_int, 16778112)), + @bitCast(c_uint, @as(c_int, 16777216)), + @bitCast(c_uint, @as(c_int, 130024320)), + @bitCast(c_uint, @as(c_int, 16777472)), + @bitCast(c_uint, @as(c_int, 1628184840)), + @bitCast(c_uint, @as(c_int, 1628241918)), + @bitCast(c_uint, @as(c_int, 16785672)), + @bitCast(c_uint, @as(c_int, 130023680)), + @bitCast(c_uint, @as(c_int, 16778112)), + @bitCast(c_uint, @as(c_int, 2015232000)), + @bitCast(c_uint, @as(c_int, 1611034638)), + @bitCast(c_uint, @as(c_int, 69224466)), + @bitCast(c_uint, @as(c_int, 576)), + @bitCast(c_uint, @as(c_int, 37748736)), + @bitCast(c_uint, @as(c_int, 1209140256)), + @bitCast(c_uint, @as(c_int, 1879990278)), + @bitCast(c_uint, @as(c_int, 30750)), + 0, + @bitCast(c_uint, @as(c_int, 939539456)), + @bitCast(c_uint, @as(c_int, 603992064)), + @bitCast(c_uint, @as(c_int, 16777728)), + @bitCast(c_uint, @as(c_int, 4194432)), + @bitCast(c_uint, @as(c_int, 786468)), + @bitCast(c_uint, @as(c_int, 3932188)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1835068)), + @bitCast(c_uint, @as(c_int, 2359308)), + @bitCast(c_uint, @as(c_int, 8388672)), + @bitCast(c_uint, @as(c_int, 33554688)), + @bitCast(c_uint, @as(c_int, 805315584)), + @bitCast(c_uint, @as(c_int, 1006647296)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 3145760)), + @bitCast(c_uint, @as(c_int, 271589368)), + @bitCast(c_uint, @as(c_int, 268439584)), + @bitCast(c_uint, @as(c_int, 268439552)), + @bitCast(c_uint, @as(c_int, 268439552)), + @bitCast(c_uint, @as(c_int, 8128)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 201327616)), + @bitCast(c_uint, @as(c_int, 201859064)), + @bitCast(c_uint, @as(c_int, 525320)), + @bitCast(c_uint, @as(c_int, 524296)), + @bitCast(c_uint, @as(c_int, 524296)), + @bitCast(c_uint, @as(c_int, 1016)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1073479680)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 536879104)), + @bitCast(c_uint, @as(c_int, 541073408)), + @bitCast(c_uint, @as(c_int, 1072701536)), + @bitCast(c_uint, @as(c_int, 4194400)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1073479680)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 670834692)), + @bitCast(c_uint, @as(c_int, 538976256)), + @bitCast(c_uint, @as(c_int, 1073225776)), + @bitCast(c_uint, @as(c_int, 2097200)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 267386880)), + @bitCast(c_uint, @as(c_int, 268965912)), + @bitCast(c_uint, @as(c_int, 293605384)), + @bitCast(c_uint, @as(c_int, 268439936)), + @bitCast(c_uint, @as(c_int, 405803040)), + @bitCast(c_uint, @as(c_int, 3149816)), + 32, + 0, + @bitCast(c_uint, @as(c_int, 100663808)), + @bitCast(c_uint, @as(c_int, 637808636)), + @bitCast(c_uint, @as(c_int, 537141764)), + @bitCast(c_uint, @as(c_int, 541335556)), + @bitCast(c_uint, @as(c_int, 1072963684)), + @bitCast(c_uint, @as(c_int, 4194400)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 805310464)), + @bitCast(c_uint, @as(c_int, 839941134)), + @bitCast(c_uint, @as(c_int, 8392992)), + @bitCast(c_uint, @as(c_int, 287309888)), + @bitCast(c_uint, @as(c_int, 2081305104)), + @bitCast(c_uint, @as(c_int, 268447744)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 805584892)), + @bitCast(c_uint, @as(c_int, 604252164)), + @bitCast(c_uint, @as(c_int, 553918980)), + @bitCast(c_uint, @as(c_int, 541335684)), + @bitCast(c_uint, @as(c_int, 538189860)), + @bitCast(c_uint, @as(c_int, 1073487884)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537149436)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 1073487876)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 600063996)), + @bitCast(c_uint, @as(c_int, 600056772)), + @bitCast(c_uint, @as(c_int, 537142212)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 1073487876)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1040465916)), + @bitCast(c_uint, @as(c_int, 1040465412)), + @bitCast(c_uint, @as(c_int, 537148932)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 1073487876)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537149436)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 1040465412)), + @bitCast(c_uint, @as(c_int, 1040465412)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 1073487876)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537149436)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 1040457732)), + @bitCast(c_uint, @as(c_int, 1040465412)), + @bitCast(c_uint, @as(c_int, 1073495556)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537149436)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 600055812)), + @bitCast(c_uint, @as(c_int, 600056772)), + @bitCast(c_uint, @as(c_int, 1073488836)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537149436)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 545005572)), + @bitCast(c_uint, @as(c_int, 545005692)), + @bitCast(c_uint, @as(c_int, 1073487996)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537149436)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 545005692)), + @bitCast(c_uint, @as(c_int, 545005692)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 1073487876)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 545013756)), + @bitCast(c_uint, @as(c_int, 545005692)), + @bitCast(c_uint, @as(c_int, 537141372)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 1073487876)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537149436)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 600056772)), + @bitCast(c_uint, @as(c_int, 600056772)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 1073487876)), + 0, + @bitCast(c_uint, @as(c_int, 2147352576)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 1206010242)), + @bitCast(c_uint, @as(c_int, 1341278178)), + @bitCast(c_uint, @as(c_int, 1206013938)), + @bitCast(c_uint, @as(c_int, 1099057122)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 32766)), + @bitCast(c_uint, @as(c_int, 2147418112)), + @bitCast(c_uint, @as(c_int, 1073823745)), + @bitCast(c_uint, @as(c_int, 1073823745)), + @bitCast(c_uint, @as(c_int, 1230331357)), + @bitCast(c_uint, @as(c_int, 1229277533)), + @bitCast(c_uint, @as(c_int, 1073826245)), + @bitCast(c_uint, @as(c_int, 1073823745)), + @bitCast(c_uint, @as(c_int, 32767)), + @bitCast(c_uint, @as(c_int, 2147352576)), + @bitCast(c_uint, @as(c_int, 1395815218)), + @bitCast(c_uint, @as(c_int, 1154370766)), + @bitCast(c_uint, @as(c_int, 1093813042)), + @bitCast(c_uint, @as(c_int, 1078870222)), + @bitCast(c_uint, @as(c_int, 1209160754)), + @bitCast(c_uint, @as(c_int, 1074156558)), + @bitCast(c_uint, @as(c_int, 32766)), + @bitCast(c_uint, @as(c_int, 2147352576)), + @bitCast(c_uint, @as(c_int, 1395815218)), + @bitCast(c_uint, @as(c_int, 1154370766)), + @bitCast(c_uint, @as(c_int, 1093813042)), + @bitCast(c_uint, @as(c_int, 1548632270)), + @bitCast(c_uint, @as(c_int, 1142047794)), + @bitCast(c_uint, @as(c_int, 1074158606)), + @bitCast(c_uint, @as(c_int, 32766)), + @bitCast(c_uint, @as(c_int, 2147352576)), + @bitCast(c_uint, @as(c_int, 1123959166)), + @bitCast(c_uint, @as(c_int, 1123959166)), + @bitCast(c_uint, @as(c_int, 1123959166)), + @bitCast(c_uint, @as(c_int, 1123959166)), + @bitCast(c_uint, @as(c_int, 1123959166)), + @bitCast(c_uint, @as(c_int, 1123959166)), + @bitCast(c_uint, @as(c_int, 32766)), + @bitCast(c_uint, @as(c_int, 134086656)), + @bitCast(c_uint, @as(c_int, 536477698)), + @bitCast(c_uint, @as(c_int, 2146041866)), + @bitCast(c_uint, @as(c_int, 1076510762)), + @bitCast(c_uint, @as(c_int, 1529499946)), + @bitCast(c_uint, @as(c_int, 1361597738)), + @bitCast(c_uint, @as(c_int, 1075859752)), + @bitCast(c_uint, @as(c_int, 32736)), + 0, + @bitCast(c_uint, @as(c_int, 536346624)), + @bitCast(c_uint, @as(c_int, 306713160)), + @bitCast(c_uint, @as(c_int, 306716664)), + @bitCast(c_uint, @as(c_int, 536351304)), + @bitCast(c_uint, @as(c_int, 306713160)), + @bitCast(c_uint, @as(c_int, 8184)), + 0, + @bitCast(c_uint, @as(c_int, 306708480)), + @bitCast(c_uint, @as(c_int, 2147357256)), + @bitCast(c_uint, @as(c_int, 306713160)), + @bitCast(c_uint, @as(c_int, 306741246)), + @bitCast(c_uint, @as(c_int, 2147357256)), + @bitCast(c_uint, @as(c_int, 306713160)), + @bitCast(c_uint, @as(c_int, 306741246)), + @bitCast(c_uint, @as(c_int, 4680)), + 0, + @bitCast(c_uint, @as(c_int, 473432064)), + @bitCast(c_uint, @as(c_int, 473438184)), + @bitCast(c_uint, @as(c_int, 135268368)), + @bitCast(c_uint, @as(c_int, 135268368)), + @bitCast(c_uint, @as(c_int, 401087544)), + @bitCast(c_uint, @as(c_int, 7224)), + 0, + @bitCast(c_uint, @as(c_int, 1879965696)), + @bitCast(c_uint, @as(c_int, 1879990266)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 1610248206)), + @bitCast(c_uint, @as(c_int, 28686)), + @bitCast(c_uint, @as(c_int, 1065222144)), + @bitCast(c_uint, @as(c_int, 557982018)), + @bitCast(c_uint, @as(c_int, 557982018)), + @bitCast(c_uint, @as(c_int, 16254)), + @bitCast(c_uint, @as(c_int, 557989758)), + @bitCast(c_uint, @as(c_int, 557982018)), + @bitCast(c_uint, @as(c_int, 1065230658)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1001914368)), + @bitCast(c_uint, @as(c_int, 1001929656)), + @bitCast(c_uint, @as(c_int, 1001914368)), + @bitCast(c_uint, @as(c_int, 1001929656)), + @bitCast(c_uint, @as(c_int, 1001914368)), + @bitCast(c_uint, @as(c_int, 1001929656)), + 0, + @bitCast(c_uint, @as(c_int, 2147352576)), + @bitCast(c_uint, @as(c_int, 2147385342)), + @bitCast(c_uint, @as(c_int, 2013163520)), + @bitCast(c_uint, @as(c_int, 2013165566)), + @bitCast(c_uint, @as(c_int, 2004776704)), + @bitCast(c_uint, @as(c_int, 2004776830)), + @bitCast(c_uint, @as(c_int, 2004776830)), + @bitCast(c_uint, @as(c_int, 30590)), + @bitCast(c_uint, @as(c_int, 2015232000)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 16386)), + @bitCast(c_uint, @as(c_int, 25165824)), + @bitCast(c_uint, @as(c_int, 384)), + @bitCast(c_uint, @as(c_int, 1073872896)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 30750)), + @bitCast(c_uint, @as(c_int, 2015232000)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 16386)), + @bitCast(c_uint, @as(c_int, 62915520)), + @bitCast(c_uint, @as(c_int, 62915520)), + @bitCast(c_uint, @as(c_int, 1073872896)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 30750)), + @bitCast(c_uint, @as(c_int, 2015232000)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 132136962)), + @bitCast(c_uint, @as(c_int, 132122592)), + @bitCast(c_uint, @as(c_int, 132122592)), + @bitCast(c_uint, @as(c_int, 1073874912)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 30750)), + @bitCast(c_uint, @as(c_int, 2015232000)), + @bitCast(c_uint, @as(c_int, 1610235906)), + @bitCast(c_uint, @as(c_int, 536371194)), + @bitCast(c_uint, @as(c_int, 536354808)), + @bitCast(c_uint, @as(c_int, 536354808)), + @bitCast(c_uint, @as(c_int, 1610227704)), + @bitCast(c_uint, @as(c_int, 1073897466)), + @bitCast(c_uint, @as(c_int, 30750)), + 0, + @bitCast(c_uint, @as(c_int, 537147420)), + @bitCast(c_uint, @as(c_int, 8196)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537133056)), + @bitCast(c_uint, @as(c_int, 941367300)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 498597888)), + @bitCast(c_uint, @as(c_int, 268963848)), + @bitCast(c_uint, @as(c_int, 268959744)), + @bitCast(c_uint, @as(c_int, 4104)), + @bitCast(c_uint, @as(c_int, 268963848)), + @bitCast(c_uint, @as(c_int, 7608)), + 0, + @bitCast(c_uint, @as(c_int, 894828544)), + @bitCast(c_uint, @as(c_int, 8194)), + @bitCast(c_uint, @as(c_int, 8194)), + @bitCast(c_uint, @as(c_int, 8194)), + @bitCast(c_uint, @as(c_int, 8194)), + @bitCast(c_uint, @as(c_int, 8194)), + @bitCast(c_uint, @as(c_int, 894836738)), + 0, + @bitCast(c_uint, @as(c_int, 2147352576)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 1209159666)), + @bitCast(c_uint, @as(c_int, 1234323474)), + @bitCast(c_uint, @as(c_int, 1209158034)), + @bitCast(c_uint, @as(c_int, 1341278226)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 32766)), + 0, + @bitCast(c_uint, @as(c_int, 277094396)), + @bitCast(c_uint, @as(c_int, 277090436)), + @bitCast(c_uint, @as(c_int, 536612996)), + @bitCast(c_uint, @as(c_int, 277090436)), + @bitCast(c_uint, @as(c_int, 277090436)), + @bitCast(c_uint, @as(c_int, 8188)), + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 268435456)), + @bitCast(c_uint, @as(c_int, 67110912)), + @bitCast(c_uint, @as(c_int, 17039872)), + @bitCast(c_uint, @as(c_int, 5243016)), + 32, + 0, + 0, + @bitCast(c_uint, @as(c_int, 268959744)), + @bitCast(c_uint, @as(c_int, 69208080)), + @bitCast(c_uint, @as(c_int, 25166400)), + @bitCast(c_uint, @as(c_int, 37749120)), + @bitCast(c_uint, @as(c_int, 135267360)), + @bitCast(c_uint, @as(c_int, 4104)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 33554432)), + @bitCast(c_uint, @as(c_int, 8388864)), + @bitCast(c_uint, @as(c_int, 2097216)), + @bitCast(c_uint, @as(c_int, 2097168)), + @bitCast(c_uint, @as(c_int, 8388672)), + @bitCast(c_uint, @as(c_int, 33554688)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 4194304)), + @bitCast(c_uint, @as(c_int, 16777344)), + @bitCast(c_uint, @as(c_int, 67109376)), + @bitCast(c_uint, @as(c_int, 67110912)), + @bitCast(c_uint, @as(c_int, 16777728)), + @bitCast(c_uint, @as(c_int, 4194432)), + 0, + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 134746116)), + @bitCast(c_uint, @as(c_int, 35652624)), + @bitCast(c_uint, @as(c_int, 8388928)), + 0, + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 20971648)), + @bitCast(c_uint, @as(c_int, 68157984)), + @bitCast(c_uint, @as(c_int, 268699656)), + 0, + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 33554432)), + @bitCast(c_uint, @as(c_int, 58721024)), + @bitCast(c_uint, @as(c_int, 65012672)), + @bitCast(c_uint, @as(c_int, 65012720)), + @bitCast(c_uint, @as(c_int, 58721216)), + @bitCast(c_uint, @as(c_int, 33555200)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 4194304)), + @bitCast(c_uint, @as(c_int, 29360320)), + @bitCast(c_uint, @as(c_int, 130024384)), + @bitCast(c_uint, @as(c_int, 130027456)), + @bitCast(c_uint, @as(c_int, 29361088)), + @bitCast(c_uint, @as(c_int, 4194496)), + 0, + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 267919356)), + @bitCast(c_uint, @as(c_int, 65013744)), + @bitCast(c_uint, @as(c_int, 8389056)), + 0, + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 29360256)), + @bitCast(c_uint, @as(c_int, 133170144)), + @bitCast(c_uint, @as(c_int, 536612856)), + 0, + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 413141184)), + @bitCast(c_uint, @as(c_int, 847778448)), + @bitCast(c_uint, @as(c_int, 612509318)), + @bitCast(c_uint, @as(c_int, 646325378)), + @bitCast(c_uint, @as(c_int, 311440008)), + @bitCast(c_uint, @as(c_int, 146806944)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 75499392)), + @bitCast(c_uint, @as(c_int, 4194496)), + @bitCast(c_uint, @as(c_int, 1713373424)), + @bitCast(c_uint, @as(c_int, 135281712)), + @bitCast(c_uint, @as(c_int, 319426072)), + @bitCast(c_uint, @as(c_int, 12686)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 8388608)), + @bitCast(c_uint, @as(c_int, 143132808)), + @bitCast(c_uint, @as(c_int, 715786890)), + @bitCast(c_uint, @as(c_int, 176827050)), + @bitCast(c_uint, @as(c_int, 143132808)), + 128, + 0, + 0, + @bitCast(c_uint, @as(c_int, 6291456)), + @bitCast(c_uint, @as(c_int, 17301648)), + @bitCast(c_uint, @as(c_int, 33816840)), + @bitCast(c_uint, @as(c_int, 1107575300)), + @bitCast(c_uint, @as(c_int, 604120066)), + @bitCast(c_uint, @as(c_int, 6144)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 133693440)), + @bitCast(c_uint, @as(c_int, 67634184)), + @bitCast(c_uint, @as(c_int, 67634184)), + @bitCast(c_uint, @as(c_int, 67634184)), + @bitCast(c_uint, @as(c_int, 2081293320)), + 0, + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 10485824)), + @bitCast(c_uint, @as(c_int, 570966288)), + @bitCast(c_uint, @as(c_int, 134353924)), + 0, + 0, + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 69206016)), + @bitCast(c_uint, @as(c_int, 25166400)), + @bitCast(c_uint, @as(c_int, 37749120)), + @bitCast(c_uint, @as(c_int, 1056)), + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 406323200)), + @bitCast(c_uint, @as(c_int, 304616488)), + @bitCast(c_uint, @as(c_int, 279449896)), + @bitCast(c_uint, @as(c_int, 287838376)), + @bitCast(c_uint, @as(c_int, 338170408)), + @bitCast(c_uint, @as(c_int, 6200)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 402653184)), + @bitCast(c_uint, @as(c_int, 293606912)), + @bitCast(c_uint, @as(c_int, 270012512)), + @bitCast(c_uint, @as(c_int, 274731032)), + @bitCast(c_uint, @as(c_int, 369103232)), + @bitCast(c_uint, @as(c_int, 6144)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1572864)), + @bitCast(c_uint, @as(c_int, 25690216)), + @bitCast(c_uint, @as(c_int, 403179016)), + @bitCast(c_uint, @as(c_int, 101193736)), + @bitCast(c_uint, @as(c_int, 6816136)), + 24, + 0, + 0, + @bitCast(c_uint, @as(c_int, 511180800)), + @bitCast(c_uint, @as(c_int, 306713160)), + @bitCast(c_uint, @as(c_int, 306713160)), + @bitCast(c_uint, @as(c_int, 306713160)), + @bitCast(c_uint, @as(c_int, 306713160)), + @bitCast(c_uint, @as(c_int, 7800)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 536346624)), + @bitCast(c_uint, @as(c_int, 268963848)), + @bitCast(c_uint, @as(c_int, 268963848)), + @bitCast(c_uint, @as(c_int, 268963848)), + @bitCast(c_uint, @as(c_int, 268963848)), + @bitCast(c_uint, @as(c_int, 8184)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 471334912)), + @bitCast(c_uint, @as(c_int, 340268072)), + @bitCast(c_uint, @as(c_int, 352851080)), + @bitCast(c_uint, @as(c_int, 344462600)), + @bitCast(c_uint, @as(c_int, 338170952)), + @bitCast(c_uint, @as(c_int, 7192)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 62914560)), + @bitCast(c_uint, @as(c_int, 135267360)), + @bitCast(c_uint, @as(c_int, 268963848)), + @bitCast(c_uint, @as(c_int, 268963848)), + @bitCast(c_uint, @as(c_int, 69208080)), + @bitCast(c_uint, @as(c_int, 960)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 204474336)), + @bitCast(c_uint, @as(c_int, 331880472)), + @bitCast(c_uint, @as(c_int, 338171496)), + @bitCast(c_uint, @as(c_int, 338170920)), + @bitCast(c_uint, @as(c_int, 473439288)), + @bitCast(c_uint, @as(c_int, 135275076)), + 0, + @bitCast(c_uint, @as(c_int, 130023424)), + @bitCast(c_uint, @as(c_int, 136316960)), + @bitCast(c_uint, @as(c_int, 1073219616)), + @bitCast(c_uint, @as(c_int, 596123656)), + @bitCast(c_uint, @as(c_int, 554181512)), + @bitCast(c_uint, @as(c_int, 537403656)), + @bitCast(c_uint, @as(c_int, 535830536)), + 0, + @bitCast(c_uint, @as(c_int, 130023424)), + @bitCast(c_uint, @as(c_int, 134219776)), + @bitCast(c_uint, @as(c_int, 1073219584)), + @bitCast(c_uint, @as(c_int, 596123656)), + @bitCast(c_uint, @as(c_int, 554181512)), + @bitCast(c_uint, @as(c_int, 537403656)), + @bitCast(c_uint, @as(c_int, 535830536)), + 0, + @bitCast(c_uint, @as(c_int, 29360128)), + @bitCast(c_uint, @as(c_int, 202901360)), + @bitCast(c_uint, @as(c_int, 814094476)), + @bitCast(c_uint, @as(c_int, 1619206274)), + @bitCast(c_uint, @as(c_int, 1610827649)), + @bitCast(c_uint, @as(c_int, 805707778)), + @bitCast(c_uint, @as(c_int, 202905612)), + @bitCast(c_uint, @as(c_int, 29362032)), + @bitCast(c_uint, @as(c_int, 169869312)), + @bitCast(c_uint, @as(c_int, 455088928)), + @bitCast(c_uint, @as(c_int, 69209632)), + @bitCast(c_uint, @as(c_int, 69207072)), + @bitCast(c_uint, @as(c_int, 74449952)), + @bitCast(c_uint, @as(c_int, 242224752)), + @bitCast(c_uint, @as(c_int, 242224752)), + @bitCast(c_uint, @as(c_int, 69209712)), + @bitCast(c_uint, @as(c_int, 25165824)), + @bitCast(c_uint, @as(c_int, 1004286348)), + @bitCast(c_uint, @as(c_int, 267395064)), + @bitCast(c_uint, @as(c_int, 2084445816)), + @bitCast(c_uint, @as(c_int, 511212606)), + @bitCast(c_uint, @as(c_int, 536350704)), + @bitCast(c_uint, @as(c_int, 831273948)), + @bitCast(c_uint, @as(c_int, 384)), + @bitCast(c_uint, @as(c_int, 25165824)), + @bitCast(c_uint, @as(c_int, 1073492364)), + @bitCast(c_uint, @as(c_int, 473440248)), + @bitCast(c_uint, @as(c_int, 2015238168)), + @bitCast(c_uint, @as(c_int, 404256798)), + @bitCast(c_uint, @as(c_int, 536353848)), + @bitCast(c_uint, @as(c_int, 831275004)), + @bitCast(c_uint, @as(c_int, 384)), + 0, + @bitCast(c_uint, @as(c_int, 134746104)), + @bitCast(c_uint, @as(c_int, 134750204)), + @bitCast(c_uint, @as(c_int, 178784936)), + @bitCast(c_uint, @as(c_int, 178784936)), + @bitCast(c_uint, @as(c_int, 178784936)), + @bitCast(c_uint, @as(c_int, 134744744)), + @bitCast(c_uint, @as(c_int, 4088)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537149436)), + @bitCast(c_uint, @as(c_int, 134496132)), + @bitCast(c_uint, @as(c_int, 67374980)), + @bitCast(c_uint, @as(c_int, 67372932)), + @bitCast(c_uint, @as(c_int, 2044)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 608175104)), + @bitCast(c_uint, @as(c_int, 5248)), + @bitCast(c_uint, @as(c_int, 1862143488)), + @bitCast(c_uint, @as(c_int, 3584)), + @bitCast(c_uint, @as(c_int, 608179328)), + @bitCast(c_uint, @as(c_int, 1024)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 62914560)), + @bitCast(c_uint, @as(c_int, 137364576)), + @bitCast(c_uint, @as(c_int, 286789912)), + @bitCast(c_uint, @as(c_int, 286789912)), + @bitCast(c_uint, @as(c_int, 73402416)), + @bitCast(c_uint, @as(c_int, 960)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 277348480)), + @bitCast(c_uint, @as(c_int, 113248272)), + @bitCast(c_uint, @as(c_int, 913049568)), + @bitCast(c_uint, @as(c_int, 132121152)), + @bitCast(c_uint, @as(c_int, 5992)), + @bitCast(c_uint, @as(c_int, 69206592)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1026031616)), + @bitCast(c_uint, @as(c_int, 623387948)), + @bitCast(c_uint, @as(c_int, 1026041128)), + @bitCast(c_uint, @as(c_int, 86508840)), + @bitCast(c_uint, @as(c_int, 99091752)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 25165824)), + @bitCast(c_uint, @as(c_int, 62915520)), + @bitCast(c_uint, @as(c_int, 25166784)), + @bitCast(c_uint, @as(c_int, 267388896)), + @bitCast(c_uint, @as(c_int, 198183888)), + @bitCast(c_uint, @as(c_int, 173018064)), + @bitCast(c_uint, @as(c_int, 37749312)), + @bitCast(c_uint, @as(c_int, 37749312)), + @bitCast(c_uint, @as(c_int, 25165824)), + @bitCast(c_uint, @as(c_int, 62915520)), + @bitCast(c_uint, @as(c_int, 293606336)), + @bitCast(c_uint, @as(c_int, 63447032)), + @bitCast(c_uint, @as(c_int, 130024392)), + @bitCast(c_uint, @as(c_int, 71304256)), + @bitCast(c_uint, @as(c_int, 201852024)), + 0, + @bitCast(c_uint, @as(c_int, 1073217536)), + @bitCast(c_uint, @as(c_int, 806895608)), + @bitCast(c_uint, @as(c_int, 806891544)), + @bitCast(c_uint, @as(c_int, 1073233912)), + @bitCast(c_uint, @as(c_int, 50332416)), + @bitCast(c_uint, @as(c_int, 62915520)), + @bitCast(c_uint, @as(c_int, 65012480)), + @bitCast(c_uint, @as(c_int, 992)), + @bitCast(c_uint, @as(c_int, 1073217536)), + @bitCast(c_uint, @as(c_int, 1073233912)), + @bitCast(c_uint, @as(c_int, 865615864)), + @bitCast(c_uint, @as(c_int, 1073230744)), + @bitCast(c_uint, @as(c_int, 1073233912)), + @bitCast(c_uint, @as(c_int, 1344)), + @bitCast(c_uint, @as(c_int, 266341024)), + @bitCast(c_uint, @as(c_int, 4064)), + 0, + @bitCast(c_uint, @as(c_int, 267386880)), + @bitCast(c_uint, @as(c_int, 537137160)), + @bitCast(c_uint, @as(c_int, 625221636)), + @bitCast(c_uint, @as(c_int, 268967940)), + @bitCast(c_uint, @as(c_int, 100666352)), + @bitCast(c_uint, @as(c_int, 768)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 289669120)), + @bitCast(c_uint, @as(c_int, 133172200)), + @bitCast(c_uint, @as(c_int, 471600696)), + @bitCast(c_uint, @as(c_int, 471600152)), + @bitCast(c_uint, @as(c_int, 133172792)), + @bitCast(c_uint, @as(c_int, 289672168)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537395200)), + @bitCast(c_uint, @as(c_int, 207622160)), + @bitCast(c_uint, @as(c_int, 130027488)), + @bitCast(c_uint, @as(c_int, 130025408)), + @bitCast(c_uint, @as(c_int, 207622112)), + @bitCast(c_uint, @as(c_int, 537399312)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537395200)), + @bitCast(c_uint, @as(c_int, 207622160)), + @bitCast(c_uint, @as(c_int, 71307232)), + @bitCast(c_uint, @as(c_int, 71325012)), + @bitCast(c_uint, @as(c_int, 207622112)), + @bitCast(c_uint, @as(c_int, 537399312)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 8388736)), + @bitCast(c_uint, @as(c_int, 29360576)), + @bitCast(c_uint, @as(c_int, 536625150)), + @bitCast(c_uint, @as(c_int, 65013744)), + @bitCast(c_uint, @as(c_int, 133170144)), + @bitCast(c_uint, @as(c_int, 202901360)), + @bitCast(c_uint, @as(c_int, 2056)), + @bitCast(c_uint, @as(c_int, 267386880)), + @bitCast(c_uint, @as(c_int, 135792656)), + @bitCast(c_uint, @as(c_int, 135268376)), + @bitCast(c_uint, @as(c_int, 168822800)), + @bitCast(c_uint, @as(c_int, 135792656)), + @bitCast(c_uint, @as(c_int, 135268376)), + @bitCast(c_uint, @as(c_int, 135268368)), + @bitCast(c_uint, @as(c_int, 8184)), + @bitCast(c_uint, @as(c_int, 267386880)), + @bitCast(c_uint, @as(c_int, 135268368)), + @bitCast(c_uint, @as(c_int, 135268368)), + @bitCast(c_uint, @as(c_int, 269484048)), + @bitCast(c_uint, @as(c_int, 1334845456)), + @bitCast(c_uint, @as(c_int, 269492240)), + @bitCast(c_uint, @as(c_int, 135266320)), + @bitCast(c_uint, @as(c_int, 4080)), + @bitCast(c_uint, @as(c_int, 262144)), + @bitCast(c_uint, @as(c_int, 2031630)), + @bitCast(c_uint, @as(c_int, 250871812)), + @bitCast(c_uint, @as(c_int, 317985412)), + @bitCast(c_uint, @as(c_int, 250876436)), + @bitCast(c_uint, @as(c_int, 268697604)), + @bitCast(c_uint, @as(c_int, 2147233796)), + @bitCast(c_uint, @as(c_int, 268447744)), + @bitCast(c_uint, @as(c_int, 2013528064)), + @bitCast(c_uint, @as(c_int, 1344233486)), + @bitCast(c_uint, @as(c_int, 250888196)), + @bitCast(c_uint, @as(c_int, 317985412)), + @bitCast(c_uint, @as(c_int, 250876548)), + @bitCast(c_uint, @as(c_int, 269746180)), + @bitCast(c_uint, @as(c_int, 2147233804)), + @bitCast(c_uint, @as(c_int, 268447744)), + @bitCast(c_uint, @as(c_int, 2145386496)), + @bitCast(c_uint, @as(c_int, 1344823344)), + @bitCast(c_uint, @as(c_int, 1207846916)), + @bitCast(c_uint, @as(c_int, 1143096322)), + @bitCast(c_uint, @as(c_int, 1143096354)), + @bitCast(c_uint, @as(c_int, 605189602)), + @bitCast(c_uint, @as(c_int, 201724938)), + @bitCast(c_uint, @as(c_int, 2046)), + @bitCast(c_uint, @as(c_int, 2145386496)), + @bitCast(c_uint, @as(c_int, 1610121200)), + @bitCast(c_uint, @as(c_int, 1207848956)), + @bitCast(c_uint, @as(c_int, 1143096322)), + @bitCast(c_uint, @as(c_int, 1143096354)), + @bitCast(c_uint, @as(c_int, 605189602)), + @bitCast(c_uint, @as(c_int, 201724938)), + @bitCast(c_uint, @as(c_int, 2046)), + @bitCast(c_uint, @as(c_int, 2145386496)), + @bitCast(c_uint, @as(c_int, 1345871920)), + @bitCast(c_uint, @as(c_int, 1207846972)), + @bitCast(c_uint, @as(c_int, 1144931390)), + @bitCast(c_uint, @as(c_int, 1144931390)), + @bitCast(c_uint, @as(c_int, 605976062)), + @bitCast(c_uint, @as(c_int, 201724942)), + @bitCast(c_uint, @as(c_int, 2046)), + @bitCast(c_uint, @as(c_int, 2145386496)), + @bitCast(c_uint, @as(c_int, 1344823344)), + @bitCast(c_uint, @as(c_int, 1207846916)), + @bitCast(c_uint, @as(c_int, 1207846910)), + @bitCast(c_uint, @as(c_int, 1207846910)), + @bitCast(c_uint, @as(c_int, 670988286)), + @bitCast(c_uint, @as(c_int, 268310526)), + @bitCast(c_uint, @as(c_int, 2046)), + @bitCast(c_uint, @as(c_int, 2145386496)), + @bitCast(c_uint, @as(c_int, 1344823344)), + @bitCast(c_uint, @as(c_int, 1207846916)), + @bitCast(c_uint, @as(c_int, 1143096322)), + @bitCast(c_uint, @as(c_int, 1143096354)), + @bitCast(c_uint, @as(c_int, 1072857058)), + @bitCast(c_uint, @as(c_int, 268312570)), + @bitCast(c_uint, @as(c_int, 2046)), + @bitCast(c_uint, @as(c_int, 2145386496)), + @bitCast(c_uint, @as(c_int, 1881694256)), + @bitCast(c_uint, @as(c_int, 2147383300)), + @bitCast(c_uint, @as(c_int, 2082634754)), + @bitCast(c_uint, @as(c_int, 2082634786)), + @bitCast(c_uint, @as(c_int, 1007844834)), + @bitCast(c_uint, @as(c_int, 201726986)), + @bitCast(c_uint, @as(c_int, 2046)), + @bitCast(c_uint, @as(c_int, 2145386496)), + @bitCast(c_uint, @as(c_int, 2145943536)), + @bitCast(c_uint, @as(c_int, 2147385316)), + @bitCast(c_uint, @as(c_int, 2145550306)), + @bitCast(c_uint, @as(c_int, 2145550306)), + @bitCast(c_uint, @as(c_int, 605192162)), + @bitCast(c_uint, @as(c_int, 201724938)), + @bitCast(c_uint, @as(c_int, 2046)), + 0, + @bitCast(c_uint, @as(c_int, 704787454)), + @bitCast(c_uint, @as(c_int, 570566146)), + @bitCast(c_uint, @as(c_int, 570565122)), + @bitCast(c_uint, @as(c_int, 704783874)), + @bitCast(c_uint, @as(c_int, 10499070)), + @bitCast(c_uint, @as(c_int, 34078992)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537673724)), + @bitCast(c_uint, @as(c_int, 786444)), + @bitCast(c_uint, @as(c_int, 1073479692)), + @bitCast(c_uint, @as(c_int, 805318656)), + @bitCast(c_uint, @as(c_int, 805318656)), + @bitCast(c_uint, @as(c_int, 1073491972)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 2228286)), + @bitCast(c_uint, @as(c_int, 19005922)), + @bitCast(c_uint, @as(c_int, 16777534)), + @bitCast(c_uint, @as(c_int, 16777472)), + @bitCast(c_uint, @as(c_int, 2030043392)), + @bitCast(c_uint, @as(c_int, 1325418752)), + @bitCast(c_uint, @as(c_int, 30720)), + 0, + @bitCast(c_uint, @as(c_int, 1140882432)), + @bitCast(c_uint, @as(c_int, 1157645824)), + @bitCast(c_uint, @as(c_int, 6454462)), + @bitCast(c_uint, @as(c_int, 6422562)), + @bitCast(c_uint, @as(c_int, 1157659838)), + @bitCast(c_uint, @as(c_int, 1140868608)), + @bitCast(c_uint, @as(c_int, 31744)), + 0, + @bitCast(c_uint, @as(c_int, 4456572)), + @bitCast(c_uint, @as(c_int, 1048700)), + @bitCast(c_uint, @as(c_int, 1058013200)), + @bitCast(c_uint, @as(c_int, 1058021872)), + @bitCast(c_uint, @as(c_int, 1058013200)), + @bitCast(c_uint, @as(c_int, 1056973296)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 4456572)), + @bitCast(c_uint, @as(c_int, 4456516)), + @bitCast(c_uint, @as(c_int, 1048700)), + @bitCast(c_uint, @as(c_int, 1048592)), + @bitCast(c_uint, @as(c_int, 1141931024)), + @bitCast(c_uint, @as(c_int, 1140869104)), + @bitCast(c_uint, @as(c_int, 31744)), + 0, + @bitCast(c_uint, @as(c_int, 4456572)), + @bitCast(c_uint, @as(c_int, 4456516)), + 124, + 16, + @bitCast(c_uint, @as(c_int, 1140882448)), + @bitCast(c_uint, @as(c_int, 1140868432)), + @bitCast(c_uint, @as(c_int, 31744)), + @bitCast(c_uint, @as(c_int, 44040192)), + @bitCast(c_uint, @as(c_int, 581189628)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 537145332)), + @bitCast(c_uint, @as(c_int, 537145332)), + @bitCast(c_uint, @as(c_int, 537145332)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 1073479680)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 610150340)), + @bitCast(c_uint, @as(c_int, 667165764)), + @bitCast(c_uint, @as(c_int, 537141278)), + @bitCast(c_uint, @as(c_int, 538845188)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 16380)), + 0, + @bitCast(c_uint, @as(c_int, 132120576)), + @bitCast(c_uint, @as(c_int, 69207072)), + @bitCast(c_uint, @as(c_int, 606355452)), + @bitCast(c_uint, @as(c_int, 606348324)), + @bitCast(c_uint, @as(c_int, 606348324)), + @bitCast(c_uint, @as(c_int, 1073488932)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 266338304)), + @bitCast(c_uint, @as(c_int, 136316960)), + @bitCast(c_uint, @as(c_int, 1074036732)), + @bitCast(c_uint, @as(c_int, 2147243348)), + @bitCast(c_uint, @as(c_int, 1074025812)), + @bitCast(c_uint, @as(c_int, 2147237892)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 537149436)), + @bitCast(c_uint, @as(c_int, 1073487876)), + @bitCast(c_uint, @as(c_int, 331878408)), + @bitCast(c_uint, @as(c_int, 268964808)), + @bitCast(c_uint, @as(c_int, 268963848)), + @bitCast(c_uint, @as(c_int, 536350728)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 1073905662)), + @bitCast(c_uint, @as(c_int, 1610244090)), + @bitCast(c_uint, @as(c_int, 1610244090)), + @bitCast(c_uint, @as(c_int, 1073897466)), + @bitCast(c_uint, @as(c_int, 62947326)), + @bitCast(c_uint, @as(c_int, 536354808)), + 0, + @bitCast(c_uint, @as(c_int, 267386880)), + @bitCast(c_uint, @as(c_int, 1811841022)), + @bitCast(c_uint, @as(c_int, 2147385342)), + @bitCast(c_uint, @as(c_int, 1746305022)), + @bitCast(c_uint, @as(c_int, 135292950)), + @bitCast(c_uint, @as(c_int, 135268368)), + @bitCast(c_uint, @as(c_int, 267388944)), + 0, + @bitCast(c_uint, @as(c_int, 1073217536)), + 4294844424, + 2265612290, + 2420803722, + 2420805706, + 2265614474, + 4294868994, + 0, + @bitCast(c_uint, @as(c_int, 264241152)), + 4244507864, + 2147680254, + 2218951554, + 2218951746, + 2147648386, + 4294868994, + 0, + 0, + @bitCast(c_uint, @as(c_int, 37749120)), + @bitCast(c_uint, @as(c_int, 135267360)), + @bitCast(c_uint, @as(c_int, 537137160)), + @bitCast(c_uint, @as(c_int, 600055812)), + @bitCast(c_uint, @as(c_int, 574890564)), + @bitCast(c_uint, @as(c_int, 1073488452)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 477102080)), + @bitCast(c_uint, @as(c_int, 1073233656)), + @bitCast(c_uint, @as(c_int, 1073233912)), + @bitCast(c_uint, @as(c_int, 266346480)), + @bitCast(c_uint, @as(c_int, 58722240)), + @bitCast(c_uint, @as(c_int, 256)), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 2147483648, + 3758145536, + 0, + @bitCast(c_uint, @as(c_int, 335551488)), + @bitCast(c_uint, @as(c_int, 364909568)), + @bitCast(c_uint, @as(c_int, 356521280)), + @bitCast(c_uint, @as(c_int, 358356288)), + @bitCast(c_uint, @as(c_int, 357832020)), + @bitCast(c_uint, @as(c_int, 500962644)), + 0, + 0, + @bitCast(c_uint, @as(c_int, 50332416)), + @bitCast(c_uint, @as(c_int, 452991744)), + @bitCast(c_uint, @as(c_int, 459283296)), + @bitCast(c_uint, @as(c_int, 460069728)), + @bitCast(c_uint, @as(c_int, 460069740)), + @bitCast(c_uint, @as(c_int, 460069740)), + 0, + 0, + 0, + @bitCast(c_uint, @as(c_int, 1077837822)), + @bitCast(c_uint, @as(c_int, 2147369022)), + @bitCast(c_uint, @as(c_int, 2147352576)), + @bitCast(c_uint, @as(c_int, 1140737022)), + @bitCast(c_uint, @as(c_int, 32766)), + 0, + @bitCast(c_uint, @as(c_int, 2147221504)), + @bitCast(c_uint, @as(c_int, 1132740612)), + @bitCast(c_uint, @as(c_int, 1132741252)), + @bitCast(c_uint, @as(c_int, 1132740612)), + @bitCast(c_uint, @as(c_int, 1115964036)), + @bitCast(c_uint, @as(c_int, 1115964036)), + @bitCast(c_uint, @as(c_int, 1074021252)), + @bitCast(c_uint, @as(c_int, 32764)), + @bitCast(c_uint, @as(c_int, 1073774592)), + @bitCast(c_uint, @as(c_int, 268443648)), + @bitCast(c_uint, @as(c_int, 67110912)), + @bitCast(c_uint, @as(c_int, 16777728)), + @bitCast(c_uint, @as(c_int, 4194432)), + @bitCast(c_uint, @as(c_int, 1048608)), + @bitCast(c_uint, @as(c_int, 262152)), + @bitCast(c_uint, @as(c_int, 65538)), + 0, + @bitCast(c_uint, @as(c_int, 535830512)), + @bitCast(c_uint, @as(c_int, 405805104)), + @bitCast(c_uint, @as(c_int, 520099888)), + @bitCast(c_uint, @as(c_int, 50339584)), + @bitCast(c_uint, @as(c_int, 768)), + @bitCast(c_uint, @as(c_int, 50332416)), + 0, + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 716977488)), + @bitCast(c_uint, @as(c_int, 715928916)), + @bitCast(c_uint, @as(c_int, 715928916)), + @bitCast(c_uint, @as(c_int, 715928916)), + @bitCast(c_uint, @as(c_int, 715928916)), + @bitCast(c_uint, @as(c_int, 715928916)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 1072693248)), + @bitCast(c_uint, @as(c_int, 538714128)), + @bitCast(c_uint, @as(c_int, 574890372)), + @bitCast(c_uint, @as(c_int, 672408612)), + @bitCast(c_uint, @as(c_int, 697575444)), + @bitCast(c_uint, @as(c_int, 804530580)), + @bitCast(c_uint, @as(c_int, 537141252)), + @bitCast(c_uint, @as(c_int, 16380)), + @bitCast(c_uint, @as(c_int, 134086656)), + @bitCast(c_uint, @as(c_int, 67240962)), + @bitCast(c_uint, @as(c_int, 2145518594)), + @bitCast(c_uint, @as(c_int, 1143096354)), + @bitCast(c_uint, @as(c_int, 1143096354)), + @bitCast(c_uint, @as(c_int, 1075857406)), + @bitCast(c_uint, @as(c_int, 1075855392)), + @bitCast(c_uint, @as(c_int, 32736)), + @bitCast(c_uint, @as(c_int, 134086656)), + @bitCast(c_uint, @as(c_int, 67240962)), + @bitCast(c_uint, @as(c_int, 2080506882)), + @bitCast(c_uint, @as(c_int, 1140999170)), + @bitCast(c_uint, @as(c_int, 1140999170)), + @bitCast(c_uint, @as(c_int, 1075857406)), + @bitCast(c_uint, @as(c_int, 1075855392)), + @bitCast(c_uint, @as(c_int, 32736)), + 0, + @bitCast(c_uint, @as(c_int, 1073905662)), + @bitCast(c_uint, @as(c_int, 2147368962)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 1073889282)), + @bitCast(c_uint, @as(c_int, 2147368962)), + 0, + @bitCast(c_uint, @as(c_int, 152043520)), + @bitCast(c_uint, @as(c_int, 166725904)), + @bitCast(c_uint, @as(c_int, 152045840)), + @bitCast(c_uint, @as(c_int, 2320)), + @bitCast(c_uint, @as(c_int, 614627230)), + @bitCast(c_uint, @as(c_int, 664937634)), + @bitCast(c_uint, @as(c_int, 1889411234)), + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, +}; +pub const BORDER: c_int = 0; +pub const BASE: c_int = 1; +pub const TEXT: c_int = 2; +pub const OTHER: c_int = 3; +pub const GuiPropertyElement = c_uint; +pub var guiState: GuiControlState = @bitCast(c_uint, GUI_STATE_NORMAL); +pub var guiFont: Font = Font{ + .baseSize = @as(c_int, 0), + .glyphCount = 0, + .glyphPadding = 0, + .texture = @import("std").mem.zeroes(struct_Texture), + .recs = null, + .glyphs = null, +}; +pub var guiLocked: bool = @as(c_int, 0) != 0; +pub var guiAlpha: f32 = 1.0; +pub var guiStyle: [384]c_uint = [1]c_uint{ + 0, +} ++ [1]c_uint{0} ** 383; +pub var guiStyleLoaded: bool = @as(c_int, 0) != 0; +pub fn GetTextWidth(arg_text: [*c]const u8) callconv(.C) c_int { + var text = arg_text; + var size: Vector2 = Vector2{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + }; + if ((text != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) and (@bitCast(c_int, @as(c_uint, text[@intCast(c_uint, @as(c_int, 0))])) != @as(c_int, '\x00'))) { + size = MeasureTextEx(guiFont, text, @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)), @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SPACING))); + } + return @floatToInt(c_int, size.x); +} +pub fn GetTextBounds(arg_control: c_int, arg_bounds: Rectangle) callconv(.C) Rectangle { + var control = arg_control; + var bounds = arg_bounds; + var textBounds: Rectangle = bounds; + textBounds.x = bounds.x + @intToFloat(f32, GuiGetStyle(control, BORDER_WIDTH)); + textBounds.y = bounds.y + @intToFloat(f32, GuiGetStyle(control, BORDER_WIDTH)); + textBounds.width = bounds.width - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(control, BORDER_WIDTH)); + textBounds.height = bounds.height - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(control, BORDER_WIDTH)); + while (true) { + switch (control) { + @as(c_int, 7) => { + bounds.width -= @intToFloat(f32, GuiGetStyle(control, COMBO_BUTTON_WIDTH) + GuiGetStyle(control, COMBO_BUTTON_PADDING)); + break; + }, + @as(c_int, 10) => break, + else => { + { + if (GuiGetStyle(control, TEXT_ALIGNMENT) == GUI_TEXT_ALIGN_RIGHT) { + textBounds.x -= @intToFloat(f32, GuiGetStyle(control, TEXT_PADDING)); + } else { + textBounds.x += @intToFloat(f32, GuiGetStyle(control, TEXT_PADDING)); + } + } + break; + }, + } + break; + } + return textBounds; +} +pub fn GetTextIcon(arg_text: [*c]const u8, arg_iconId: [*c]c_int) callconv(.C) [*c]const u8 { + var text = arg_text; + var iconId = arg_iconId; + iconId.* = -@as(c_int, 1); + if (@bitCast(c_int, @as(c_uint, text[@intCast(c_uint, @as(c_int, 0))])) == @as(c_int, '#')) { + var iconValue: [4]u8 = [1]u8{ + 0, + } ++ [1]u8{0} ** 3; + var pos: c_int = 1; + while (((pos < @as(c_int, 4)) and (@bitCast(c_int, @as(c_uint, (blk: { + const tmp = pos; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*)) >= @as(c_int, '0'))) and (@bitCast(c_int, @as(c_uint, (blk: { + const tmp = pos; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*)) <= @as(c_int, '9'))) { + iconValue[@intCast(c_uint, pos - @as(c_int, 1))] = (blk: { + const tmp = pos; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*; + pos += 1; + } + if (@bitCast(c_int, @as(c_uint, (blk: { + const tmp = pos; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*)) == @as(c_int, '#')) { + iconId.* = TextToInteger(@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &iconValue))); + if (iconId.* >= @as(c_int, 0)) { + text += @bitCast(usize, @intCast(isize, pos + @as(c_int, 1))); + } + } + } + return text; +} +pub fn GuiDrawText(arg_text: [*c]const u8, arg_bounds: Rectangle, arg_alignment: c_int, arg_tint: Color) callconv(.C) void { + var text = arg_text; + var bounds = arg_bounds; + var alignment = arg_alignment; + var tint = arg_tint; + if ((text != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) and (@bitCast(c_int, @as(c_uint, text[@intCast(c_uint, @as(c_int, 0))])) != @as(c_int, '\x00'))) { + var iconId: c_int = 0; + text = GetTextIcon(text, &iconId); + var position: Vector2 = Vector2{ + .x = bounds.x, + .y = bounds.y, + }; + var textWidth: c_int = GetTextWidth(text); + var textHeight: c_int = GuiGetStyle(DEFAULT, TEXT_SIZE); + if (iconId >= @as(c_int, 0)) { + textWidth += @as(c_int, 16); + if ((text != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) and (@bitCast(c_int, @as(c_uint, text[@intCast(c_uint, @as(c_int, 0))])) != @as(c_int, '\x00'))) { + textWidth += @as(c_int, 4); + } + } + while (true) { + switch (alignment) { + @as(c_int, 0) => { + { + position.x = bounds.x; + position.y = ((bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @divTrunc(textHeight, @as(c_int, 2)))) + @intToFloat(f32, @import("std").zig.c_translation.signedRemainder(@floatToInt(c_int, bounds.height), @as(c_int, 2))); + } + break; + }, + @as(c_int, 1) => { + { + position.x = (bounds.x + (bounds.width / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @divTrunc(textWidth, @as(c_int, 2))); + position.y = ((bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @divTrunc(textHeight, @as(c_int, 2)))) + @intToFloat(f32, @import("std").zig.c_translation.signedRemainder(@floatToInt(c_int, bounds.height), @as(c_int, 2))); + } + break; + }, + @as(c_int, 2) => { + { + position.x = (bounds.x + bounds.width) - @intToFloat(f32, textWidth); + position.y = ((bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @divTrunc(textHeight, @as(c_int, 2)))) + @intToFloat(f32, @import("std").zig.c_translation.signedRemainder(@floatToInt(c_int, bounds.height), @as(c_int, 2))); + } + break; + }, + else => break, + } + break; + } + position.x = @intToFloat(f32, @floatToInt(c_int, position.x)); + position.y = @intToFloat(f32, @floatToInt(c_int, position.y)); + if (iconId >= @as(c_int, 0)) { + GuiDrawIcon(iconId, @floatToInt(c_int, position.x), @floatToInt(c_int, ((bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @divTrunc(@as(c_int, 16), @as(c_int, 2)))) + @intToFloat(f32, @import("std").zig.c_translation.signedRemainder(@floatToInt(c_int, bounds.height), @as(c_int, 2)))), @as(c_int, 1), tint); + position.x += @intToFloat(f32, @as(c_int, 16) + @as(c_int, 4)); + } + DrawTextEx(guiFont, text, position, @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)), @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SPACING)), tint); + } +} +pub fn GuiDrawRectangle(arg_rec: Rectangle, arg_borderWidth: c_int, arg_borderColor: Color, arg_color: Color) callconv(.C) void { + var rec = arg_rec; + var borderWidth = arg_borderWidth; + var borderColor = arg_borderColor; + var color = arg_color; + if (@bitCast(c_int, @as(c_uint, color.a)) > @as(c_int, 0)) { + DrawRectangle(@floatToInt(c_int, rec.x), @floatToInt(c_int, rec.y), @floatToInt(c_int, rec.width), @floatToInt(c_int, rec.height), color); + } + if (borderWidth > @as(c_int, 0)) { + DrawRectangle(@floatToInt(c_int, rec.x), @floatToInt(c_int, rec.y), @floatToInt(c_int, rec.width), borderWidth, borderColor); + DrawRectangle(@floatToInt(c_int, rec.x), @floatToInt(c_int, rec.y) + borderWidth, borderWidth, @floatToInt(c_int, rec.height) - (@as(c_int, 2) * borderWidth), borderColor); + DrawRectangle((@floatToInt(c_int, rec.x) + @floatToInt(c_int, rec.width)) - borderWidth, @floatToInt(c_int, rec.y) + borderWidth, borderWidth, @floatToInt(c_int, rec.height) - (@as(c_int, 2) * borderWidth), borderColor); + DrawRectangle(@floatToInt(c_int, rec.x), (@floatToInt(c_int, rec.y) + @floatToInt(c_int, rec.height)) - borderWidth, @floatToInt(c_int, rec.width), borderWidth, borderColor); + } +} +pub fn GuiTextSplit(arg_text: [*c]const u8, arg_count: [*c]c_int, arg_textRow: [*c]c_int) callconv(.C) [*c][*c]const u8 { + var text = arg_text; + var count = arg_count; + var textRow = arg_textRow; + const result = struct { + var static: [128][*c]const u8 = [1][*c]const u8{ + null, + } ++ [1][*c]const u8{null} ** 127; + }; + const buffer = struct { + var static: [1024]u8 = [1]u8{ + 0, + } ++ [1]u8{0} ** 1023; + }; + _ = memset(@ptrCast(?*anyopaque, @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &buffer.static))), @as(c_int, 0), @bitCast(c_ulong, @as(c_long, @as(c_int, 1024)))); + result.static[@intCast(c_uint, @as(c_int, 0))] = @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &buffer.static)); + var counter: c_int = 1; + if (textRow != @ptrCast([*c]c_int, @alignCast(@import("std").meta.alignment(c_int), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + textRow[@intCast(c_uint, @as(c_int, 0))] = 0; + } + { + var i: c_int = 0; + while (i < @as(c_int, 1024)) : (i += 1) { + buffer.static[@intCast(c_uint, i)] = (blk: { + const tmp = i; + if (tmp >= 0) break :blk text + @intCast(usize, tmp) else break :blk text - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*; + if (@bitCast(c_int, @as(c_uint, buffer.static[@intCast(c_uint, i)])) == @as(c_int, '\x00')) break else if ((@bitCast(c_int, @as(c_uint, buffer.static[@intCast(c_uint, i)])) == @as(c_int, ';')) or (@bitCast(c_int, @as(c_uint, buffer.static[@intCast(c_uint, i)])) == @as(c_int, '\n'))) { + result.static[@intCast(c_uint, counter)] = (@ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &buffer.static)) + @bitCast(usize, @intCast(isize, i))) + @bitCast(usize, @intCast(isize, @as(c_int, 1))); + if (textRow != @ptrCast([*c]c_int, @alignCast(@import("std").meta.alignment(c_int), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + if (@bitCast(c_int, @as(c_uint, buffer.static[@intCast(c_uint, i)])) == @as(c_int, '\n')) { + (blk: { + const tmp = counter; + if (tmp >= 0) break :blk textRow + @intCast(usize, tmp) else break :blk textRow - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).* = (blk: { + const tmp = counter - @as(c_int, 1); + if (tmp >= 0) break :blk textRow + @intCast(usize, tmp) else break :blk textRow - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).* + @as(c_int, 1); + } else { + (blk: { + const tmp = counter; + if (tmp >= 0) break :blk textRow + @intCast(usize, tmp) else break :blk textRow - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).* = (blk: { + const tmp = counter - @as(c_int, 1); + if (tmp >= 0) break :blk textRow + @intCast(usize, tmp) else break :blk textRow - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*; + } + } + buffer.static[@intCast(c_uint, i)] = '\x00'; + counter += 1; + if (counter == @as(c_int, 128)) break; + } + } + } + count.* = counter; + return @ptrCast([*c][*c]const u8, @alignCast(@import("std").meta.alignment([*c]const u8), &result.static)); +} +pub fn ConvertHSVtoRGB(arg_hsv: Vector3) callconv(.C) Vector3 { + var hsv = arg_hsv; + var rgb: Vector3 = Vector3{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .z = 0, + }; + var hh: f32 = 0.0; + var p: f32 = 0.0; + var q: f32 = 0.0; + var t: f32 = 0.0; + var ff: f32 = 0.0; + var i: c_long = 0; + if (hsv.y <= 0.0) { + rgb.x = hsv.z; + rgb.y = hsv.z; + rgb.z = hsv.z; + return rgb; + } + hh = hsv.x; + if (hh >= 360.0) { + hh = 0.0; + } + hh /= 60.0; + i = @floatToInt(c_long, hh); + ff = hh - @intToFloat(f32, i); + p = hsv.z * (1.0 - hsv.y); + q = hsv.z * (1.0 - (hsv.y * ff)); + t = hsv.z * (1.0 - (hsv.y * (1.0 - ff))); + while (true) { + switch (i) { + @bitCast(c_long, @as(c_long, @as(c_int, 0))) => { + { + rgb.x = hsv.z; + rgb.y = t; + rgb.z = p; + } + break; + }, + @bitCast(c_long, @as(c_long, @as(c_int, 1))) => { + { + rgb.x = q; + rgb.y = hsv.z; + rgb.z = p; + } + break; + }, + @bitCast(c_long, @as(c_long, @as(c_int, 2))) => { + { + rgb.x = p; + rgb.y = hsv.z; + rgb.z = t; + } + break; + }, + @bitCast(c_long, @as(c_long, @as(c_int, 3))) => { + { + rgb.x = p; + rgb.y = q; + rgb.z = hsv.z; + } + break; + }, + @bitCast(c_long, @as(c_long, @as(c_int, 4))) => { + { + rgb.x = t; + rgb.y = p; + rgb.z = hsv.z; + } + break; + }, + else => { + { + rgb.x = hsv.z; + rgb.y = p; + rgb.z = q; + } + break; + }, + } + break; + } + return rgb; +} +pub fn ConvertRGBtoHSV(arg_rgb: Vector3) callconv(.C) Vector3 { + var rgb = arg_rgb; + var hsv: Vector3 = Vector3{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .z = 0, + }; + var min: f32 = 0.0; + var max: f32 = 0.0; + var delta: f32 = 0.0; + min = if (rgb.x < rgb.y) rgb.x else rgb.y; + min = if (min < rgb.z) min else rgb.z; + max = if (rgb.x > rgb.y) rgb.x else rgb.y; + max = if (max > rgb.z) max else rgb.z; + hsv.z = max; + delta = max - min; + if (delta < 0.000009999999747378752) { + hsv.y = 0.0; + hsv.x = 0.0; + return hsv; + } + if (max > 0.0) { + hsv.y = delta / max; + } else { + hsv.y = 0.0; + hsv.x = 0.0; + return hsv; + } + if (rgb.x >= max) { + hsv.x = (rgb.y - rgb.z) / delta; + } else { + if (rgb.y >= max) { + hsv.x = 2.0 + ((rgb.z - rgb.x) / delta); + } else { + hsv.x = 4.0 + ((rgb.x - rgb.y) / delta); + } + } + hsv.x *= 60.0; + if (hsv.x < 0.0) { + hsv.x += 360.0; + } + return hsv; +} +pub export fn GuiSliderPro(arg_bounds: Rectangle, arg_textLeft: [*c]const u8, arg_textRight: [*c]const u8, arg_value: f32, arg_minValue: f32, arg_maxValue: f32, arg_sliderWidth: c_int) f32 { + var bounds = arg_bounds; + var textLeft = arg_textLeft; + var textRight = arg_textRight; + var value = arg_value; + var minValue = arg_minValue; + var maxValue = arg_maxValue; + var sliderWidth = arg_sliderWidth; + var state: GuiControlState = guiState; + var sliderValue: c_int = @floatToInt(c_int, ((value - minValue) / (maxValue - minValue)) * (bounds.width - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(SLIDER, BORDER_WIDTH)))); + var slider: Rectangle = Rectangle{ + .x = bounds.x, + .y = (bounds.y + @intToFloat(f32, GuiGetStyle(SLIDER, BORDER_WIDTH))) + @intToFloat(f32, GuiGetStyle(SLIDER, SLIDER_PADDING)), + .width = @intToFloat(f32, @as(c_int, 0)), + .height = (bounds.height - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(SLIDER, BORDER_WIDTH))) - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(SLIDER, SLIDER_PADDING)), + }; + if (sliderWidth > @as(c_int, 0)) { + slider.x += @intToFloat(f32, sliderValue - @divTrunc(sliderWidth, @as(c_int, 2))); + slider.width = @intToFloat(f32, sliderWidth); + } else if (sliderWidth == @as(c_int, 0)) { + slider.x += @intToFloat(f32, GuiGetStyle(SLIDER, BORDER_WIDTH)); + slider.width = @intToFloat(f32, sliderValue); + } + if ((state != @bitCast(c_uint, GUI_STATE_DISABLED)) and !guiLocked) { + var mousePoint: Vector2 = GetMousePosition(); + if (CheckCollisionPointRec(mousePoint, bounds)) { + if (IsMouseButtonDown(MOUSE_BUTTON_LEFT)) { + state = @bitCast(c_uint, GUI_STATE_PRESSED); + value = (((maxValue - minValue) * (mousePoint.x - (bounds.x + @intToFloat(f32, @divTrunc(sliderWidth, @as(c_int, 2)))))) / (bounds.width - @intToFloat(f32, sliderWidth))) + minValue; + if (sliderWidth > @as(c_int, 0)) { + slider.x = mousePoint.x - (slider.width / @intToFloat(f32, @as(c_int, 2))); + } else if (sliderWidth == @as(c_int, 0)) { + slider.width = @intToFloat(f32, sliderValue); + } + } else { + state = @bitCast(c_uint, GUI_STATE_FOCUSED); + } + } + if (value > maxValue) { + value = maxValue; + } else if (value < minValue) { + value = minValue; + } + } + if (sliderWidth > @as(c_int, 0)) { + if (slider.x <= (bounds.x + @intToFloat(f32, GuiGetStyle(SLIDER, BORDER_WIDTH)))) { + slider.x = bounds.x + @intToFloat(f32, GuiGetStyle(SLIDER, BORDER_WIDTH)); + } else if ((slider.x + slider.width) >= (bounds.x + bounds.width)) { + slider.x = ((bounds.x + bounds.width) - slider.width) - @intToFloat(f32, GuiGetStyle(SLIDER, BORDER_WIDTH)); + } + } else if (sliderWidth == @as(c_int, 0)) { + if (slider.width > bounds.width) { + slider.width = bounds.width - @intToFloat(f32, @as(c_int, 2) * GuiGetStyle(SLIDER, BORDER_WIDTH)); + } + } + GuiDrawRectangle(bounds, GuiGetStyle(SLIDER, BORDER_WIDTH), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(SLIDER, @bitCast(c_int, @bitCast(c_uint, BORDER) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha), Fade(GetColor(@bitCast(c_uint, GuiGetStyle(SLIDER, if (state != @bitCast(c_uint, GUI_STATE_DISABLED)) BASE_COLOR_NORMAL else BASE_COLOR_DISABLED))), guiAlpha)); + if ((state == @bitCast(c_uint, GUI_STATE_NORMAL)) or (state == @bitCast(c_uint, GUI_STATE_PRESSED))) { + GuiDrawRectangle(slider, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(SLIDER, BASE_COLOR_PRESSED))), guiAlpha)); + } else if (state == @bitCast(c_uint, GUI_STATE_FOCUSED)) { + GuiDrawRectangle(slider, @as(c_int, 0), Color{ + .r = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .g = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .b = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + .a = @bitCast(u8, @truncate(i8, @as(c_int, 0))), + }, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(SLIDER, TEXT_COLOR_FOCUSED))), guiAlpha)); + } + if (textLeft != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + var textBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + textBounds.width = @intToFloat(f32, GetTextWidth(textLeft)); + textBounds.height = @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)); + textBounds.x = (bounds.x - textBounds.width) - @intToFloat(f32, GuiGetStyle(SLIDER, TEXT_PADDING)); + textBounds.y = (bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @divTrunc(GuiGetStyle(DEFAULT, TEXT_SIZE), @as(c_int, 2))); + GuiDrawText(textLeft, textBounds, GUI_TEXT_ALIGN_RIGHT, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(SLIDER, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + } + if (textRight != @ptrCast([*c]const u8, @alignCast(@import("std").meta.alignment(u8), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + var textBounds: Rectangle = Rectangle{ + .x = @intToFloat(f32, @as(c_int, 0)), + .y = 0, + .width = 0, + .height = 0, + }; + textBounds.width = @intToFloat(f32, GetTextWidth(textRight)); + textBounds.height = @intToFloat(f32, GuiGetStyle(DEFAULT, TEXT_SIZE)); + textBounds.x = (bounds.x + bounds.width) + @intToFloat(f32, GuiGetStyle(SLIDER, TEXT_PADDING)); + textBounds.y = (bounds.y + (bounds.height / @intToFloat(f32, @as(c_int, 2)))) - @intToFloat(f32, @divTrunc(GuiGetStyle(DEFAULT, TEXT_SIZE), @as(c_int, 2))); + GuiDrawText(textRight, textBounds, GUI_TEXT_ALIGN_LEFT, Fade(GetColor(@bitCast(c_uint, GuiGetStyle(SLIDER, @bitCast(c_int, @bitCast(c_uint, TEXT) +% (state *% @bitCast(c_uint, @as(c_int, 3))))))), guiAlpha)); + } + return value; +} +pub export fn GuiLoadIcons(arg_fileName: [*c]const u8, arg_loadIconsName: bool) [*c][*c]u8 { + var fileName = arg_fileName; + var loadIconsName = arg_loadIconsName; + var rgiFile: [*c]FILE = fopen(fileName, "rb"); + var guiIconsName: [*c][*c]u8 = null; + if (rgiFile != @ptrCast([*c]FILE, @alignCast(@import("std").meta.alignment(FILE), @intToPtr(?*anyopaque, @as(c_int, 0))))) { + var signature: [5]u8 = [1]u8{0} ** 5; + var version: c_short = 0; + var reserved: c_short = 0; + var iconCount: c_short = 0; + var iconSize: c_short = 0; + _ = fread(@ptrCast(?*anyopaque, @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), &signature))), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @bitCast(c_ulong, @as(c_long, @as(c_int, 4))), rgiFile); + _ = fread(@ptrCast(?*anyopaque, &version), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_short), rgiFile); + _ = fread(@ptrCast(?*anyopaque, &reserved), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_short), rgiFile); + _ = fread(@ptrCast(?*anyopaque, &iconCount), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_short), rgiFile); + _ = fread(@ptrCast(?*anyopaque, &iconSize), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), @sizeOf(c_short), rgiFile); + if ((((@bitCast(c_int, @as(c_uint, signature[@intCast(c_uint, @as(c_int, 0))])) == @as(c_int, 'r')) and (@bitCast(c_int, @as(c_uint, signature[@intCast(c_uint, @as(c_int, 1))])) == @as(c_int, 'G'))) and (@bitCast(c_int, @as(c_uint, signature[@intCast(c_uint, @as(c_int, 2))])) == @as(c_int, 'I'))) and (@bitCast(c_int, @as(c_uint, signature[@intCast(c_uint, @as(c_int, 3))])) == @as(c_int, ' '))) { + if (loadIconsName) { + //guiIconsName = @ptrCast([*c][*c]u8, @alignCast(@import("std").meta.alignment([*c]u8), malloc(@bitCast(c_ulong, @as(c_long, iconCount)) *% @sizeOf([*c][*c]u8)))); + { + var i: c_int = 0; + while (i < @bitCast(c_int, @as(c_int, iconCount))) : (i += 1) { + (blk: { + const tmp = i; + if (tmp >= 0) break :blk guiIconsName + @intCast(usize, tmp) else break :blk guiIconsName - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).* = @ptrCast([*c]u8, @alignCast(@import("std").meta.alignment(u8), malloc(@bitCast(c_ulong, @as(c_long, @as(c_int, 32)))))); + _ = fread(@ptrCast(?*anyopaque, (blk: { + const tmp = i; + if (tmp >= 0) break :blk guiIconsName + @intCast(usize, tmp) else break :blk guiIconsName - ~@bitCast(usize, @intCast(isize, tmp) +% -1); + }).*), @bitCast(c_ulong, @as(c_long, @as(c_int, 32))), @bitCast(c_ulong, @as(c_long, @as(c_int, 1))), rgiFile); + } + } + } else { + _ = fseek(rgiFile, @bitCast(c_long, @as(c_long, @bitCast(c_int, @as(c_int, iconCount)) * @as(c_int, 32))), @as(c_int, 1)); + } + _ = fread(@ptrCast(?*anyopaque, @ptrCast([*c]c_uint, @alignCast(@import("std").meta.alignment(c_uint), &guiIcons))), @bitCast(c_ulong, @as(c_long, @bitCast(c_int, @as(c_int, iconCount)) * @divTrunc(@bitCast(c_int, @as(c_int, iconSize)) * @bitCast(c_int, @as(c_int, iconSize)), @as(c_int, 32)))), @sizeOf(c_uint), rgiFile); + } + _ = fclose(rgiFile); + } + return guiIconsName; +} +pub const __INTMAX_C_SUFFIX__ = @compileError("unable to translate macro: undefined identifier `L`"); // (no file):67:9 +pub const __UINTMAX_C_SUFFIX__ = @compileError("unable to translate macro: undefined identifier `UL`"); // (no file):73:9 +pub const __INT64_C_SUFFIX__ = @compileError("unable to translate macro: undefined identifier `L`"); // (no file):164:9 +pub const __UINT32_C_SUFFIX__ = @compileError("unable to translate macro: undefined identifier `U`"); // (no file):186:9 +pub const __UINT64_C_SUFFIX__ = @compileError("unable to translate macro: undefined identifier `UL`"); // (no file):194:9 +pub const __seg_gs = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // (no file):315:9 +pub const __seg_fs = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // (no file):316:9 +pub const va_start = @compileError("unable to translate macro: undefined identifier `__builtin_va_start`"); // /home/tradam/.asdf/installs/zig/master/lib/include/stdarg.h:17:9 +pub const va_end = @compileError("unable to translate macro: undefined identifier `__builtin_va_end`"); // /home/tradam/.asdf/installs/zig/master/lib/include/stdarg.h:18:9 +pub const va_arg = @compileError("unable to translate macro: undefined identifier `__builtin_va_arg`"); // /home/tradam/.asdf/installs/zig/master/lib/include/stdarg.h:19:9 +pub const __va_copy = @compileError("unable to translate macro: undefined identifier `__builtin_va_copy`"); // /home/tradam/.asdf/installs/zig/master/lib/include/stdarg.h:24:9 +pub const va_copy = @compileError("unable to translate macro: undefined identifier `__builtin_va_copy`"); // /home/tradam/.asdf/installs/zig/master/lib/include/stdarg.h:27:9 +pub const TRACELOG = @compileError("unable to translate C expr: expected ')' instead got '...'"); // raygui.h:222:9 +pub const __GLIBC_USE = @compileError("unable to translate macro: undefined identifier `__GLIBC_USE_`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/features.h:186:9 +pub const __glibc_has_attribute = @compileError("unable to translate macro: undefined identifier `__has_attribute`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:44:10 +pub const __glibc_has_extension = @compileError("unable to translate macro: undefined identifier `__has_extension`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:54:10 +pub const __THROW = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:78:11 +pub const __THROWNL = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:79:11 +pub const __NTH = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:80:11 +pub const __NTHNL = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:81:11 +pub const __CONCAT = @compileError("unable to translate C expr: unexpected token '##'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:123:9 +pub const __STRING = @compileError("unable to translate C expr: unexpected token '#'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:124:9 +pub const __warnattr = @compileError("unable to translate C expr: unexpected token 'Eof'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:158:10 +pub const __errordecl = @compileError("unable to translate C expr: unexpected token 'extern'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:159:10 +pub const __flexarr = @compileError("unable to translate C expr: unexpected token '['"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:167:10 +pub const __REDIRECT = @compileError("unable to translate macro: undefined identifier `__asm__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:198:10 +pub const __REDIRECT_NTH = @compileError("unable to translate macro: undefined identifier `__asm__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:205:11 +pub const __REDIRECT_NTHNL = @compileError("unable to translate macro: undefined identifier `__asm__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:207:11 +pub const __ASMNAME2 = @compileError("unable to translate C expr: unexpected token 'Identifier'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:211:10 +pub const __attribute_malloc__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:232:10 +pub const __attribute_alloc_size__ = @compileError("unable to translate C expr: unexpected token 'Eof'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:243:10 +pub const __attribute_pure__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:250:10 +pub const __attribute_const__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:257:10 +pub const __attribute_maybe_unused__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:263:10 +pub const __attribute_used__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:272:10 +pub const __attribute_noinline__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:273:10 +pub const __attribute_deprecated__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:281:10 +pub const __attribute_deprecated_msg__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:291:10 +pub const __attribute_format_arg__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:304:10 +pub const __attribute_format_strfmon__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:314:10 +pub const __nonnull = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:324:11 +pub const __returns_nonnull = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:337:10 +pub const __attribute_warn_unused_result__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:346:10 +pub const __always_inline = @compileError("unable to translate macro: undefined identifier `__inline`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:364:10 +pub const __attribute_artificial__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:373:10 +pub const __extern_inline = @compileError("unable to translate macro: undefined identifier `__inline`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:391:11 +pub const __extern_always_inline = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:392:11 +pub const __restrict_arr = @compileError("unable to translate macro: undefined identifier `__restrict`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:435:10 +pub const __attribute_copy__ = @compileError("unable to translate C expr: unexpected token 'Eof'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:484:10 +pub const __LDBL_REDIR2_DECL = @compileError("unable to translate C expr: unexpected token 'Eof'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:560:10 +pub const __LDBL_REDIR_DECL = @compileError("unable to translate C expr: unexpected token 'Eof'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:561:10 +pub const __glibc_macro_warning1 = @compileError("unable to translate macro: undefined identifier `_Pragma`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:575:10 +pub const __glibc_macro_warning = @compileError("unable to translate macro: undefined identifier `GCC`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:576:10 +pub const __attr_access = @compileError("unable to translate C expr: unexpected token 'Eof'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:612:11 +pub const __attr_access_none = @compileError("unable to translate C expr: unexpected token 'Eof'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:613:11 +pub const __attr_dealloc = @compileError("unable to translate C expr: unexpected token 'Eof'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:623:10 +pub const __attribute_returns_twice__ = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/sys/cdefs.h:630:10 +pub const __STD_TYPE = @compileError("unable to translate C expr: unexpected token 'typedef'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/types.h:137:10 +pub const __FSID_T_TYPE = @compileError("unable to translate macro: undefined identifier `__val`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/x86_64-linux-gnu/bits/typesizes.h:73:9 +pub const __getc_unlocked_body = @compileError("TODO postfix inc/dec expr"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/types/struct_FILE.h:102:9 +pub const __putc_unlocked_body = @compileError("TODO postfix inc/dec expr"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/types/struct_FILE.h:106:9 +pub const __f32 = @compileError("unable to translate macro: undefined identifier `f`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:91:12 +pub const __f64x = @compileError("unable to translate macro: undefined identifier `l`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:120:13 +pub const __CFLOAT32 = @compileError("unable to translate: TODO _Complex"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:149:12 +pub const __CFLOAT64 = @compileError("unable to translate: TODO _Complex"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:160:13 +pub const __CFLOAT32X = @compileError("unable to translate: TODO _Complex"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:169:12 +pub const __CFLOAT64X = @compileError("unable to translate: TODO _Complex"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:178:13 +pub const __builtin_nansf32 = @compileError("unable to translate macro: undefined identifier `__builtin_nansf`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:221:12 +pub const __builtin_huge_valf64 = @compileError("unable to translate macro: undefined identifier `__builtin_huge_val`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:255:13 +pub const __builtin_inff64 = @compileError("unable to translate macro: undefined identifier `__builtin_inf`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:256:13 +pub const __builtin_nanf64 = @compileError("unable to translate macro: undefined identifier `__builtin_nan`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:257:13 +pub const __builtin_nansf64 = @compileError("unable to translate macro: undefined identifier `__builtin_nans`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:258:13 +pub const __builtin_huge_valf32x = @compileError("unable to translate macro: undefined identifier `__builtin_huge_val`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:272:12 +pub const __builtin_inff32x = @compileError("unable to translate macro: undefined identifier `__builtin_inf`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:273:12 +pub const __builtin_nanf32x = @compileError("unable to translate macro: undefined identifier `__builtin_nan`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:274:12 +pub const __builtin_nansf32x = @compileError("unable to translate macro: undefined identifier `__builtin_nans`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:275:12 +pub const __builtin_huge_valf64x = @compileError("unable to translate macro: undefined identifier `__builtin_huge_vall`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:289:13 +pub const __builtin_inff64x = @compileError("unable to translate macro: undefined identifier `__builtin_infl`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:290:13 +pub const __builtin_nanf64x = @compileError("unable to translate macro: undefined identifier `__builtin_nanl`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:291:13 +pub const __builtin_nansf64x = @compileError("unable to translate macro: undefined identifier `__builtin_nansl`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/floatn-common.h:292:13 +pub const __FD_ZERO = @compileError("unable to translate macro: undefined identifier `__i`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/select.h:25:9 +pub const __FD_SET = @compileError("unable to translate C expr: expected ')' instead got '|='"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/select.h:32:9 +pub const __FD_CLR = @compileError("unable to translate C expr: expected ')' instead got '&='"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/select.h:34:9 +pub const __PTHREAD_MUTEX_INITIALIZER = @compileError("unable to translate C expr: unexpected token '{'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/x86_64-linux-gnu/bits/struct_mutex.h:56:10 +pub const __PTHREAD_RWLOCK_ELISION_EXTRA = @compileError("unable to translate C expr: unexpected token '{'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/x86_64-linux-gnu/bits/struct_rwlock.h:40:11 +pub const __ONCE_FLAG_INIT = @compileError("unable to translate C expr: unexpected token '{'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/bits/thread-shared-types.h:127:9 +pub const HUGE_VAL = @compileError("unable to translate macro: undefined identifier `__builtin_huge_val`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:48:10 +pub const HUGE_VALL = @compileError("unable to translate macro: undefined identifier `__builtin_huge_vall`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:60:11 +pub const __SIMD_DECL = @compileError("unable to translate macro: undefined identifier `__DECL_SIMD_`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:276:9 +pub const __MATHCALL_VEC = @compileError("unable to translate C expr: unexpected token 'Identifier'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:278:9 +pub const __MATHDECL_VEC = @compileError("unable to translate C expr: unexpected token 'Identifier'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:282:9 +pub const __MATHDECL = @compileError("unable to translate macro: undefined identifier `__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:288:9 +pub const __MATHDECLX = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:293:9 +pub const __MATHDECL_1_IMPL = @compileError("unable to translate C expr: unexpected token 'extern'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:296:9 +pub const __MATHREDIR = @compileError("unable to translate C expr: unexpected token 'extern'"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:305:9 +pub const __MATHCALL_NARROW_ARGS_1 = @compileError("unable to translate macro: undefined identifier `_Marg_`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:550:9 +pub const __MATHCALL_NARROW_ARGS_2 = @compileError("unable to translate macro: undefined identifier `_Marg_`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:551:9 +pub const __MATHCALL_NARROW_ARGS_3 = @compileError("unable to translate macro: undefined identifier `_Marg_`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:552:9 +pub const __MATHCALL_NARROW_NORMAL = @compileError("unable to translate macro: undefined identifier `_Mret_`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:553:9 +pub const __MATHCALL_NARROW_REDIR = @compileError("unable to translate macro: undefined identifier `_Mret_`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:555:9 +pub const __MATH_TG = @compileError("unable to translate macro: undefined identifier `f`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:916:10 +pub const fpclassify = @compileError("unable to translate macro: undefined identifier `__builtin_fpclassify`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:961:11 +pub const isfinite = @compileError("unable to translate macro: undefined identifier `__builtin_isfinite`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:988:11 +pub const isnormal = @compileError("unable to translate macro: undefined identifier `__builtin_isnormal`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:996:11 +pub const isgreater = @compileError("unable to translate macro: undefined identifier `__builtin_isgreater`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:1282:11 +pub const isgreaterequal = @compileError("unable to translate macro: undefined identifier `__builtin_isgreaterequal`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:1283:11 +pub const isless = @compileError("unable to translate macro: undefined identifier `__builtin_isless`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:1284:11 +pub const islessequal = @compileError("unable to translate macro: undefined identifier `__builtin_islessequal`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:1285:11 +pub const islessgreater = @compileError("unable to translate macro: undefined identifier `__builtin_islessgreater`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:1286:11 +pub const isunordered = @compileError("unable to translate macro: undefined identifier `__builtin_isunordered`"); // /home/tradam/.asdf/installs/zig/master/lib/libc/include/generic-glibc/math.h:1287:11 +pub const BIT_SET = @compileError("unable to translate C expr: expected ')' instead got '|='"); // raygui.h:3698:13 +pub const BIT_CLEAR = @compileError("unable to translate C expr: expected ')' instead got '&='"); // raygui.h:3708:13 +pub const __llvm__ = @as(c_int, 1); +pub const __clang__ = @as(c_int, 1); +pub const __clang_major__ = @as(c_int, 13); +pub const __clang_minor__ = @as(c_int, 0); +pub const __clang_patchlevel__ = @as(c_int, 1); +pub const __clang_version__ = "13.0.1 ([email protected]:ziglang/zig-bootstrap.git 81f0e6c5b902ead84753490db4f0007d08df964a)"; +pub const __GNUC__ = @as(c_int, 4); +pub const __GNUC_MINOR__ = @as(c_int, 2); +pub const __GNUC_PATCHLEVEL__ = @as(c_int, 1); +pub const __GXX_ABI_VERSION = @as(c_int, 1002); +pub const __ATOMIC_RELAXED = @as(c_int, 0); +pub const __ATOMIC_CONSUME = @as(c_int, 1); +pub const __ATOMIC_ACQUIRE = @as(c_int, 2); +pub const __ATOMIC_RELEASE = @as(c_int, 3); +pub const __ATOMIC_ACQ_REL = @as(c_int, 4); +pub const __ATOMIC_SEQ_CST = @as(c_int, 5); +pub const __OPENCL_MEMORY_SCOPE_WORK_ITEM = @as(c_int, 0); +pub const __OPENCL_MEMORY_SCOPE_WORK_GROUP = @as(c_int, 1); +pub const __OPENCL_MEMORY_SCOPE_DEVICE = @as(c_int, 2); +pub const __OPENCL_MEMORY_SCOPE_ALL_SVM_DEVICES = @as(c_int, 3); +pub const __OPENCL_MEMORY_SCOPE_SUB_GROUP = @as(c_int, 4); +pub const __PRAGMA_REDEFINE_EXTNAME = @as(c_int, 1); +pub const __VERSION__ = "Clang 13.0.1 ([email protected]:ziglang/zig-bootstrap.git 81f0e6c5b902ead84753490db4f0007d08df964a)"; +pub const __OBJC_BOOL_IS_BOOL = @as(c_int, 0); +pub const __CONSTANT_CFSTRINGS__ = @as(c_int, 1); +pub const __clang_literal_encoding__ = "UTF-8"; +pub const __clang_wide_literal_encoding__ = "UTF-32"; +pub const __OPTIMIZE__ = @as(c_int, 1); +pub const __ORDER_LITTLE_ENDIAN__ = @as(c_int, 1234); +pub const __ORDER_BIG_ENDIAN__ = @as(c_int, 4321); +pub const __ORDER_PDP_ENDIAN__ = @as(c_int, 3412); +pub const __BYTE_ORDER__ = __ORDER_LITTLE_ENDIAN__; +pub const __LITTLE_ENDIAN__ = @as(c_int, 1); +pub const _LP64 = @as(c_int, 1); +pub const __LP64__ = @as(c_int, 1); +pub const __CHAR_BIT__ = @as(c_int, 8); +pub const __SCHAR_MAX__ = @as(c_int, 127); +pub const __SHRT_MAX__ = @as(c_int, 32767); +pub const __INT_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_int, 2147483647, .decimal); +pub const __LONG_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_long, 9223372036854775807, .decimal); +pub const __LONG_LONG_MAX__ = @as(c_longlong, 9223372036854775807); +pub const __WCHAR_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_int, 2147483647, .decimal); +pub const __WINT_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_uint, 4294967295, .decimal); +pub const __INTMAX_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_long, 9223372036854775807, .decimal); +pub const __SIZE_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_ulong, 18446744073709551615, .decimal); +pub const __UINTMAX_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_ulong, 18446744073709551615, .decimal); +pub const __PTRDIFF_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_long, 9223372036854775807, .decimal); +pub const __INTPTR_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_long, 9223372036854775807, .decimal); +pub const __UINTPTR_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_ulong, 18446744073709551615, .decimal); +pub const __SIZEOF_DOUBLE__ = @as(c_int, 8); +pub const __SIZEOF_FLOAT__ = @as(c_int, 4); +pub const __SIZEOF_INT__ = @as(c_int, 4); +pub const __SIZEOF_LONG__ = @as(c_int, 8); +pub const __SIZEOF_LONG_DOUBLE__ = @as(c_int, 16); +pub const __SIZEOF_LONG_LONG__ = @as(c_int, 8); +pub const __SIZEOF_POINTER__ = @as(c_int, 8); +pub const __SIZEOF_SHORT__ = @as(c_int, 2); +pub const __SIZEOF_PTRDIFF_T__ = @as(c_int, 8); +pub const __SIZEOF_SIZE_T__ = @as(c_int, 8); +pub const __SIZEOF_WCHAR_T__ = @as(c_int, 4); +pub const __SIZEOF_WINT_T__ = @as(c_int, 4); +pub const __SIZEOF_INT128__ = @as(c_int, 16); +pub const __INTMAX_TYPE__ = c_long; +pub const __INTMAX_FMTd__ = "ld"; +pub const __INTMAX_FMTi__ = "li"; +pub const __UINTMAX_TYPE__ = c_ulong; +pub const __UINTMAX_FMTo__ = "lo"; +pub const __UINTMAX_FMTu__ = "lu"; +pub const __UINTMAX_FMTx__ = "lx"; +pub const __UINTMAX_FMTX__ = "lX"; +pub const __INTMAX_WIDTH__ = @as(c_int, 64); +pub const __PTRDIFF_TYPE__ = c_long; +pub const __PTRDIFF_FMTd__ = "ld"; +pub const __PTRDIFF_FMTi__ = "li"; +pub const __PTRDIFF_WIDTH__ = @as(c_int, 64); +pub const __INTPTR_TYPE__ = c_long; +pub const __INTPTR_FMTd__ = "ld"; +pub const __INTPTR_FMTi__ = "li"; +pub const __INTPTR_WIDTH__ = @as(c_int, 64); +pub const __SIZE_TYPE__ = c_ulong; +pub const __SIZE_FMTo__ = "lo"; +pub const __SIZE_FMTu__ = "lu"; +pub const __SIZE_FMTx__ = "lx"; +pub const __SIZE_FMTX__ = "lX"; +pub const __SIZE_WIDTH__ = @as(c_int, 64); +pub const __WCHAR_TYPE__ = c_int; +pub const __WCHAR_WIDTH__ = @as(c_int, 32); +pub const __WINT_TYPE__ = c_uint; +pub const __WINT_WIDTH__ = @as(c_int, 32); +pub const __SIG_ATOMIC_WIDTH__ = @as(c_int, 32); +pub const __SIG_ATOMIC_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_int, 2147483647, .decimal); +pub const __CHAR16_TYPE__ = c_ushort; +pub const __CHAR32_TYPE__ = c_uint; +pub const __UINTMAX_WIDTH__ = @as(c_int, 64); +pub const __UINTPTR_TYPE__ = c_ulong; +pub const __UINTPTR_FMTo__ = "lo"; +pub const __UINTPTR_FMTu__ = "lu"; +pub const __UINTPTR_FMTx__ = "lx"; +pub const __UINTPTR_FMTX__ = "lX"; +pub const __UINTPTR_WIDTH__ = @as(c_int, 64); +pub const __FLT_DENORM_MIN__ = @as(f32, 1.40129846e-45); +pub const __FLT_HAS_DENORM__ = @as(c_int, 1); +pub const __FLT_DIG__ = @as(c_int, 6); +pub const __FLT_DECIMAL_DIG__ = @as(c_int, 9); +pub const __FLT_EPSILON__ = @as(f32, 1.19209290e-7); +pub const __FLT_HAS_INFINITY__ = @as(c_int, 1); +pub const __FLT_HAS_QUIET_NAN__ = @as(c_int, 1); +pub const __FLT_MANT_DIG__ = @as(c_int, 24); +pub const __FLT_MAX_10_EXP__ = @as(c_int, 38); +pub const __FLT_MAX_EXP__ = @as(c_int, 128); +pub const __FLT_MAX__ = @as(f32, 3.40282347e+38); +pub const __FLT_MIN_10_EXP__ = -@as(c_int, 37); +pub const __FLT_MIN_EXP__ = -@as(c_int, 125); +pub const __FLT_MIN__ = @as(f32, 1.17549435e-38); +pub const __DBL_DENORM_MIN__ = 4.9406564584124654e-324; +pub const __DBL_HAS_DENORM__ = @as(c_int, 1); +pub const __DBL_DIG__ = @as(c_int, 15); +pub const __DBL_DECIMAL_DIG__ = @as(c_int, 17); +pub const __DBL_EPSILON__ = 2.2204460492503131e-16; +pub const __DBL_HAS_INFINITY__ = @as(c_int, 1); +pub const __DBL_HAS_QUIET_NAN__ = @as(c_int, 1); +pub const __DBL_MANT_DIG__ = @as(c_int, 53); +pub const __DBL_MAX_10_EXP__ = @as(c_int, 308); +pub const __DBL_MAX_EXP__ = @as(c_int, 1024); +pub const __DBL_MAX__ = 1.7976931348623157e+308; +pub const __DBL_MIN_10_EXP__ = -@as(c_int, 307); +pub const __DBL_MIN_EXP__ = -@as(c_int, 1021); +pub const __DBL_MIN__ = 2.2250738585072014e-308; +pub const __LDBL_DENORM_MIN__ = @as(c_longdouble, 3.64519953188247460253e-4951); +pub const __LDBL_HAS_DENORM__ = @as(c_int, 1); +pub const __LDBL_DIG__ = @as(c_int, 18); +pub const __LDBL_DECIMAL_DIG__ = @as(c_int, 21); +pub const __LDBL_EPSILON__ = @as(c_longdouble, 1.08420217248550443401e-19); +pub const __LDBL_HAS_INFINITY__ = @as(c_int, 1); +pub const __LDBL_HAS_QUIET_NAN__ = @as(c_int, 1); +pub const __LDBL_MANT_DIG__ = @as(c_int, 64); +pub const __LDBL_MAX_10_EXP__ = @as(c_int, 4932); +pub const __LDBL_MAX_EXP__ = @as(c_int, 16384); +pub const __LDBL_MAX__ = @as(c_longdouble, 1.18973149535723176502e+4932); +pub const __LDBL_MIN_10_EXP__ = -@as(c_int, 4931); +pub const __LDBL_MIN_EXP__ = -@as(c_int, 16381); +pub const __LDBL_MIN__ = @as(c_longdouble, 3.36210314311209350626e-4932); +pub const __POINTER_WIDTH__ = @as(c_int, 64); +pub const __BIGGEST_ALIGNMENT__ = @as(c_int, 16); +pub const __WINT_UNSIGNED__ = @as(c_int, 1); +pub const __INT8_TYPE__ = i8; +pub const __INT8_FMTd__ = "hhd"; +pub const __INT8_FMTi__ = "hhi"; +pub const __INT8_C_SUFFIX__ = ""; +pub const __INT16_TYPE__ = c_short; +pub const __INT16_FMTd__ = "hd"; +pub const __INT16_FMTi__ = "hi"; +pub const __INT16_C_SUFFIX__ = ""; +pub const __INT32_TYPE__ = c_int; +pub const __INT32_FMTd__ = "d"; +pub const __INT32_FMTi__ = "i"; +pub const __INT32_C_SUFFIX__ = ""; +pub const __INT64_TYPE__ = c_long; +pub const __INT64_FMTd__ = "ld"; +pub const __INT64_FMTi__ = "li"; +pub const __UINT8_TYPE__ = u8; +pub const __UINT8_FMTo__ = "hho"; +pub const __UINT8_FMTu__ = "hhu"; +pub const __UINT8_FMTx__ = "hhx"; +pub const __UINT8_FMTX__ = "hhX"; +pub const __UINT8_C_SUFFIX__ = ""; +pub const __UINT8_MAX__ = @as(c_int, 255); +pub const __INT8_MAX__ = @as(c_int, 127); +pub const __UINT16_TYPE__ = c_ushort; +pub const __UINT16_FMTo__ = "ho"; +pub const __UINT16_FMTu__ = "hu"; +pub const __UINT16_FMTx__ = "hx"; +pub const __UINT16_FMTX__ = "hX"; +pub const __UINT16_C_SUFFIX__ = ""; +pub const __UINT16_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_int, 65535, .decimal); +pub const __INT16_MAX__ = @as(c_int, 32767); +pub const __UINT32_TYPE__ = c_uint; +pub const __UINT32_FMTo__ = "o"; +pub const __UINT32_FMTu__ = "u"; +pub const __UINT32_FMTx__ = "x"; +pub const __UINT32_FMTX__ = "X"; +pub const __UINT32_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_uint, 4294967295, .decimal); +pub const __INT32_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_int, 2147483647, .decimal); +pub const __UINT64_TYPE__ = c_ulong; +pub const __UINT64_FMTo__ = "lo"; +pub const __UINT64_FMTu__ = "lu"; +pub const __UINT64_FMTx__ = "lx"; +pub const __UINT64_FMTX__ = "lX"; +pub const __UINT64_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_ulong, 18446744073709551615, .decimal); +pub const __INT64_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_long, 9223372036854775807, .decimal); +pub const __INT_LEAST8_TYPE__ = i8; +pub const __INT_LEAST8_MAX__ = @as(c_int, 127); +pub const __INT_LEAST8_FMTd__ = "hhd"; +pub const __INT_LEAST8_FMTi__ = "hhi"; +pub const __UINT_LEAST8_TYPE__ = u8; +pub const __UINT_LEAST8_MAX__ = @as(c_int, 255); +pub const __UINT_LEAST8_FMTo__ = "hho"; +pub const __UINT_LEAST8_FMTu__ = "hhu"; +pub const __UINT_LEAST8_FMTx__ = "hhx"; +pub const __UINT_LEAST8_FMTX__ = "hhX"; +pub const __INT_LEAST16_TYPE__ = c_short; +pub const __INT_LEAST16_MAX__ = @as(c_int, 32767); +pub const __INT_LEAST16_FMTd__ = "hd"; +pub const __INT_LEAST16_FMTi__ = "hi"; +pub const __UINT_LEAST16_TYPE__ = c_ushort; +pub const __UINT_LEAST16_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_int, 65535, .decimal); +pub const __UINT_LEAST16_FMTo__ = "ho"; +pub const __UINT_LEAST16_FMTu__ = "hu"; +pub const __UINT_LEAST16_FMTx__ = "hx"; +pub const __UINT_LEAST16_FMTX__ = "hX"; +pub const __INT_LEAST32_TYPE__ = c_int; +pub const __INT_LEAST32_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_int, 2147483647, .decimal); +pub const __INT_LEAST32_FMTd__ = "d"; +pub const __INT_LEAST32_FMTi__ = "i"; +pub const __UINT_LEAST32_TYPE__ = c_uint; +pub const __UINT_LEAST32_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_uint, 4294967295, .decimal); +pub const __UINT_LEAST32_FMTo__ = "o"; +pub const __UINT_LEAST32_FMTu__ = "u"; +pub const __UINT_LEAST32_FMTx__ = "x"; +pub const __UINT_LEAST32_FMTX__ = "X"; +pub const __INT_LEAST64_TYPE__ = c_long; +pub const __INT_LEAST64_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_long, 9223372036854775807, .decimal); +pub const __INT_LEAST64_FMTd__ = "ld"; +pub const __INT_LEAST64_FMTi__ = "li"; +pub const __UINT_LEAST64_TYPE__ = c_ulong; +pub const __UINT_LEAST64_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_ulong, 18446744073709551615, .decimal); +pub const __UINT_LEAST64_FMTo__ = "lo"; +pub const __UINT_LEAST64_FMTu__ = "lu"; +pub const __UINT_LEAST64_FMTx__ = "lx"; +pub const __UINT_LEAST64_FMTX__ = "lX"; +pub const __INT_FAST8_TYPE__ = i8; +pub const __INT_FAST8_MAX__ = @as(c_int, 127); +pub const __INT_FAST8_FMTd__ = "hhd"; +pub const __INT_FAST8_FMTi__ = "hhi"; +pub const __UINT_FAST8_TYPE__ = u8; +pub const __UINT_FAST8_MAX__ = @as(c_int, 255); +pub const __UINT_FAST8_FMTo__ = "hho"; +pub const __UINT_FAST8_FMTu__ = "hhu"; +pub const __UINT_FAST8_FMTx__ = "hhx"; +pub const __UINT_FAST8_FMTX__ = "hhX"; +pub const __INT_FAST16_TYPE__ = c_short; +pub const __INT_FAST16_MAX__ = @as(c_int, 32767); +pub const __INT_FAST16_FMTd__ = "hd"; +pub const __INT_FAST16_FMTi__ = "hi"; +pub const __UINT_FAST16_TYPE__ = c_ushort; +pub const __UINT_FAST16_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_int, 65535, .decimal); +pub const __UINT_FAST16_FMTo__ = "ho"; +pub const __UINT_FAST16_FMTu__ = "hu"; +pub const __UINT_FAST16_FMTx__ = "hx"; +pub const __UINT_FAST16_FMTX__ = "hX"; +pub const __INT_FAST32_TYPE__ = c_int; +pub const __INT_FAST32_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_int, 2147483647, .decimal); +pub const __INT_FAST32_FMTd__ = "d"; +pub const __INT_FAST32_FMTi__ = "i"; +pub const __UINT_FAST32_TYPE__ = c_uint; +pub const __UINT_FAST32_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_uint, 4294967295, .decimal); +pub const __UINT_FAST32_FMTo__ = "o"; +pub const __UINT_FAST32_FMTu__ = "u"; +pub const __UINT_FAST32_FMTx__ = "x"; +pub const __UINT_FAST32_FMTX__ = "X"; +pub const __INT_FAST64_TYPE__ = c_long; +pub const __INT_FAST64_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_long, 9223372036854775807, .decimal); +pub const __INT_FAST64_FMTd__ = "ld"; +pub const __INT_FAST64_FMTi__ = "li"; +pub const __UINT_FAST64_TYPE__ = c_ulong; +pub const __UINT_FAST64_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_ulong, 18446744073709551615, .decimal); +pub const __UINT_FAST64_FMTo__ = "lo"; +pub const __UINT_FAST64_FMTu__ = "lu"; +pub const __UINT_FAST64_FMTx__ = "lx"; +pub const __UINT_FAST64_FMTX__ = "lX"; +pub const __USER_LABEL_PREFIX__ = ""; +pub const __FINITE_MATH_ONLY__ = @as(c_int, 0); +pub const __GNUC_STDC_INLINE__ = @as(c_int, 1); +pub const __GCC_ATOMIC_TEST_AND_SET_TRUEVAL = @as(c_int, 1); +pub const __CLANG_ATOMIC_BOOL_LOCK_FREE = @as(c_int, 2); +pub const __CLANG_ATOMIC_CHAR_LOCK_FREE = @as(c_int, 2); +pub const __CLANG_ATOMIC_CHAR16_T_LOCK_FREE = @as(c_int, 2); +pub const __CLANG_ATOMIC_CHAR32_T_LOCK_FREE = @as(c_int, 2); +pub const __CLANG_ATOMIC_WCHAR_T_LOCK_FREE = @as(c_int, 2); +pub const __CLANG_ATOMIC_SHORT_LOCK_FREE = @as(c_int, 2); +pub const __CLANG_ATOMIC_INT_LOCK_FREE = @as(c_int, 2); +pub const __CLANG_ATOMIC_LONG_LOCK_FREE = @as(c_int, 2); +pub const __CLANG_ATOMIC_LLONG_LOCK_FREE = @as(c_int, 2); +pub const __CLANG_ATOMIC_POINTER_LOCK_FREE = @as(c_int, 2); +pub const __GCC_ATOMIC_BOOL_LOCK_FREE = @as(c_int, 2); +pub const __GCC_ATOMIC_CHAR_LOCK_FREE = @as(c_int, 2); +pub const __GCC_ATOMIC_CHAR16_T_LOCK_FREE = @as(c_int, 2); +pub const __GCC_ATOMIC_CHAR32_T_LOCK_FREE = @as(c_int, 2); +pub const __GCC_ATOMIC_WCHAR_T_LOCK_FREE = @as(c_int, 2); +pub const __GCC_ATOMIC_SHORT_LOCK_FREE = @as(c_int, 2); +pub const __GCC_ATOMIC_INT_LOCK_FREE = @as(c_int, 2); +pub const __GCC_ATOMIC_LONG_LOCK_FREE = @as(c_int, 2); +pub const __GCC_ATOMIC_LLONG_LOCK_FREE = @as(c_int, 2); +pub const __GCC_ATOMIC_POINTER_LOCK_FREE = @as(c_int, 2); +pub const __PIC__ = @as(c_int, 2); +pub const __pic__ = @as(c_int, 2); +pub const __FLT_EVAL_METHOD__ = @as(c_int, 0); +pub const __FLT_RADIX__ = @as(c_int, 2); +pub const __DECIMAL_DIG__ = __LDBL_DECIMAL_DIG__; +pub const __SSP_STRONG__ = @as(c_int, 2); +pub const __GCC_ASM_FLAG_OUTPUTS__ = @as(c_int, 1); +pub const __code_model_small__ = @as(c_int, 1); +pub const __amd64__ = @as(c_int, 1); +pub const __amd64 = @as(c_int, 1); +pub const __x86_64 = @as(c_int, 1); +pub const __x86_64__ = @as(c_int, 1); +pub const __SEG_GS = @as(c_int, 1); +pub const __SEG_FS = @as(c_int, 1); +pub const __corei7 = @as(c_int, 1); +pub const __corei7__ = @as(c_int, 1); +pub const __tune_corei7__ = @as(c_int, 1); +pub const __REGISTER_PREFIX__ = ""; +pub const __NO_MATH_INLINES = @as(c_int, 1); +pub const __AES__ = @as(c_int, 1); +pub const __PCLMUL__ = @as(c_int, 1); +pub const __LAHF_SAHF__ = @as(c_int, 1); +pub const __RDRND__ = @as(c_int, 1); +pub const __FSGSBASE__ = @as(c_int, 1); +pub const __POPCNT__ = @as(c_int, 1); +pub const __F16C__ = @as(c_int, 1); +pub const __FXSR__ = @as(c_int, 1); +pub const __XSAVE__ = @as(c_int, 1); +pub const __XSAVEOPT__ = @as(c_int, 1); +pub const __AVX__ = @as(c_int, 1); +pub const __SSE4_2__ = @as(c_int, 1); +pub const __SSE4_1__ = @as(c_int, 1); +pub const __SSSE3__ = @as(c_int, 1); +pub const __SSE3__ = @as(c_int, 1); +pub const __SSE2__ = @as(c_int, 1); +pub const __SSE2_MATH__ = @as(c_int, 1); +pub const __SSE__ = @as(c_int, 1); +pub const __SSE_MATH__ = @as(c_int, 1); +pub const __MMX__ = @as(c_int, 1); +pub const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 = @as(c_int, 1); +pub const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 = @as(c_int, 1); +pub const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 = @as(c_int, 1); +pub const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 = @as(c_int, 1); +pub const __GCC_HAVE_SYNC_COMPARE_AND_SWAP_16 = @as(c_int, 1); +pub const __SIZEOF_FLOAT128__ = @as(c_int, 16); +pub const unix = @as(c_int, 1); +pub const __unix = @as(c_int, 1); +pub const __unix__ = @as(c_int, 1); +pub const linux = @as(c_int, 1); +pub const __linux = @as(c_int, 1); +pub const __linux__ = @as(c_int, 1); +pub const __ELF__ = @as(c_int, 1); +pub const __gnu_linux__ = @as(c_int, 1); +pub const __FLOAT128__ = @as(c_int, 1); +pub const __STDC__ = @as(c_int, 1); +pub const __STDC_HOSTED__ = @as(c_int, 1); +pub const __STDC_VERSION__ = @as(c_long, 201710); +pub const __STDC_UTF_16__ = @as(c_int, 1); +pub const __STDC_UTF_32__ = @as(c_int, 1); +pub const __GLIBC_MINOR__ = @as(c_int, 19); +pub const _DEBUG = @as(c_int, 1); +pub const RAYGUI_IMPLEMENTATION = @as(c_int, 1); +pub const __GCC_HAVE_DWARF2_CFI_ASM = @as(c_int, 1); +pub const RAYGUI_H = ""; +pub const RAYGUI_VERSION = "3.0"; +pub const RAYLIB_H = ""; +pub const __STDARG_H = ""; +pub const _VA_LIST = ""; +pub const __GNUC_VA_LIST = @as(c_int, 1); +pub const RAYLIB_VERSION = "4.1-dev"; +pub const RLAPI = ""; +pub const PI = @as(f32, 3.14159265358979323846); +pub const DEG2RAD = PI / @as(f32, 180.0); +pub const RAD2DEG = @as(f32, 180.0) / PI; +pub inline fn RL_MALLOC(sz: anytype) @TypeOf(malloc(sz)) { + return malloc(sz); +} +pub inline fn RL_CALLOC(n: anytype, sz: anytype) @TypeOf(calloc(n, sz)) { + return calloc(n, sz); +} +pub inline fn RL_REALLOC(ptr: anytype, sz: anytype) @TypeOf(realloc(ptr, sz)) { + return realloc(ptr, sz); +} +pub inline fn RL_FREE(ptr: anytype) @TypeOf(free(ptr)) { + return free(ptr); +} +pub inline fn CLITERAL(@"type": anytype) @TypeOf(@"type") { + return @"type"; +} +pub const RL_COLOR_TYPE = ""; +pub const RL_RECTANGLE_TYPE = ""; +pub const RL_VECTOR2_TYPE = ""; +pub const RL_VECTOR3_TYPE = ""; +pub const RL_VECTOR4_TYPE = ""; +pub const RL_QUATERNION_TYPE = ""; +pub const RL_MATRIX_TYPE = ""; +pub const LIGHTGRAY = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 200), @as(c_int, 200), @as(c_int, 200), @as(c_int, 255) }); +pub const GRAY = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 130), @as(c_int, 130), @as(c_int, 130), @as(c_int, 255) }); +pub const DARKGRAY = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 80), @as(c_int, 80), @as(c_int, 80), @as(c_int, 255) }); +pub const YELLOW = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 253), @as(c_int, 249), @as(c_int, 0), @as(c_int, 255) }); +pub const GOLD = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 255), @as(c_int, 203), @as(c_int, 0), @as(c_int, 255) }); +pub const ORANGE = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 255), @as(c_int, 161), @as(c_int, 0), @as(c_int, 255) }); +pub const PINK = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 255), @as(c_int, 109), @as(c_int, 194), @as(c_int, 255) }); +pub const RED = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 230), @as(c_int, 41), @as(c_int, 55), @as(c_int, 255) }); +pub const MAROON = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 190), @as(c_int, 33), @as(c_int, 55), @as(c_int, 255) }); +pub const GREEN = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 0), @as(c_int, 228), @as(c_int, 48), @as(c_int, 255) }); +pub const LIME = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 0), @as(c_int, 158), @as(c_int, 47), @as(c_int, 255) }); +pub const DARKGREEN = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 0), @as(c_int, 117), @as(c_int, 44), @as(c_int, 255) }); +pub const SKYBLUE = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 102), @as(c_int, 191), @as(c_int, 255), @as(c_int, 255) }); +pub const BLUE = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 0), @as(c_int, 121), @as(c_int, 241), @as(c_int, 255) }); +pub const DARKBLUE = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 0), @as(c_int, 82), @as(c_int, 172), @as(c_int, 255) }); +pub const PURPLE = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 200), @as(c_int, 122), @as(c_int, 255), @as(c_int, 255) }); +pub const VIOLET = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 135), @as(c_int, 60), @as(c_int, 190), @as(c_int, 255) }); +pub const DARKPURPLE = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 112), @as(c_int, 31), @as(c_int, 126), @as(c_int, 255) }); +pub const BEIGE = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 211), @as(c_int, 176), @as(c_int, 131), @as(c_int, 255) }); +pub const BROWN = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 127), @as(c_int, 106), @as(c_int, 79), @as(c_int, 255) }); +pub const DARKBROWN = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 76), @as(c_int, 63), @as(c_int, 47), @as(c_int, 255) }); +pub const WHITE = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 255), @as(c_int, 255), @as(c_int, 255), @as(c_int, 255) }); +pub const BLACK = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 0), @as(c_int, 0), @as(c_int, 0), @as(c_int, 255) }); +pub const BLANK = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 0), @as(c_int, 0), @as(c_int, 0), @as(c_int, 0) }); +pub const MAGENTA = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 255), @as(c_int, 0), @as(c_int, 255), @as(c_int, 255) }); +pub const RAYWHITE = @import("std").mem.zeroInit(CLITERAL(Color), .{ @as(c_int, 245), @as(c_int, 245), @as(c_int, 245), @as(c_int, 255) }); +pub const __STDBOOL_H = ""; +pub const @"bool" = bool; +pub const @"true" = @as(c_int, 1); +pub const @"false" = @as(c_int, 0); +pub const __bool_true_false_are_defined = @as(c_int, 1); +pub const MOUSE_LEFT_BUTTON = MOUSE_BUTTON_LEFT; +pub const MOUSE_RIGHT_BUTTON = MOUSE_BUTTON_RIGHT; +pub const MOUSE_MIDDLE_BUTTON = MOUSE_BUTTON_MIDDLE; +pub const MATERIAL_MAP_DIFFUSE = MATERIAL_MAP_ALBEDO; +pub const MATERIAL_MAP_SPECULAR = MATERIAL_MAP_METALNESS; +pub const SHADER_LOC_MAP_DIFFUSE = SHADER_LOC_MAP_ALBEDO; +pub const SHADER_LOC_MAP_SPECULAR = SHADER_LOC_MAP_METALNESS; +pub const RAYGUIAPI = ""; +pub inline fn RAYGUI_MALLOC(sz: anytype) @TypeOf(malloc(sz)) { + return malloc(sz); +} +pub inline fn RAYGUI_CALLOC(n: anytype, sz: anytype) @TypeOf(calloc(n, sz)) { + return calloc(n, sz); +} +pub inline fn RAYGUI_FREE(p: anytype) @TypeOf(free(p)) { + return free(p); +} +pub const _STDIO_H = @as(c_int, 1); +pub const __GLIBC_INTERNAL_STARTING_HEADER_IMPLEMENTATION = ""; +pub const _FEATURES_H = @as(c_int, 1); +pub const __KERNEL_STRICT_NAMES = ""; +pub inline fn __GNUC_PREREQ(maj: anytype, min: anytype) @TypeOf(((__GNUC__ << @as(c_int, 16)) + __GNUC_MINOR__) >= ((maj << @as(c_int, 16)) + min)) { + return ((__GNUC__ << @as(c_int, 16)) + __GNUC_MINOR__) >= ((maj << @as(c_int, 16)) + min); +} +pub inline fn __glibc_clang_prereq(maj: anytype, min: anytype) @TypeOf(((__clang_major__ << @as(c_int, 16)) + __clang_minor__) >= ((maj << @as(c_int, 16)) + min)) { + return ((__clang_major__ << @as(c_int, 16)) + __clang_minor__) >= ((maj << @as(c_int, 16)) + min); +} +pub const _DEFAULT_SOURCE = @as(c_int, 1); +pub const __GLIBC_USE_ISOC2X = @as(c_int, 0); +pub const __USE_ISOC11 = @as(c_int, 1); +pub const __USE_ISOC99 = @as(c_int, 1); +pub const __USE_ISOC95 = @as(c_int, 1); +pub const __USE_POSIX_IMPLICITLY = @as(c_int, 1); +pub const _POSIX_SOURCE = @as(c_int, 1); +pub const _POSIX_C_SOURCE = @as(c_long, 200809); +pub const __USE_POSIX = @as(c_int, 1); +pub const __USE_POSIX2 = @as(c_int, 1); +pub const __USE_POSIX199309 = @as(c_int, 1); +pub const __USE_POSIX199506 = @as(c_int, 1); +pub const __USE_XOPEN2K = @as(c_int, 1); +pub const __USE_XOPEN2K8 = @as(c_int, 1); +pub const _ATFILE_SOURCE = @as(c_int, 1); +pub const __WORDSIZE = @as(c_int, 64); +pub const __WORDSIZE_TIME64_COMPAT32 = @as(c_int, 1); +pub const __SYSCALL_WORDSIZE = @as(c_int, 64); +pub const __TIMESIZE = __WORDSIZE; +pub const __USE_MISC = @as(c_int, 1); +pub const __USE_ATFILE = @as(c_int, 1); +pub const __USE_FORTIFY_LEVEL = @as(c_int, 0); +pub const __GLIBC_USE_DEPRECATED_GETS = @as(c_int, 0); +pub const __GLIBC_USE_DEPRECATED_SCANF = @as(c_int, 0); +pub const _STDC_PREDEF_H = @as(c_int, 1); +pub const __STDC_IEC_559__ = @as(c_int, 1); +pub const __STDC_IEC_559_COMPLEX__ = @as(c_int, 1); +pub const __STDC_ISO_10646__ = @as(c_long, 201706); +pub const __GNU_LIBRARY__ = @as(c_int, 6); +pub const __GLIBC__ = @as(c_int, 2); +pub inline fn __GLIBC_PREREQ(maj: anytype, min: anytype) @TypeOf(((__GLIBC__ << @as(c_int, 16)) + __GLIBC_MINOR__) >= ((maj << @as(c_int, 16)) + min)) { + return ((__GLIBC__ << @as(c_int, 16)) + __GLIBC_MINOR__) >= ((maj << @as(c_int, 16)) + min); +} +pub const _SYS_CDEFS_H = @as(c_int, 1); +pub inline fn __glibc_has_builtin(name: anytype) @TypeOf(__has_builtin(name)) { + return __has_builtin(name); +} +pub const __LEAF = ""; +pub const __LEAF_ATTR = ""; +pub inline fn __P(args: anytype) @TypeOf(args) { + return args; +} +pub inline fn __PMT(args: anytype) @TypeOf(args) { + return args; +} +pub const __ptr_t = ?*anyopaque; +pub const __BEGIN_DECLS = ""; +pub const __END_DECLS = ""; +pub inline fn __bos(ptr: anytype) @TypeOf(__builtin_object_size(ptr, __USE_FORTIFY_LEVEL > @as(c_int, 1))) { + return __builtin_object_size(ptr, __USE_FORTIFY_LEVEL > @as(c_int, 1)); +} +pub inline fn __bos0(ptr: anytype) @TypeOf(__builtin_object_size(ptr, @as(c_int, 0))) { + return __builtin_object_size(ptr, @as(c_int, 0)); +} +pub inline fn __glibc_objsize0(__o: anytype) @TypeOf(__bos0(__o)) { + return __bos0(__o); +} +pub inline fn __glibc_objsize(__o: anytype) @TypeOf(__bos(__o)) { + return __bos(__o); +} +pub const __glibc_c99_flexarr_available = @as(c_int, 1); +pub inline fn __ASMNAME(cname: anytype) @TypeOf(__ASMNAME2(__USER_LABEL_PREFIX__, cname)) { + return __ASMNAME2(__USER_LABEL_PREFIX__, cname); +} +pub const __wur = ""; +pub const __fortify_function = __extern_always_inline ++ __attribute_artificial__; +pub inline fn __glibc_unlikely(cond: anytype) @TypeOf(__builtin_expect(cond, @as(c_int, 0))) { + return __builtin_expect(cond, @as(c_int, 0)); +} +pub inline fn __glibc_likely(cond: anytype) @TypeOf(__builtin_expect(cond, @as(c_int, 1))) { + return __builtin_expect(cond, @as(c_int, 1)); +} +pub const __attribute_nonstring__ = ""; +pub const __LDOUBLE_REDIRECTS_TO_FLOAT128_ABI = @as(c_int, 0); +pub inline fn __LDBL_REDIR1(name: anytype, proto: anytype, alias: anytype) @TypeOf(name ++ proto) { + _ = alias; + return name ++ proto; +} +pub inline fn __LDBL_REDIR(name: anytype, proto: anytype) @TypeOf(name ++ proto) { + return name ++ proto; +} +pub inline fn __LDBL_REDIR1_NTH(name: anytype, proto: anytype, alias: anytype) @TypeOf(name ++ proto ++ __THROW) { + _ = alias; + return name ++ proto ++ __THROW; +} +pub inline fn __LDBL_REDIR_NTH(name: anytype, proto: anytype) @TypeOf(name ++ proto ++ __THROW) { + return name ++ proto ++ __THROW; +} +pub inline fn __REDIRECT_LDBL(name: anytype, proto: anytype, alias: anytype) @TypeOf(__REDIRECT(name, proto, alias)) { + return __REDIRECT(name, proto, alias); +} +pub inline fn __REDIRECT_NTH_LDBL(name: anytype, proto: anytype, alias: anytype) @TypeOf(__REDIRECT_NTH(name, proto, alias)) { + return __REDIRECT_NTH(name, proto, alias); +} +pub const __HAVE_GENERIC_SELECTION = @as(c_int, 1); +pub const __attr_dealloc_free = ""; +pub const __USE_EXTERN_INLINES = @as(c_int, 1); +pub const __stub___compat_bdflush = ""; +pub const __stub_chflags = ""; +pub const __stub_fchflags = ""; +pub const __stub_gtty = ""; +pub const __stub_revoke = ""; +pub const __stub_setlogin = ""; +pub const __stub_sigreturn = ""; +pub const __stub_stty = ""; +pub const __GLIBC_USE_LIB_EXT2 = @as(c_int, 0); +pub const __GLIBC_USE_IEC_60559_BFP_EXT = @as(c_int, 0); +pub const __GLIBC_USE_IEC_60559_BFP_EXT_C2X = @as(c_int, 0); +pub const __GLIBC_USE_IEC_60559_EXT = @as(c_int, 0); +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT = @as(c_int, 0); +pub const __GLIBC_USE_IEC_60559_FUNCS_EXT_C2X = @as(c_int, 0); +pub const __GLIBC_USE_IEC_60559_TYPES_EXT = @as(c_int, 0); +pub const __need_size_t = ""; +pub const __need_NULL = ""; +pub const _SIZE_T = ""; +pub const NULL = @import("std").zig.c_translation.cast(?*anyopaque, @as(c_int, 0)); +pub const __need___va_list = ""; +pub const _BITS_TYPES_H = @as(c_int, 1); +pub const __S16_TYPE = c_short; +pub const __U16_TYPE = c_ushort; +pub const __S32_TYPE = c_int; +pub const __U32_TYPE = c_uint; +pub const __SLONGWORD_TYPE = c_long; +pub const __ULONGWORD_TYPE = c_ulong; +pub const __SQUAD_TYPE = c_long; +pub const __UQUAD_TYPE = c_ulong; +pub const __SWORD_TYPE = c_long; +pub const __UWORD_TYPE = c_ulong; +pub const __SLONG32_TYPE = c_int; +pub const __ULONG32_TYPE = c_uint; +pub const __S64_TYPE = c_long; +pub const __U64_TYPE = c_ulong; +pub const _BITS_TYPESIZES_H = @as(c_int, 1); +pub const __SYSCALL_SLONG_TYPE = __SLONGWORD_TYPE; +pub const __SYSCALL_ULONG_TYPE = __ULONGWORD_TYPE; +pub const __DEV_T_TYPE = __UQUAD_TYPE; +pub const __UID_T_TYPE = __U32_TYPE; +pub const __GID_T_TYPE = __U32_TYPE; +pub const __INO_T_TYPE = __SYSCALL_ULONG_TYPE; +pub const __INO64_T_TYPE = __UQUAD_TYPE; +pub const __MODE_T_TYPE = __U32_TYPE; +pub const __NLINK_T_TYPE = __SYSCALL_ULONG_TYPE; +pub const __FSWORD_T_TYPE = __SYSCALL_SLONG_TYPE; +pub const __OFF_T_TYPE = __SYSCALL_SLONG_TYPE; +pub const __OFF64_T_TYPE = __SQUAD_TYPE; +pub const __PID_T_TYPE = __S32_TYPE; +pub const __RLIM_T_TYPE = __SYSCALL_ULONG_TYPE; +pub const __RLIM64_T_TYPE = __UQUAD_TYPE; +pub const __BLKCNT_T_TYPE = __SYSCALL_SLONG_TYPE; +pub const __BLKCNT64_T_TYPE = __SQUAD_TYPE; +pub const __FSBLKCNT_T_TYPE = __SYSCALL_ULONG_TYPE; +pub const __FSBLKCNT64_T_TYPE = __UQUAD_TYPE; +pub const __FSFILCNT_T_TYPE = __SYSCALL_ULONG_TYPE; +pub const __FSFILCNT64_T_TYPE = __UQUAD_TYPE; +pub const __ID_T_TYPE = __U32_TYPE; +pub const __CLOCK_T_TYPE = __SYSCALL_SLONG_TYPE; +pub const __TIME_T_TYPE = __SYSCALL_SLONG_TYPE; +pub const __USECONDS_T_TYPE = __U32_TYPE; +pub const __SUSECONDS_T_TYPE = __SYSCALL_SLONG_TYPE; +pub const __SUSECONDS64_T_TYPE = __SQUAD_TYPE; +pub const __DADDR_T_TYPE = __S32_TYPE; +pub const __KEY_T_TYPE = __S32_TYPE; +pub const __CLOCKID_T_TYPE = __S32_TYPE; +pub const __TIMER_T_TYPE = ?*anyopaque; +pub const __BLKSIZE_T_TYPE = __SYSCALL_SLONG_TYPE; +pub const __SSIZE_T_TYPE = __SWORD_TYPE; +pub const __CPU_MASK_TYPE = __SYSCALL_ULONG_TYPE; +pub const __OFF_T_MATCHES_OFF64_T = @as(c_int, 1); +pub const __INO_T_MATCHES_INO64_T = @as(c_int, 1); +pub const __RLIM_T_MATCHES_RLIM64_T = @as(c_int, 1); +pub const __STATFS_MATCHES_STATFS64 = @as(c_int, 1); +pub const __KERNEL_OLD_TIMEVAL_MATCHES_TIMEVAL64 = @as(c_int, 1); +pub const __FD_SETSIZE = @as(c_int, 1024); +pub const _BITS_TIME64_H = @as(c_int, 1); +pub const __TIME64_T_TYPE = __TIME_T_TYPE; +pub const _____fpos_t_defined = @as(c_int, 1); +pub const ____mbstate_t_defined = @as(c_int, 1); +pub const _____fpos64_t_defined = @as(c_int, 1); +pub const ____FILE_defined = @as(c_int, 1); +pub const __FILE_defined = @as(c_int, 1); +pub const __struct_FILE_defined = @as(c_int, 1); +pub const _IO_EOF_SEEN = @as(c_int, 0x0010); +pub inline fn __feof_unlocked_body(_fp: anytype) @TypeOf((_fp.*._flags & _IO_EOF_SEEN) != @as(c_int, 0)) { + return (_fp.*._flags & _IO_EOF_SEEN) != @as(c_int, 0); +} +pub const _IO_ERR_SEEN = @as(c_int, 0x0020); +pub inline fn __ferror_unlocked_body(_fp: anytype) @TypeOf((_fp.*._flags & _IO_ERR_SEEN) != @as(c_int, 0)) { + return (_fp.*._flags & _IO_ERR_SEEN) != @as(c_int, 0); +} +pub const _IO_USER_LOCK = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x8000, .hexadecimal); +pub const _VA_LIST_DEFINED = ""; +pub const __off_t_defined = ""; +pub const __ssize_t_defined = ""; +pub const _IOFBF = @as(c_int, 0); +pub const _IOLBF = @as(c_int, 1); +pub const _IONBF = @as(c_int, 2); +pub const BUFSIZ = @as(c_int, 8192); +pub const EOF = -@as(c_int, 1); +pub const SEEK_SET = @as(c_int, 0); +pub const SEEK_CUR = @as(c_int, 1); +pub const SEEK_END = @as(c_int, 2); +pub const P_tmpdir = "/tmp"; +pub const _BITS_STDIO_LIM_H = @as(c_int, 1); +pub const L_tmpnam = @as(c_int, 20); +pub const TMP_MAX = @import("std").zig.c_translation.promoteIntLiteral(c_int, 238328, .decimal); +pub const FILENAME_MAX = @as(c_int, 4096); +pub const L_ctermid = @as(c_int, 9); +pub const FOPEN_MAX = @as(c_int, 16); +pub const __attr_dealloc_fclose = __attr_dealloc(fclose, @as(c_int, 1)); +pub const _BITS_FLOATN_H = ""; +pub const __HAVE_FLOAT128 = @as(c_int, 0); +pub const __HAVE_DISTINCT_FLOAT128 = @as(c_int, 0); +pub const __HAVE_FLOAT64X = @as(c_int, 1); +pub const __HAVE_FLOAT64X_LONG_DOUBLE = @as(c_int, 1); +pub const _BITS_FLOATN_COMMON_H = ""; +pub const __HAVE_FLOAT16 = @as(c_int, 0); +pub const __HAVE_FLOAT32 = @as(c_int, 1); +pub const __HAVE_FLOAT64 = @as(c_int, 1); +pub const __HAVE_FLOAT32X = @as(c_int, 1); +pub const __HAVE_FLOAT128X = @as(c_int, 0); +pub const __HAVE_DISTINCT_FLOAT16 = __HAVE_FLOAT16; +pub const __HAVE_DISTINCT_FLOAT32 = @as(c_int, 0); +pub const __HAVE_DISTINCT_FLOAT64 = @as(c_int, 0); +pub const __HAVE_DISTINCT_FLOAT32X = @as(c_int, 0); +pub const __HAVE_DISTINCT_FLOAT64X = @as(c_int, 0); +pub const __HAVE_DISTINCT_FLOAT128X = __HAVE_FLOAT128X; +pub const __HAVE_FLOAT128_UNLIKE_LDBL = (__HAVE_DISTINCT_FLOAT128 != 0) and (__LDBL_MANT_DIG__ != @as(c_int, 113)); +pub const __HAVE_FLOATN_NOT_TYPEDEF = @as(c_int, 0); +pub inline fn __f64(x: anytype) @TypeOf(x) { + return x; +} +pub inline fn __f32x(x: anytype) @TypeOf(x) { + return x; +} +pub inline fn __builtin_huge_valf32() @TypeOf(__builtin_huge_valf()) { + return __builtin_huge_valf(); +} +pub inline fn __builtin_inff32() @TypeOf(__builtin_inff()) { + return __builtin_inff(); +} +pub inline fn __builtin_nanf32(x: anytype) @TypeOf(__builtin_nanf(x)) { + return __builtin_nanf(x); +} +pub const _BITS_STDIO_H = @as(c_int, 1); +pub const __STDIO_INLINE = __extern_inline; +pub const __need_wchar_t = ""; +pub const _WCHAR_T = ""; +pub const _STDLIB_H = @as(c_int, 1); +pub const WNOHANG = @as(c_int, 1); +pub const WUNTRACED = @as(c_int, 2); +pub const WSTOPPED = @as(c_int, 2); +pub const WEXITED = @as(c_int, 4); +pub const WCONTINUED = @as(c_int, 8); +pub const WNOWAIT = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x01000000, .hexadecimal); +pub const __WNOTHREAD = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x20000000, .hexadecimal); +pub const __WALL = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x40000000, .hexadecimal); +pub const __WCLONE = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0x80000000, .hexadecimal); +pub inline fn __WEXITSTATUS(status: anytype) @TypeOf((status & @import("std").zig.c_translation.promoteIntLiteral(c_int, 0xff00, .hexadecimal)) >> @as(c_int, 8)) { + return (status & @import("std").zig.c_translation.promoteIntLiteral(c_int, 0xff00, .hexadecimal)) >> @as(c_int, 8); +} +pub inline fn __WTERMSIG(status: anytype) @TypeOf(status & @as(c_int, 0x7f)) { + return status & @as(c_int, 0x7f); +} +pub inline fn __WSTOPSIG(status: anytype) @TypeOf(__WEXITSTATUS(status)) { + return __WEXITSTATUS(status); +} +pub inline fn __WIFEXITED(status: anytype) @TypeOf(__WTERMSIG(status) == @as(c_int, 0)) { + return __WTERMSIG(status) == @as(c_int, 0); +} +pub inline fn __WIFSIGNALED(status: anytype) @TypeOf((@import("std").zig.c_translation.cast(i8, (status & @as(c_int, 0x7f)) + @as(c_int, 1)) >> @as(c_int, 1)) > @as(c_int, 0)) { + return (@import("std").zig.c_translation.cast(i8, (status & @as(c_int, 0x7f)) + @as(c_int, 1)) >> @as(c_int, 1)) > @as(c_int, 0); +} +pub inline fn __WIFSTOPPED(status: anytype) @TypeOf((status & @as(c_int, 0xff)) == @as(c_int, 0x7f)) { + return (status & @as(c_int, 0xff)) == @as(c_int, 0x7f); +} +pub inline fn __WIFCONTINUED(status: anytype) @TypeOf(status == __W_CONTINUED) { + return status == __W_CONTINUED; +} +pub inline fn __WCOREDUMP(status: anytype) @TypeOf(status & __WCOREFLAG) { + return status & __WCOREFLAG; +} +pub inline fn __W_EXITCODE(ret: anytype, sig: anytype) @TypeOf((ret << @as(c_int, 8)) | sig) { + return (ret << @as(c_int, 8)) | sig; +} +pub inline fn __W_STOPCODE(sig: anytype) @TypeOf((sig << @as(c_int, 8)) | @as(c_int, 0x7f)) { + return (sig << @as(c_int, 8)) | @as(c_int, 0x7f); +} +pub const __W_CONTINUED = @import("std").zig.c_translation.promoteIntLiteral(c_int, 0xffff, .hexadecimal); +pub const __WCOREFLAG = @as(c_int, 0x80); +pub inline fn WEXITSTATUS(status: anytype) @TypeOf(__WEXITSTATUS(status)) { + return __WEXITSTATUS(status); +} +pub inline fn WTERMSIG(status: anytype) @TypeOf(__WTERMSIG(status)) { + return __WTERMSIG(status); +} +pub inline fn WSTOPSIG(status: anytype) @TypeOf(__WSTOPSIG(status)) { + return __WSTOPSIG(status); +} +pub inline fn WIFEXITED(status: anytype) @TypeOf(__WIFEXITED(status)) { + return __WIFEXITED(status); +} +pub inline fn WIFSIGNALED(status: anytype) @TypeOf(__WIFSIGNALED(status)) { + return __WIFSIGNALED(status); +} +pub inline fn WIFSTOPPED(status: anytype) @TypeOf(__WIFSTOPPED(status)) { + return __WIFSTOPPED(status); +} +pub inline fn WIFCONTINUED(status: anytype) @TypeOf(__WIFCONTINUED(status)) { + return __WIFCONTINUED(status); +} +pub const __ldiv_t_defined = @as(c_int, 1); +pub const __lldiv_t_defined = @as(c_int, 1); +pub const RAND_MAX = @import("std").zig.c_translation.promoteIntLiteral(c_int, 2147483647, .decimal); +pub const EXIT_FAILURE = @as(c_int, 1); +pub const EXIT_SUCCESS = @as(c_int, 0); +pub const MB_CUR_MAX = __ctype_get_mb_cur_max(); +pub const _SYS_TYPES_H = @as(c_int, 1); +pub const __u_char_defined = ""; +pub const __ino_t_defined = ""; +pub const __dev_t_defined = ""; +pub const __gid_t_defined = ""; +pub const __mode_t_defined = ""; +pub const __nlink_t_defined = ""; +pub const __uid_t_defined = ""; +pub const __pid_t_defined = ""; +pub const __id_t_defined = ""; +pub const __daddr_t_defined = ""; +pub const __key_t_defined = ""; +pub const __clock_t_defined = @as(c_int, 1); +pub const __clockid_t_defined = @as(c_int, 1); +pub const __time_t_defined = @as(c_int, 1); +pub const __timer_t_defined = @as(c_int, 1); +pub const _BITS_STDINT_INTN_H = @as(c_int, 1); +pub const __BIT_TYPES_DEFINED__ = @as(c_int, 1); +pub const _ENDIAN_H = @as(c_int, 1); +pub const _BITS_ENDIAN_H = @as(c_int, 1); +pub const __LITTLE_ENDIAN = @as(c_int, 1234); +pub const __BIG_ENDIAN = @as(c_int, 4321); +pub const __PDP_ENDIAN = @as(c_int, 3412); +pub const _BITS_ENDIANNESS_H = @as(c_int, 1); +pub const __BYTE_ORDER = __LITTLE_ENDIAN; +pub const __FLOAT_WORD_ORDER = __BYTE_ORDER; +pub inline fn __LONG_LONG_PAIR(HI: anytype, LO: anytype) @TypeOf(HI) { + return blk: { + _ = LO; + break :blk HI; + }; +} +pub const LITTLE_ENDIAN = __LITTLE_ENDIAN; +pub const BIG_ENDIAN = __BIG_ENDIAN; +pub const PDP_ENDIAN = __PDP_ENDIAN; +pub const BYTE_ORDER = __BYTE_ORDER; +pub const _BITS_BYTESWAP_H = @as(c_int, 1); +pub inline fn __bswap_constant_16(x: anytype) __uint16_t { + return @import("std").zig.c_translation.cast(__uint16_t, ((x >> @as(c_int, 8)) & @as(c_int, 0xff)) | ((x & @as(c_int, 0xff)) << @as(c_int, 8))); +} +pub inline fn __bswap_constant_32(x: anytype) @TypeOf(((((x & @import("std").zig.c_translation.promoteIntLiteral(c_uint, 0xff000000, .hexadecimal)) >> @as(c_int, 24)) | ((x & @import("std").zig.c_translation.promoteIntLiteral(c_uint, 0x00ff0000, .hexadecimal)) >> @as(c_int, 8))) | ((x & @as(c_uint, 0x0000ff00)) << @as(c_int, 8))) | ((x & @as(c_uint, 0x000000ff)) << @as(c_int, 24))) { + return ((((x & @import("std").zig.c_translation.promoteIntLiteral(c_uint, 0xff000000, .hexadecimal)) >> @as(c_int, 24)) | ((x & @import("std").zig.c_translation.promoteIntLiteral(c_uint, 0x00ff0000, .hexadecimal)) >> @as(c_int, 8))) | ((x & @as(c_uint, 0x0000ff00)) << @as(c_int, 8))) | ((x & @as(c_uint, 0x000000ff)) << @as(c_int, 24)); +} +pub inline fn __bswap_constant_64(x: anytype) @TypeOf(((((((((x & @as(c_ulonglong, 0xff00000000000000)) >> @as(c_int, 56)) | ((x & @as(c_ulonglong, 0x00ff000000000000)) >> @as(c_int, 40))) | ((x & @as(c_ulonglong, 0x0000ff0000000000)) >> @as(c_int, 24))) | ((x & @as(c_ulonglong, 0x000000ff00000000)) >> @as(c_int, 8))) | ((x & @as(c_ulonglong, 0x00000000ff000000)) << @as(c_int, 8))) | ((x & @as(c_ulonglong, 0x0000000000ff0000)) << @as(c_int, 24))) | ((x & @as(c_ulonglong, 0x000000000000ff00)) << @as(c_int, 40))) | ((x & @as(c_ulonglong, 0x00000000000000ff)) << @as(c_int, 56))) { + return ((((((((x & @as(c_ulonglong, 0xff00000000000000)) >> @as(c_int, 56)) | ((x & @as(c_ulonglong, 0x00ff000000000000)) >> @as(c_int, 40))) | ((x & @as(c_ulonglong, 0x0000ff0000000000)) >> @as(c_int, 24))) | ((x & @as(c_ulonglong, 0x000000ff00000000)) >> @as(c_int, 8))) | ((x & @as(c_ulonglong, 0x00000000ff000000)) << @as(c_int, 8))) | ((x & @as(c_ulonglong, 0x0000000000ff0000)) << @as(c_int, 24))) | ((x & @as(c_ulonglong, 0x000000000000ff00)) << @as(c_int, 40))) | ((x & @as(c_ulonglong, 0x00000000000000ff)) << @as(c_int, 56)); +} +pub const _BITS_UINTN_IDENTITY_H = @as(c_int, 1); +pub inline fn htobe16(x: anytype) @TypeOf(__bswap_16(x)) { + return __bswap_16(x); +} +pub inline fn htole16(x: anytype) @TypeOf(__uint16_identity(x)) { + return __uint16_identity(x); +} +pub inline fn be16toh(x: anytype) @TypeOf(__bswap_16(x)) { + return __bswap_16(x); +} +pub inline fn le16toh(x: anytype) @TypeOf(__uint16_identity(x)) { + return __uint16_identity(x); +} +pub inline fn htobe32(x: anytype) @TypeOf(__bswap_32(x)) { + return __bswap_32(x); +} +pub inline fn htole32(x: anytype) @TypeOf(__uint32_identity(x)) { + return __uint32_identity(x); +} +pub inline fn be32toh(x: anytype) @TypeOf(__bswap_32(x)) { + return __bswap_32(x); +} +pub inline fn le32toh(x: anytype) @TypeOf(__uint32_identity(x)) { + return __uint32_identity(x); +} +pub inline fn htobe64(x: anytype) @TypeOf(__bswap_64(x)) { + return __bswap_64(x); +} +pub inline fn htole64(x: anytype) @TypeOf(__uint64_identity(x)) { + return __uint64_identity(x); +} +pub inline fn be64toh(x: anytype) @TypeOf(__bswap_64(x)) { + return __bswap_64(x); +} +pub inline fn le64toh(x: anytype) @TypeOf(__uint64_identity(x)) { + return __uint64_identity(x); +} +pub const _SYS_SELECT_H = @as(c_int, 1); +pub inline fn __FD_ISSET(d: anytype, s: anytype) @TypeOf((__FDS_BITS(s)[__FD_ELT(d)] & __FD_MASK(d)) != @as(c_int, 0)) { + return (__FDS_BITS(s)[__FD_ELT(d)] & __FD_MASK(d)) != @as(c_int, 0); +} +pub const __sigset_t_defined = @as(c_int, 1); +pub const ____sigset_t_defined = ""; +pub const _SIGSET_NWORDS = @as(c_int, 1024) / (@as(c_int, 8) * @import("std").zig.c_translation.sizeof(c_ulong)); +pub const __timeval_defined = @as(c_int, 1); +pub const _STRUCT_TIMESPEC = @as(c_int, 1); +pub const __suseconds_t_defined = ""; +pub const __NFDBITS = @as(c_int, 8) * @import("std").zig.c_translation.cast(c_int, @import("std").zig.c_translation.sizeof(__fd_mask)); +pub inline fn __FD_ELT(d: anytype) @TypeOf(d / __NFDBITS) { + return d / __NFDBITS; +} +pub inline fn __FD_MASK(d: anytype) __fd_mask { + return @import("std").zig.c_translation.cast(__fd_mask, @as(c_ulong, 1) << (d % __NFDBITS)); +} +pub inline fn __FDS_BITS(set: anytype) @TypeOf(set.*.__fds_bits) { + return set.*.__fds_bits; +} +pub const FD_SETSIZE = __FD_SETSIZE; +pub const NFDBITS = __NFDBITS; +pub inline fn FD_SET(fd: anytype, fdsetp: anytype) @TypeOf(__FD_SET(fd, fdsetp)) { + return __FD_SET(fd, fdsetp); +} +pub inline fn FD_CLR(fd: anytype, fdsetp: anytype) @TypeOf(__FD_CLR(fd, fdsetp)) { + return __FD_CLR(fd, fdsetp); +} +pub inline fn FD_ISSET(fd: anytype, fdsetp: anytype) @TypeOf(__FD_ISSET(fd, fdsetp)) { + return __FD_ISSET(fd, fdsetp); +} +pub inline fn FD_ZERO(fdsetp: anytype) @TypeOf(__FD_ZERO(fdsetp)) { + return __FD_ZERO(fdsetp); +} +pub const __blksize_t_defined = ""; +pub const __blkcnt_t_defined = ""; +pub const __fsblkcnt_t_defined = ""; +pub const __fsfilcnt_t_defined = ""; +pub const _BITS_PTHREADTYPES_COMMON_H = @as(c_int, 1); +pub const _THREAD_SHARED_TYPES_H = @as(c_int, 1); +pub const _BITS_PTHREADTYPES_ARCH_H = @as(c_int, 1); +pub const __SIZEOF_PTHREAD_MUTEX_T = @as(c_int, 40); +pub const __SIZEOF_PTHREAD_ATTR_T = @as(c_int, 56); +pub const __SIZEOF_PTHREAD_RWLOCK_T = @as(c_int, 56); +pub const __SIZEOF_PTHREAD_BARRIER_T = @as(c_int, 32); +pub const __SIZEOF_PTHREAD_MUTEXATTR_T = @as(c_int, 4); +pub const __SIZEOF_PTHREAD_COND_T = @as(c_int, 48); +pub const __SIZEOF_PTHREAD_CONDATTR_T = @as(c_int, 4); +pub const __SIZEOF_PTHREAD_RWLOCKATTR_T = @as(c_int, 8); +pub const __SIZEOF_PTHREAD_BARRIERATTR_T = @as(c_int, 4); +pub const __LOCK_ALIGNMENT = ""; +pub const __ONCE_ALIGNMENT = ""; +pub const _THREAD_MUTEX_INTERNAL_H = @as(c_int, 1); +pub const __PTHREAD_MUTEX_HAVE_PREV = @as(c_int, 1); +pub const _RWLOCK_INTERNAL_H = ""; +pub inline fn __PTHREAD_RWLOCK_INITIALIZER(__flags: anytype) @TypeOf(__flags) { + return blk: { + _ = @as(c_int, 0); + _ = @as(c_int, 0); + _ = @as(c_int, 0); + _ = @as(c_int, 0); + _ = @as(c_int, 0); + _ = @as(c_int, 0); + _ = @as(c_int, 0); + _ = @as(c_int, 0); + _ = __PTHREAD_RWLOCK_ELISION_EXTRA; + _ = @as(c_int, 0); + break :blk __flags; + }; +} +pub const __have_pthread_attr_t = @as(c_int, 1); +pub const _ALLOCA_H = @as(c_int, 1); +pub const __COMPAR_FN_T = ""; +pub const _STRING_H = @as(c_int, 1); +pub const _BITS_TYPES_LOCALE_T_H = @as(c_int, 1); +pub const _BITS_TYPES___LOCALE_T_H = @as(c_int, 1); +pub const _STRINGS_H = @as(c_int, 1); +pub const _MATH_H = @as(c_int, 1); +pub const _BITS_LIBM_SIMD_DECL_STUBS_H = @as(c_int, 1); +pub const __DECL_SIMD_cos = ""; +pub const __DECL_SIMD_cosf = ""; +pub const __DECL_SIMD_cosl = ""; +pub const __DECL_SIMD_cosf16 = ""; +pub const __DECL_SIMD_cosf32 = ""; +pub const __DECL_SIMD_cosf64 = ""; +pub const __DECL_SIMD_cosf128 = ""; +pub const __DECL_SIMD_cosf32x = ""; +pub const __DECL_SIMD_cosf64x = ""; +pub const __DECL_SIMD_cosf128x = ""; +pub const __DECL_SIMD_sin = ""; +pub const __DECL_SIMD_sinf = ""; +pub const __DECL_SIMD_sinl = ""; +pub const __DECL_SIMD_sinf16 = ""; +pub const __DECL_SIMD_sinf32 = ""; +pub const __DECL_SIMD_sinf64 = ""; +pub const __DECL_SIMD_sinf128 = ""; +pub const __DECL_SIMD_sinf32x = ""; +pub const __DECL_SIMD_sinf64x = ""; +pub const __DECL_SIMD_sinf128x = ""; +pub const __DECL_SIMD_sincos = ""; +pub const __DECL_SIMD_sincosf = ""; +pub const __DECL_SIMD_sincosl = ""; +pub const __DECL_SIMD_sincosf16 = ""; +pub const __DECL_SIMD_sincosf32 = ""; +pub const __DECL_SIMD_sincosf64 = ""; +pub const __DECL_SIMD_sincosf128 = ""; +pub const __DECL_SIMD_sincosf32x = ""; +pub const __DECL_SIMD_sincosf64x = ""; +pub const __DECL_SIMD_sincosf128x = ""; +pub const __DECL_SIMD_log = ""; +pub const __DECL_SIMD_logf = ""; +pub const __DECL_SIMD_logl = ""; +pub const __DECL_SIMD_logf16 = ""; +pub const __DECL_SIMD_logf32 = ""; +pub const __DECL_SIMD_logf64 = ""; +pub const __DECL_SIMD_logf128 = ""; +pub const __DECL_SIMD_logf32x = ""; +pub const __DECL_SIMD_logf64x = ""; +pub const __DECL_SIMD_logf128x = ""; +pub const __DECL_SIMD_exp = ""; +pub const __DECL_SIMD_expf = ""; +pub const __DECL_SIMD_expl = ""; +pub const __DECL_SIMD_expf16 = ""; +pub const __DECL_SIMD_expf32 = ""; +pub const __DECL_SIMD_expf64 = ""; +pub const __DECL_SIMD_expf128 = ""; +pub const __DECL_SIMD_expf32x = ""; +pub const __DECL_SIMD_expf64x = ""; +pub const __DECL_SIMD_expf128x = ""; +pub const __DECL_SIMD_pow = ""; +pub const __DECL_SIMD_powf = ""; +pub const __DECL_SIMD_powl = ""; +pub const __DECL_SIMD_powf16 = ""; +pub const __DECL_SIMD_powf32 = ""; +pub const __DECL_SIMD_powf64 = ""; +pub const __DECL_SIMD_powf128 = ""; +pub const __DECL_SIMD_powf32x = ""; +pub const __DECL_SIMD_powf64x = ""; +pub const __DECL_SIMD_powf128x = ""; +pub const HUGE_VALF = __builtin_huge_valf(); +pub const INFINITY = __builtin_inff(); +pub const NAN = __builtin_nanf(""); +pub const __GLIBC_FLT_EVAL_METHOD = __FLT_EVAL_METHOD__; +pub const __FP_LOGB0_IS_MIN = @as(c_int, 1); +pub const __FP_LOGBNAN_IS_MIN = @as(c_int, 1); +pub const FP_ILOGB0 = -@import("std").zig.c_translation.promoteIntLiteral(c_int, 2147483647, .decimal) - @as(c_int, 1); +pub const FP_ILOGBNAN = -@import("std").zig.c_translation.promoteIntLiteral(c_int, 2147483647, .decimal) - @as(c_int, 1); +pub inline fn __MATHCALL(function: anytype, suffix: anytype, args: anytype) @TypeOf(__MATHDECL(_Mdouble_, function, suffix, args)) { + return __MATHDECL(_Mdouble_, function, suffix, args); +} +pub inline fn __MATHCALLX(function: anytype, suffix: anytype, args: anytype, attrib: anytype) @TypeOf(__MATHDECLX(_Mdouble_, function, suffix, args, attrib)) { + return __MATHDECLX(_Mdouble_, function, suffix, args, attrib); +} +pub inline fn __MATHDECL_1(@"type": anytype, function: anytype, suffix: anytype, args: anytype) @TypeOf(__MATHDECL_1_IMPL(@"type", function, suffix, args)) { + return __MATHDECL_1_IMPL(@"type", function, suffix, args); +} +pub inline fn __MATHDECL_ALIAS(@"type": anytype, function: anytype, suffix: anytype, args: anytype, alias: anytype) @TypeOf(__MATHDECL_1(@"type", function, suffix, args)) { + _ = alias; + return __MATHDECL_1(@"type", function, suffix, args); +} +pub const _Mdouble_ = f64; +pub inline fn __MATH_PRECNAME(name: anytype, r: anytype) @TypeOf(__CONCAT(name, r)) { + return __CONCAT(name, r); +} +pub const __MATH_DECLARING_DOUBLE = @as(c_int, 1); +pub const __MATH_DECLARING_FLOATN = @as(c_int, 0); +pub const __MATH_DECLARE_LDOUBLE = @as(c_int, 1); +pub inline fn __MATHCALL_NARROW(func: anytype, redir: anytype, nargs: anytype) @TypeOf(__MATHCALL_NARROW_NORMAL(func, nargs)) { + _ = redir; + return __MATHCALL_NARROW_NORMAL(func, nargs); +} +pub inline fn signbit(x: anytype) @TypeOf(__builtin_signbit(x)) { + return __builtin_signbit(x); +} +pub const MATH_ERRNO = @as(c_int, 1); +pub const MATH_ERREXCEPT = @as(c_int, 2); +pub const math_errhandling = MATH_ERRNO | MATH_ERREXCEPT; +pub const M_E = 2.7182818284590452354; +pub const M_LOG2E = 1.4426950408889634074; +pub const M_LOG10E = 0.43429448190325182765; +pub const M_LN2 = 0.69314718055994530942; +pub const M_LN10 = 2.30258509299404568402; +pub const M_PI = 3.14159265358979323846; +pub const M_PI_2 = 1.57079632679489661923; +pub const M_PI_4 = 0.78539816339744830962; +pub const M_1_PI = 0.31830988618379067154; +pub const M_2_PI = 0.63661977236758134308; +pub const M_2_SQRTPI = 1.12837916709551257390; +pub const M_SQRT2 = 1.41421356237309504880; +pub const M_SQRT1_2 = 0.70710678118654752440; +pub inline fn RAYGUI_CLITERAL(name: anytype) @TypeOf(name) { + return name; +} +pub const RICON_SIZE = @as(c_int, 16); +pub const RICON_MAX_ICONS = @as(c_int, 256); +pub const RICON_MAX_NAME_LENGTH = @as(c_int, 32); +pub const RICON_DATA_ELEMENTS = (RICON_SIZE * RICON_SIZE) / @as(c_int, 32); +pub const RAYGUI_MAX_CONTROLS = @as(c_int, 16); +pub const RAYGUI_MAX_PROPS_BASE = @as(c_int, 16); +pub const RAYGUI_MAX_PROPS_EXTENDED = @as(c_int, 8); +pub const WINDOW_STATUSBAR_HEIGHT = @as(c_int, 22); +pub const GROUPBOX_LINE_THICK = @as(c_int, 1); +pub const GROUPBOX_TEXT_PADDING = @as(c_int, 10); +pub const LINE_TEXT_PADDING = @as(c_int, 10); +pub const PANEL_BORDER_WIDTH = @as(c_int, 1); +pub const TOGGLEGROUP_MAX_ELEMENTS = @as(c_int, 32); +pub const VALUEBOX_MAX_CHARS = @as(c_int, 32); +pub const COLORBARALPHA_CHECKED_SIZE = @as(c_int, 10); +pub const MESSAGEBOX_BUTTON_HEIGHT = @as(c_int, 24); +pub const MESSAGEBOX_BUTTON_PADDING = @as(c_int, 10); +pub const TEXTINPUTBOX_BUTTON_HEIGHT = @as(c_int, 24); +pub const TEXTINPUTBOX_BUTTON_PADDING = @as(c_int, 10); +pub const TEXTINPUTBOX_HEIGHT = @as(c_int, 30); +pub const TEXTINPUTBOX_MAX_TEXT_LENGTH = @as(c_int, 256); +pub const GRID_COLOR_ALPHA = @as(f32, 0.15); +pub inline fn BIT_CHECK(a: anytype, b: anytype) @TypeOf(a & (@as(c_int, 1) << b)) { + return a & (@as(c_int, 1) << b); +} +pub inline fn TEXT_VALIGN_PIXEL_OFFSET(h: anytype) @TypeOf(@import("std").zig.c_translation.cast(c_int, h) % @as(c_int, 2)) { + return @import("std").zig.c_translation.cast(c_int, h) % @as(c_int, 2); +} +pub const RICON_TEXT_PADDING = @as(c_int, 4); +pub const TEXTSPLIT_MAX_TEXT_LENGTH = @as(c_int, 1024); +pub const TEXTSPLIT_MAX_TEXT_ELEMENTS = @as(c_int, 128); +pub const __va_list_tag = struct___va_list_tag; +pub const _IO_marker = struct__IO_marker; +pub const _IO_codecvt = struct__IO_codecvt; +pub const _IO_wide_data = struct__IO_wide_data; +pub const _IO_FILE = struct__IO_FILE; +pub const _G_fpos_t = struct__G_fpos_t; +pub const _G_fpos64_t = struct__G_fpos64_t; +pub const timeval = struct_timeval; +pub const timespec = struct_timespec; +pub const __pthread_internal_list = struct___pthread_internal_list; +pub const __pthread_internal_slist = struct___pthread_internal_slist; +pub const __pthread_mutex_s = struct___pthread_mutex_s; +pub const __pthread_rwlock_arch_t = struct___pthread_rwlock_arch_t; +pub const __pthread_cond_s = struct___pthread_cond_s; +pub const random_data = struct_random_data; +pub const drand48_data = struct_drand48_data; +pub const __locale_data = struct___locale_data; +pub const __locale_struct = struct___locale_struct; |
