Build Cradle
odin build main.odin -file -out:build/debug.exe -debug
Build Game (This one is the hot reload one)
odin build game.odin -file -build-mode:dll -out:build/game.dll -debug
| USize AlignForward(USize p, USize alignment) { | |
| USize mod; | |
| if (0 == p % alignment) { | |
| return p; | |
| } | |
| mod = p & (alignment - 1); | |
| if (mod != 0) { |
| package main | |
| import "core:fmt" | |
| import rl "vendor:raylib" | |
| Vec2 :: [2]f32 | |
| Rect :: rl.Rectangle | |
| Sprite_Animation_Frame :: struct { |
| #include "common.h" | |
| uintptr_t align_forward(uintptr_t ptr, size_t alignment) { | |
| uintptr_t p, a, modulo; | |
| if (!is_power_of_two(alignment)) { | |
| return 0; | |
| } | |
| p = ptr; | |
| a = (uintptr_t)alignment; |
| // Usage: | |
| // ISQ_UI_RENDER_RECT(buffer, count) | |
| // must be defined by the user. | |
| // buffer: pointer to an array of rects | |
| // count: number of rects in the array | |
| // rect: | |
| // vec4 min, max; | |
| // vec4 color; | |
| vim.cmd([[ | |
| let mapleader = ' ' | |
| ]]) | |
| require('packer').startup(function(use) | |
| use "BurntSushi/ripgrep" | |
| use "danilamihailov/beacon.nvim" | |
| use "folke/todo-comments.nvim" | |
| use "folke/trouble.nvim" | |
| use "goolord/alpha-nvim" |
| Machine({ | |
| id: 'Dog API', | |
| initial: 'idle', | |
| context: { | |
| dog: null | |
| }, | |
| states: { | |
| idle: { | |
| on: { | |
| FETCH: 'loading' |
| /* dict.h */ | |
| #pragma once | |
| #include <stdlib.h> | |
| struct dict { | |
| int *hashed_keys; | |
| void *values; | |
| int count; |
| <sentence> ::= <subj> <obj> <verb> <part> | |
| <sub> ::= <noun> | |
| <noun> ::= dog | cat | man | woman | robot | pen | |
| <obj> ::= <noun> | |
| <verb> ::= kick | whack | dance | own | |
| <part> ::= now | earlier | later | |
| <subj> <obj> <verb> <part> | |
| man pen own now == "A man owns a pen" | |
| dog cat dance earlier == "A dog was dacing with a cat" |