Skip to content

Instantly share code, notes, and snippets.

@gingerBill
gingerBill / microui_sdl_demo.odin
Last active April 18, 2024 18:55
microui + SDL Demo in Odin
package microui_sdl
import "core:fmt"
import "core:c/libc"
import SDL "vendor:sdl2"
import mu "vendor:microui"
state := struct {
mu_ctx: mu.Context,
log_buf: [1<<16]byte,
@gingerBill
gingerBill / Style_Table.md
Last active August 15, 2023 13:44
Procedure Signature Styles and Ambiguities
Prefix/Odin Require Return Type Return Named Inputs
Empty Procedure proc() () -> void ()
1 input, unnamed proc(int) (int) -> void
1 input, named proc(x: int) (x: int) -> void (x: int)
1 input, 1 output proc(int) -> int (x: int) -> int (x: int) -> int
2 inputs, 2 unnamed outputs proc(int, int) -> (int, int) (int, int) -> (int, int) (x: int, y: int) -> (int, int)
0 inputs, 2 named outputs proc() -> (a: int, b: int) () -> (a: int, b: int)
2 in
package main
import "core:os"
import "core:fmt"
import "core:mem"
import "core:slice"
import "intrinsics"
Image_Dos_Header :: struct {
e_signature: u16,
@gingerBill
gingerBill / channels_test.odin
Created December 27, 2020 23:59
Channels Test (with comparison to Go)
package test
import "core:os"
import "core:fmt"
import "core:sync"
import "core:time"
import "core:thread"
import "core:text/scanner"
import "core:strings"
@gingerBill
gingerBill / odin_syntax.ebnf
Last active March 17, 2021 04:37
Odin EBNF
/*
Production = production_name "=" [ Expression ] "." .
Expression = Alternative { "|" Alternative } .
Alternative = Term { Term } .
Term = production_name | token [ "…" token ] | Group | Option | Repetition .
Group = "(" Expression ")" .
Option = "[" Expression "]" .
Repetition = "{" Expression "}" .
@gingerBill
gingerBill / create_vulkan_odin_wrapper.py
Last active August 24, 2021 15:00
create_vulkan_odin_wrapper.py
import re
import urllib.request as req
from tokenize import tokenize
from io import BytesIO
import string
import os.path
import math
if not os.path.isfile("vulkan_core.h"):
src = req.urlopen("https://raw.githubusercontent.com/KhronosGroup/Vulkan-Headers/master/include/vulkan/vulkan_core.h").read().decode('utf-8')
@gingerBill
gingerBill / wasm.odin
Last active May 6, 2020 14:26
Basic WASM Assembler in Odin
package wasm_assembler
import "core:fmt"
PAGE_SIZE :: 1<<16;
Val_Type :: enum u8 {
void = 0x00,
i32 = 0x7f,
i64 = 0x7e,
package sokol_app
when ODIN_OS == "windows" do foreign import sapp_lib "sokol_app_d3d11.lib"
import "core:c"
MAX_TOUCHPOINTS :: 8;
MAX_MOUSEBUTTONS :: 3;
MAX_KEYCODES :: 512;
@gingerBill
gingerBill / freetype.odin
Created October 15, 2019 19:35
FreeType Odin
package freetype
import "core:c"
when ODIN_OS == "windows" {
foreign import freetype "freetype291.lib";
}
when ODIN_OS == "darwin" do foreign import freetype {
"macos/libfreetype.a",
}
@gingerBill
gingerBill / glfw.odin
Last active October 13, 2019 13:34
Odin package glfw
package glfw
import "core:fmt"
import "core:math"
import "core:mem"
when ODIN_OS == "linux" do foreign import glfw "system:glfw";
when ODIN_OS == "darwin" do foreign import glfw {
"macos/libglfw3.a",
"system:Cocoa.framework",