diff options
| author | Fuwn <[email protected]> | 2022-08-02 12:36:41 -1000 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2022-08-02 12:36:41 -1000 |
| commit | e6b5da35362f3b74c99e9ed3ce40cee587070748 (patch) | |
| tree | 2aad0183d2a3c163d7d0017637b6201a85b785bd | |
| download | zigr-e6b5da35362f3b74c99e9ed3ce40cee587070748.tar.xz zigr-e6b5da35362f3b74c99e9ed3ce40cee587070748.zip | |
feat: initial commit
| -rw-r--r-- | .gitignore | 6 | ||||
| -rw-r--r-- | .gitmodules | 3 | ||||
| -rw-r--r-- | LICENSE | 10 | ||||
| -rwxr-xr-x | bindgen.sh | 5 | ||||
| -rw-r--r-- | build.zig | 51 | ||||
| -rw-r--r-- | examples/hello.zig | 13 | ||||
| m--------- | libs/tigr | 0 | ||||
| -rw-r--r-- | src/main.zig | 627 |
8 files changed, 715 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6c01262 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +# Zig +zig-out +zig-cache + +# Visual Studio Code +.vscode diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c28d207 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "libs/tigr"] + path = libs/tigr + url = https://github.com/erkkah/tigr @@ -0,0 +1,10 @@ +This is free and unencumbered software released into the public domain. + +Our intent is that anyone is free to copy and use this software, +for any purpose, in any form, and by any means. + +The authors dedicate any and all copyright interest in the software +to the public domain, at their own expense for the betterment of mankind. + +The software is provided "as is", without any kind of warranty, including +any implied warranty. If it breaks, you get to keep both pieces.
\ No newline at end of file diff --git a/bindgen.sh b/bindgen.sh new file mode 100755 index 0000000..b6df8bc --- /dev/null +++ b/bindgen.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +git submodule update --init --recursive + +zig translate-c libs/tigr/tigr.h > src/main.zig diff --git a/build.zig b/build.zig new file mode 100644 index 0000000..af91cb2 --- /dev/null +++ b/build.zig @@ -0,0 +1,51 @@ +const std = @import("std"); + +const pkgs = struct { + const zigr = std.build.Pkg{ + .name = "zigr", + .source = .{ .path = "src/main.zig" }, + }; +}; + +/// https://github.com/fengb/zCord/blob/master/build.zig#L4-L12 +const Options = struct { + mode: std.builtin.Mode, + target: std.zig.CrossTarget, + + fn apply(self: Options, lib: *std.build.LibExeObjStep) void { + lib.setTarget(self.target); + lib.setBuildMode(self.mode); + lib.linkLibC(); + lib.addIncludePath("libs/tigr"); + lib.addCSourceFile("libs/tigr/tigr.c", &[_][]const u8{}); + lib.linkSystemLibrary("X11"); + lib.linkSystemLibrary("GL"); + lib.linkSystemLibrary("GLU"); + } +}; + +pub fn build(b: *std.build.Builder) void { + const target = b.standardTargetOptions(.{}); + const mode = b.standardReleaseOptions(); + const options = Options{ + .target = target, + .mode = mode, + }; + + const lib = b.addStaticLibrary("zigr", "src/main.zig"); + options.apply(lib); + lib.install(); + + const main_tests = b.addTest("src/main.zig"); + options.apply(main_tests); + + const test_step = b.step("test", "Run library tests"); + test_step.dependOn(&main_tests.step); + + const hello_example = b.addExecutable("hello", "examples/hello.zig"); + options.apply(hello_example); + hello_example.addPackage(pkgs.zigr); + + const examples_step = b.step("examples", "Builds examples"); + examples_step.dependOn(&b.addInstallArtifact(hello_example).step); +} diff --git a/examples/hello.zig b/examples/hello.zig new file mode 100644 index 0000000..5f6b9e5 --- /dev/null +++ b/examples/hello.zig @@ -0,0 +1,13 @@ +const zigr = @import("zigr"); + +pub fn main() void { + var screen = zigr.tigrWindow(320, 240, "Hello", 0); + + while (!(zigr.tigrClosed(screen) == 1) and !(zigr.tigrKeyDown(screen, zigr.TK_ESCAPE) == 1)) { + zigr.tigrClear(screen, zigr.tigrRGB(0x80, 0x90, 0xa0)); + zigr.tigrPrint(screen, zigr.tfont, 120, 110, zigr.tigrRGB(0xff, 0xff, 0xff), "Hello, world."); + zigr.tigrUpdate(screen); + } + + zigr.tigrUpdate(screen); +} diff --git a/libs/tigr b/libs/tigr new file mode 160000 +Subproject 29f936484e7ac43bf79356bf62a86d28568b45b diff --git a/src/main.zig b/src/main.zig new file mode 100644 index 0000000..0c0b4b1 --- /dev/null +++ b/src/main.zig @@ -0,0 +1,627 @@ +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 TPixel = extern struct { + r: u8, + g: u8, + b: u8, + a: u8, +}; +pub const struct_Tigr = extern struct { + w: c_int, + h: c_int, + cx: c_int, + cy: c_int, + cw: c_int, + ch: c_int, + pix: [*c]TPixel, + handle: ?*anyopaque, + blitMode: c_int, +}; +pub const Tigr = struct_Tigr; +pub extern fn tigrWindow(w: c_int, h: c_int, title: [*c]const u8, flags: c_int) [*c]Tigr; +pub extern fn tigrBitmap(w: c_int, h: c_int) [*c]Tigr; +pub extern fn tigrFree(bmp: [*c]Tigr) void; +pub extern fn tigrClosed(bmp: [*c]Tigr) c_int; +pub extern fn tigrUpdate(bmp: [*c]Tigr) void; +pub extern fn tigrBeginOpenGL(bmp: [*c]Tigr) c_int; +pub extern fn tigrSetPostShader(bmp: [*c]Tigr, code: [*c]const u8, size: c_int) void; +pub extern fn tigrSetPostFX(bmp: [*c]Tigr, p1: f32, p2: f32, p3: f32, p4: f32) void; +pub extern fn tigrGet(bmp: [*c]Tigr, x: c_int, y: c_int) TPixel; +pub extern fn tigrPlot(bmp: [*c]Tigr, x: c_int, y: c_int, pix: TPixel) void; +pub extern fn tigrClear(bmp: [*c]Tigr, color: TPixel) void; +pub extern fn tigrFill(bmp: [*c]Tigr, x: c_int, y: c_int, w: c_int, h: c_int, color: TPixel) void; +pub extern fn tigrLine(bmp: [*c]Tigr, x0: c_int, y0: c_int, x1: c_int, y1: c_int, color: TPixel) void; +pub extern fn tigrRect(bmp: [*c]Tigr, x: c_int, y: c_int, w: c_int, h: c_int, color: TPixel) void; +pub extern fn tigrFillRect(bmp: [*c]Tigr, x: c_int, y: c_int, w: c_int, h: c_int, color: TPixel) void; +pub extern fn tigrCircle(bmp: [*c]Tigr, x: c_int, y: c_int, r: c_int, color: TPixel) void; +pub extern fn tigrFillCircle(bmp: [*c]Tigr, x: c_int, y: c_int, r: c_int, color: TPixel) void; +pub extern fn tigrClip(bmp: [*c]Tigr, cx: c_int, cy: c_int, cw: c_int, ch: c_int) void; +pub extern fn tigrBlit(dest: [*c]Tigr, src: [*c]Tigr, dx: c_int, dy: c_int, sx: c_int, sy: c_int, w: c_int, h: c_int) void; +pub extern fn tigrBlitAlpha(dest: [*c]Tigr, src: [*c]Tigr, dx: c_int, dy: c_int, sx: c_int, sy: c_int, w: c_int, h: c_int, alpha: f32) void; +pub extern fn tigrBlitTint(dest: [*c]Tigr, src: [*c]Tigr, dx: c_int, dy: c_int, sx: c_int, sy: c_int, w: c_int, h: c_int, tint: TPixel) void; +pub const TIGR_KEEP_ALPHA: c_int = 0; +pub const TIGR_BLEND_ALPHA: c_int = 1; +pub const enum_TIGRBlitMode = c_uint; +pub extern fn tigrBlitMode(dest: [*c]Tigr, mode: c_int) void; +pub fn tigrRGB(arg_r: u8, arg_g: u8, arg_b: u8) callconv(.C) TPixel { + var r = arg_r; + var g = arg_g; + var b = arg_b; + var p: TPixel = undefined; + p.r = r; + p.g = g; + p.b = b; + p.a = 255; + return p; +} +pub fn tigrRGBA(arg_r: u8, arg_g: u8, arg_b: u8, arg_a: u8) callconv(.C) TPixel { + var r = arg_r; + var g = arg_g; + var b = arg_b; + var a = arg_a; + var p: TPixel = undefined; + p.r = r; + p.g = g; + p.b = b; + p.a = a; + return p; +} +pub const TigrGlyph = extern struct { + code: c_int, + x: c_int, + y: c_int, + w: c_int, + h: c_int, +}; +pub const TigrFont = extern struct { + bitmap: [*c]Tigr, + numGlyphs: c_int, + glyphs: [*c]TigrGlyph, +}; +pub extern fn tigrLoadFont(bitmap: [*c]Tigr, codepage: c_int) [*c]TigrFont; +pub extern fn tigrFreeFont(font: [*c]TigrFont) void; +pub extern fn tigrPrint(dest: [*c]Tigr, font: [*c]TigrFont, x: c_int, y: c_int, color: TPixel, text: [*c]const u8, ...) void; +pub extern fn tigrTextWidth(font: [*c]TigrFont, text: [*c]const u8) c_int; +pub extern fn tigrTextHeight(font: [*c]TigrFont, text: [*c]const u8) c_int; +pub extern var tfont: [*c]TigrFont; +pub const TK_PAD0: c_int = 128; +pub const TK_PAD1: c_int = 129; +pub const TK_PAD2: c_int = 130; +pub const TK_PAD3: c_int = 131; +pub const TK_PAD4: c_int = 132; +pub const TK_PAD5: c_int = 133; +pub const TK_PAD6: c_int = 134; +pub const TK_PAD7: c_int = 135; +pub const TK_PAD8: c_int = 136; +pub const TK_PAD9: c_int = 137; +pub const TK_PADMUL: c_int = 138; +pub const TK_PADADD: c_int = 139; +pub const TK_PADENTER: c_int = 140; +pub const TK_PADSUB: c_int = 141; +pub const TK_PADDOT: c_int = 142; +pub const TK_PADDIV: c_int = 143; +pub const TK_F1: c_int = 144; +pub const TK_F2: c_int = 145; +pub const TK_F3: c_int = 146; +pub const TK_F4: c_int = 147; +pub const TK_F5: c_int = 148; +pub const TK_F6: c_int = 149; +pub const TK_F7: c_int = 150; +pub const TK_F8: c_int = 151; +pub const TK_F9: c_int = 152; +pub const TK_F10: c_int = 153; +pub const TK_F11: c_int = 154; +pub const TK_F12: c_int = 155; +pub const TK_BACKSPACE: c_int = 156; +pub const TK_TAB: c_int = 157; +pub const TK_RETURN: c_int = 158; +pub const TK_SHIFT: c_int = 159; +pub const TK_CONTROL: c_int = 160; +pub const TK_ALT: c_int = 161; +pub const TK_PAUSE: c_int = 162; +pub const TK_CAPSLOCK: c_int = 163; +pub const TK_ESCAPE: c_int = 164; +pub const TK_SPACE: c_int = 165; +pub const TK_PAGEUP: c_int = 166; +pub const TK_PAGEDN: c_int = 167; +pub const TK_END: c_int = 168; +pub const TK_HOME: c_int = 169; +pub const TK_LEFT: c_int = 170; +pub const TK_UP: c_int = 171; +pub const TK_RIGHT: c_int = 172; +pub const TK_DOWN: c_int = 173; +pub const TK_INSERT: c_int = 174; +pub const TK_DELETE: c_int = 175; +pub const TK_LWIN: c_int = 176; +pub const TK_RWIN: c_int = 177; +pub const TK_NUMLOCK: c_int = 178; +pub const TK_SCROLL: c_int = 179; +pub const TK_LSHIFT: c_int = 180; +pub const TK_RSHIFT: c_int = 181; +pub const TK_LCONTROL: c_int = 182; +pub const TK_RCONTROL: c_int = 183; +pub const TK_LALT: c_int = 184; +pub const TK_RALT: c_int = 185; +pub const TK_SEMICOLON: c_int = 186; +pub const TK_EQUALS: c_int = 187; +pub const TK_COMMA: c_int = 188; +pub const TK_MINUS: c_int = 189; +pub const TK_DOT: c_int = 190; +pub const TK_SLASH: c_int = 191; +pub const TK_BACKTICK: c_int = 192; +pub const TK_LSQUARE: c_int = 193; +pub const TK_BACKSLASH: c_int = 194; +pub const TK_RSQUARE: c_int = 195; +pub const TK_TICK: c_int = 196; +pub const TKey = c_uint; +pub extern fn tigrMouse(bmp: [*c]Tigr, x: [*c]c_int, y: [*c]c_int, buttons: [*c]c_int) void; +pub const TigrTouchPoint = extern struct { + x: c_int, + y: c_int, +}; +pub extern fn tigrTouch(bmp: [*c]Tigr, points: [*c]TigrTouchPoint, maxPoints: c_int) c_int; +pub extern fn tigrKeyDown(bmp: [*c]Tigr, key: c_int) c_int; +pub extern fn tigrKeyHeld(bmp: [*c]Tigr, key: c_int) c_int; +pub extern fn tigrReadChar(bmp: [*c]Tigr) c_int; +pub extern fn tigrShowKeyboard(show: c_int) void; +pub extern fn tigrLoadImage(fileName: [*c]const u8) [*c]Tigr; +pub extern fn tigrLoadImageMem(data: ?*const anyopaque, length: c_int) [*c]Tigr; +pub extern fn tigrSaveImage(fileName: [*c]const u8, bmp: [*c]Tigr) c_int; +pub extern fn tigrTime(...) f32; +pub extern fn tigrError(bmp: [*c]Tigr, message: [*c]const u8, ...) void; +pub extern fn tigrReadFile(fileName: [*c]const u8, length: [*c]c_int) ?*anyopaque; +pub extern fn tigrInflate(out: ?*anyopaque, outlen: c_uint, in: ?*const anyopaque, inlen: c_uint) c_int; +pub extern fn tigrDecodeUTF8(text: [*c]const u8, cp: [*c]c_int) [*c]const u8; +pub extern fn tigrEncodeUTF8(text: [*c]u8, cp: c_int) [*c]u8; +pub const __INTMAX_C_SUFFIX__ = @compileError("unable to translate macro: undefined identifier `L`"); // (no file):80:9 +pub const __UINTMAX_C_SUFFIX__ = @compileError("unable to translate macro: undefined identifier `UL`"); // (no file):86:9 +pub const __INT64_C_SUFFIX__ = @compileError("unable to translate macro: undefined identifier `L`"); // (no file):169:9 +pub const __UINT32_C_SUFFIX__ = @compileError("unable to translate macro: undefined identifier `U`"); // (no file):191:9 +pub const __UINT64_C_SUFFIX__ = @compileError("unable to translate macro: undefined identifier `UL`"); // (no file):199:9 +pub const __seg_gs = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // (no file):326:9 +pub const __seg_fs = @compileError("unable to translate macro: undefined identifier `__attribute__`"); // (no file):327:9 +pub const TIGR_INLINE = @compileError("unable to translate C expr: unexpected token 'static'"); // libs/tigr/tigr.h:29:9 +pub const __llvm__ = @as(c_int, 1); +pub const __clang__ = @as(c_int, 1); +pub const __clang_major__ = @as(c_int, 14); +pub const __clang_minor__ = @as(c_int, 0); +pub const __clang_patchlevel__ = @as(c_int, 6); +pub const __clang_version__ = "14.0.6 ([email protected]:ziglang/zig-bootstrap.git dbc902054739800b8c1656dc1fb29571bba074b9)"; +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 14.0.6 ([email protected]:ziglang/zig-bootstrap.git dbc902054739800b8c1656dc1fb29571bba074b9)"; +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 __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 __BOOL_WIDTH__ = @as(c_int, 8); +pub const __SHRT_WIDTH__ = @as(c_int, 16); +pub const __INT_WIDTH__ = @as(c_int, 32); +pub const __LONG_WIDTH__ = @as(c_int, 64); +pub const __LLONG_WIDTH__ = @as(c_int, 64); +pub const __BITINT_MAXWIDTH__ = @as(c_int, 128); +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 __WCHAR_WIDTH__ = @as(c_int, 32); +pub const __WINT_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_uint, 4294967295, .decimal); +pub const __WINT_WIDTH__ = @as(c_int, 32); +pub const __INTMAX_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_long, 9223372036854775807, .decimal); +pub const __INTMAX_WIDTH__ = @as(c_int, 64); +pub const __SIZE_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_ulong, 18446744073709551615, .decimal); +pub const __SIZE_WIDTH__ = @as(c_int, 64); +pub const __UINTMAX_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_ulong, 18446744073709551615, .decimal); +pub const __UINTMAX_WIDTH__ = @as(c_int, 64); +pub const __PTRDIFF_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_long, 9223372036854775807, .decimal); +pub const __PTRDIFF_WIDTH__ = @as(c_int, 64); +pub const __INTPTR_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_long, 9223372036854775807, .decimal); +pub const __INTPTR_WIDTH__ = @as(c_int, 64); +pub const __UINTPTR_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_ulong, 18446744073709551615, .decimal); +pub const __UINTPTR_WIDTH__ = @as(c_int, 64); +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 __PTRDIFF_TYPE__ = c_long; +pub const __PTRDIFF_FMTd__ = "ld"; +pub const __PTRDIFF_FMTi__ = "li"; +pub const __INTPTR_TYPE__ = c_long; +pub const __INTPTR_FMTd__ = "ld"; +pub const __INTPTR_FMTi__ = "li"; +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 __WCHAR_TYPE__ = c_int; +pub const __WINT_TYPE__ = c_uint; +pub const __SIG_ATOMIC_MAX__ = @import("std").zig.c_translation.promoteIntLiteral(c_int, 2147483647, .decimal); +pub const __SIG_ATOMIC_WIDTH__ = @as(c_int, 32); +pub const __CHAR16_TYPE__ = c_ushort; +pub const __CHAR32_TYPE__ = c_uint; +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 __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_WIDTH__ = @as(c_int, 8); +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_WIDTH__ = @as(c_int, 16); +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_WIDTH__ = @as(c_int, 32); +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_WIDTH__ = @as(c_int, 64); +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_WIDTH__ = @as(c_int, 8); +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_WIDTH__ = @as(c_int, 16); +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_WIDTH__ = @as(c_int, 32); +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_WIDTH__ = @as(c_int, 64); +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 __NO_INLINE__ = @as(c_int, 1); +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 __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 __znver1 = @as(c_int, 1); +pub const __znver1__ = @as(c_int, 1); +pub const __tune_znver1__ = @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 __LZCNT__ = @as(c_int, 1); +pub const __RDRND__ = @as(c_int, 1); +pub const __FSGSBASE__ = @as(c_int, 1); +pub const __BMI__ = @as(c_int, 1); +pub const __BMI2__ = @as(c_int, 1); +pub const __POPCNT__ = @as(c_int, 1); +pub const __PRFCHW__ = @as(c_int, 1); +pub const __RDSEED__ = @as(c_int, 1); +pub const __ADX__ = @as(c_int, 1); +pub const __MWAITX__ = @as(c_int, 1); +pub const __MOVBE__ = @as(c_int, 1); +pub const __SSE4A__ = @as(c_int, 1); +pub const __FMA__ = @as(c_int, 1); +pub const __F16C__ = @as(c_int, 1); +pub const __SHA__ = @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 __XSAVEC__ = @as(c_int, 1); +pub const __XSAVES__ = @as(c_int, 1); +pub const __CLFLUSHOPT__ = @as(c_int, 1); +pub const __CLZERO__ = @as(c_int, 1); +pub const __CRC32__ = @as(c_int, 1); +pub const __AVX2__ = @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 _DEBUG = @as(c_int, 1); +pub const __GCC_HAVE_DWARF2_CFI_ASM = @as(c_int, 1); +pub const TIGR_FIXED = @as(c_int, 0); +pub const TIGR_AUTO = @as(c_int, 1); +pub const TIGR_2X = @as(c_int, 2); +pub const TIGR_3X = @as(c_int, 4); +pub const TIGR_4X = @as(c_int, 8); +pub const TIGR_RETINA = @as(c_int, 16); +pub const TIGR_NOCURSOR = @as(c_int, 32); +pub const TIGR_FULLSCREEN = @as(c_int, 64); +pub const TIGRBlitMode = enum_TIGRBlitMode; |