Skip to content

Instantly share code, notes, and snippets.

View kalsprite's full-sized avatar

kalsprite kalsprite

View GitHub Profile
@kalsprite
kalsprite / fragment_shader.fs
Created December 11, 2023 02:04
Minimal Raylib Triangle Shader Example
#version 330 core
in vec4 fragColor;
out vec4 FragColor;
void main() {
FragColor = fragColor;
}
@kalsprite
kalsprite / set_icon.bat
Last active May 1, 2023 03:41
Custom File Icon (Windows)
@echo off
setlocal
@REM MUST RUN AS ADMINISTRATOR
@REM Reference Document
@REM https://stackoverflow.com/questions/41092781/can-i-assign-a-custom-icon-to-a-file-type
@REM ICO file Generation (works fine, not sure if anyone is better):
@REM https://cloudconvert.com/
@REM Rebuild icon cache (Should not need,manually delete icon caches):
@REM https://www.howtogeek.com/232779/how-to-rebuild-a-broken-icon-cache-in-windows-10/
@kalsprite
kalsprite / preproccesor.odin
Created May 1, 2023 00:36
Odin AST for Metaprogramming
package preprocessor
import strings "core:strings"
import strconv "core:strconv"
import os "core:os"
import fmt "core:fmt"
import ast "core:odin/ast"
import parser "core:odin/parser"
import tokenizer "core:odin/tokenizer"
Field :: struct {
name: string,
@kalsprite
kalsprite / main.odin
Created April 10, 2023 02:00
Basic TCP Server
package main
import "core:fmt"
import "core:net"
import "core:os"
import "core:strings"
import "core:strconv"
main :: proc() {
ep, epok := net.parse_endpoint("127.0.0.1:3000")
assert(epok)
package gap_buffer
import "core:unicode/utf8"
import "core:mem"
import "core:testing"
main :: proc() {
test_chars(nil)
test_slices(nil)
test_utf8(nil)
}
@kalsprite
kalsprite / ajit.odin
Last active February 24, 2023 06:51
Asm JIT
package ajit
import win32 "core:sys/windows"
import "core:fmt"
PAGE_SIZE :: 4096
// Intel ISR: https://www.cs.cmu.edu/~410/doc/intel-isr.pdf
// Demo of simple C Asm JIT: https://nullprogram.com/blog/2015/03/19/
// ASMJIT Docs: https://asmjit.com/doc/group__asmjit__core.html
main :: proc() {
@kalsprite
kalsprite / sample_440hz.odin
Last active November 28, 2024 03:28
wasapi min example - 440 hz tone
// Released as Public Domain, Attribution appreciated but not required, Jon Lipstate
package scratch
import win32 "core:sys/windows"
import "core:fmt"
import "core:math"
import "core:mem"
import "./wasapi"
/////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
// https://learn.microsoft.com/en-us/windows/win32/api/mmdeviceapi/nn-mmdeviceapi-immdeviceenumerator
// https://learn.microsoft.com/en-us/windows/win32/coreaudio/rendering-a-stream
@kalsprite
kalsprite / dsound.odin
Last active July 28, 2025 05:34
dsound init
// Released as Public Domain, Attribution appreciated but not required, Jon Lipstate
package scratch
import win32 "core:sys/windows"
import "core:dynlib"
import "core:fmt"
import "vendor:directx/dxgi"
IDirectSound :: struct {
using lpVtbl: ^IDirectSoundVtbl,