Skip to content

Instantly share code, notes, and snippets.

Quick Reference for SDL2
========================
Includes both prototypes and short examples of using the call.
int SDL_Init(Uint32 flags)
SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO);
void SDL_Quit(void)
atexit(SDL_Quit);
const char* SDL_GetHint(const char* name)
@OrangeTide
OrangeTide / base.c
Created March 11, 2016 01:49
command-line utility to convert numbers to different formats (hexidecimal, octal, binary, decimal, base-N)
/* base.c : command-line utility to convert numbers to different formats.
* March 10, 2016 - PUBLIC DOMAIN */
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <limits.h>
int main(int argc, char **argv)
{
@OrangeTide
OrangeTide / vm.h
Created April 21, 2017 00:41
virtual machine in one header file
/* vm.h - virtual machine */
#ifndef VM_H
#define VM_H
/* Goals:
* - no allocations in library
* - multithread safe
* - easy opcode extensions
* - single file
*/
#include <stddef.h>
@OrangeTide
OrangeTide / pipe-example.c
Last active May 14, 2018 17:44
demonstration of using pipe() and fork() to redirect
#define _XOPEN_SOURCE 700
#define _POSIX_C_SOURCE 200809L
#include <stdio.h>
#include <unistd.h>
int main() {
int s, fd[2];
pipe(fd);
if (!fork()) { /* child */
dup2(fd[0], STDIN_FILENO);
@OrangeTide
OrangeTide / GNUmakefile
Created March 30, 2019 14:09
Sample build system
# Default options
CFLAGS = -Wall -W -g -O
# CFLAGS += -D_GNU_SOURCE
# OS Detection
ifeq ($(OS),Windows_NT)
X=.exe
RM=del
else
X=
endif
@OrangeTide
OrangeTide / GNUmakefile
Created March 30, 2019 14:16
Primitive modular Makefile
all ::
clean :: ; $(RM) $(TARGETS) $(foreach t,$(TARGETS),$(OBJS_$t))
.PHONY : all clean
## Configuration
CFLAGS = -Wall -W -O2 -g
# a really aggressive strip-all for ARM
STRIP = strip -s -w -R .comment\* -R .note\* -R .gnu.hash -R .ARM.exidx -R .ARM.attributes
## Rules
%.o : %.c
$(COMPILE.c) $(if $(PKGS),$(shell pkg-config --cflags $(PKGS))) $(OUTPUT_OPTION) $<
@OrangeTide
OrangeTide / bananabread.md
Last active April 2, 2020 03:31
Banana Bread recipe

Banana Bread

Ingredients

  • 2 c flour
  • 1 c sugar
  • 1 1/2 tsp baking powder
  • 1/2 tsp baking soda
  • 1/4 tsp salt
@OrangeTide
OrangeTide / .bashrc
Created January 27, 2021 18:52
Add a cool 😎 prompt to your shell (for bash)
# Add this snippet to your .bashrc instead of your normal prompt (PS1) setting.
# Customize the line below further with your favorite smilies
# 😎 🙂 😊 😢 🙁 🙃
PS1='$(test $? -eq 0 && echo "\[\033[0;32m\]😎" || echo "\[\033[0;1;31m\]😢")\[\033[0m\] \W\$ '
# Set window title
case "$TERM" in
xterm*)
# see also man xterm(1) - "Window and Icon Titles"
@OrangeTide
OrangeTide / using-strcspn.c
Created September 13, 2022 17:29
Using strcspn to process control character delimiters
#include <stdio.h>
#include <string.h>
void
process(const char *input)
{
const char delim[] = { 0x0b, 0x1c, 0x0d, 0 };
int count = 0;
while (input[0] != '\0') {
@OrangeTide
OrangeTide / sdl-setup.md
Last active October 29, 2022 04:04
To set up a new SDL Android project

How To Set Up a New SDL Android project

  1. Install Android Studio
  1. Get SDL sources SDL2-2.0.12.tar.gz and extract to a location of your choice
    cd /tmp