Skip to content

Instantly share code, notes, and snippets.

Avatar

Dan Bechard dbechrd

View GitHub Profile
@dbechrd
dbechrd / 20230108_dbechrd_sdl2_quick_reference.c
Last active February 22, 2023 04:06
SDL 2 API Quick Reference
View 20230108_dbechrd_sdl2_quick_reference.c
// NOTE: For best viewing experience, click "Raw" in the top right of the Gist page, or download
// this file and view it in your favorite text editor with syntax highlighting!
//==============================================
//| Title : SDL 2.0 API Quick Reference |
//| Author : https://github.com/dbechrd/ |
//| Last updated : Jan 8, 2023 |
//==============================================
// Based on: https://wiki.libsdl.org/SDL2/APIByCategory (retrieved Jan 8, 2023)
View vs2022_project_structure.txt
Shortened script for this video: https://www.youtube.com/watch?v=of7hJJ1Z7Ho
Create a new project
Empty project
Project name: Square
I like to put all of my source code in a "Development" folder
Leave Solution name blank
Ensure the "Place solution and project in the same directory" box is checked
I usually just delete the default filters. They cause confusion because they're not one-to-one with the actual files on disk.
@dbechrd
dbechrd / pbd.cpp
Created November 27, 2022 03:09
Position based dynamics.. I tried.. I failed
View pbd.cpp
static void collision_broadphase(ta_rigid_body_pair **pairs, ta_rigid_body *rigid_bodies, double dt)
{
// Box2D supports 16 collision categories. For each fixture you can_body
// specify which category it belongs to. You also specify what other
// categories this fixture can_body collide with.
//
// if ((categoryA & maskB) != 0 && (categoryB & maskA) != 0)
//
// Collision groups let you specify an integral group index. You can_body
// have all fixtures with the same group index always collide
View dlb_rand.h
#ifndef DLB_RAND_H
#define DLB_RAND_H
//------------------------------------------------------------------------------
// Copyright 2021 Dan Bechard
//
// Contains 3rd party code, see additional copyright notices below.
//------------------------------------------------------------------------------
//-- header --------------------------------------------------------------------
@dbechrd
dbechrd / windows_leaner_and_meaner.h
Created September 1, 2022 20:29
How to include Windows.h with only timer functionality
View windows_leaner_and_meaner.h
// -- windows.h flags --
#define VC_EXTRALEAN
#define WIN32_LEAN_AND_MEAN
#define NOGDICAPMASKS
#define NOVIRTUALKEYCODES
#define NOWINMESSAGES
#define OWINSTYLES
#define NOSYSMETRICS
#define NOMENUS
#define NOICONS
View gitignore_global
# OS generated files
.DS_Store*
ehthumbs.db
Icon?
Thumbs.db
# Build Folders (you can keep bin if you'd like, to store dlls and pdbs)
#/[Bb]in
/[Oo]bj
@dbechrd
dbechrd / ini_parser.cpp
Created June 23, 2022 03:30
Simple INI parser
View ini_parser.cpp
#define _CRT_SECURE_NO_WARNINGS
#include <cassert>
#include <cstdio>
#include <cstdlib>
#include <vector>
struct buffer {
char *data;
int length;
View ta_file_read_all.c
// Read file as binary, but append \0 to the end of the buffer
// filename: name of file to read
// buf : if file read successfully, this will be set to a pointer to the file contents on the heap
// len : if file read successfully, this will be set to the file length
// Returns 0 on success, negative error code on failure (see stderr for more info)
// WARN: you must free(buf) when you're done with it!!
int ta_file_read_all(const char *filename, char **buf, size_t *len)
{
assert(filename);
assert(buf);
@dbechrd
dbechrd / game_of_life.py
Created February 23, 2022 22:35
Game of Life
View game_of_life.py
# Copyright 2022 Ben Groves & Dan Bechard @ Avvir.io
# MIT License
import os
import time
import random
from copy import deepcopy
def create_board(size):
board = [[0] * size for i in range(size)]
View git-status.sh
#!/usr/bin/env bash
###################################################################
#Author: Dan Bechard
# Date: May 9, 2013
# Desc: Displays status of all repositories in directory to allow
# the user to easily identify uncommited changes and pending
# commits on the remote.
###################################################################
# Root directory of where you store all of repos