Skip to content

Instantly share code, notes, and snippets.

Geoff Catlin gcatlin

View GitHub Profile
@gcatlin
gcatlin / sdl-metal-example.m
Last active Jun 28, 2020
Minimal C SDL2 Metal example
View sdl-metal-example.m
//
// cc sdl-metal-example.m -framework SDL2 -framework Metal -framework QuartzCore
//
#include <SDL2/SDL.h>
#import <Metal/Metal.h>
#import <QuartzCore/CAMetalLayer.h>
int main (int argc, char *args[])
{
SDL_SetHint(SDL_HINT_RENDER_DRIVER, "metal");
@gcatlin
gcatlin / glfw-metal-example.m
Last active Jun 19, 2020
Minimal C GLFW Metal example
View glfw-metal-example.m
//
// cc glfw-metal-example.m -lGLFW -framework AppKit -framework Metal -framework QuartzCore
//
#define GLFW_INCLUDE_NONE
#define GLFW_EXPOSE_NATIVE_COCOA
#include <GLFW/glfw3.h>
#include <GLFW/glfw3native.h>
#import <Metal/Metal.h>
#import <QuartzCore/CAMetalLayer.h>
@gcatlin
gcatlin / gist:1847248
Created Feb 16, 2012
Install specific version of Homebrew formula
View gist:1847248
brew update
brew versions FORMULA
cd `brew --prefix`
git checkout HASH Library/Formula/FORMULA.rb # use output of "brew versions"
brew install FORMULA
brew switch FORMULA VERSION
git checkout -- Library/Formula/FORMULA.rb # reset formula
## Example: Using Subversion 1.6.17
#
@gcatlin
gcatlin / core-audio-sine-wave.c
Last active Jun 1, 2020
Core Audio sine wave example
View core-audio-sine-wave.c
// To run:
// clang core-audio-sine-wave.c -framework AudioUnit && ./a.out
#include <AudioUnit/AudioUnit.h>
#define SAMPLE_RATE 48000
#define TONE_FREQUENCY 440
#define M_TAU 2.0 * M_PI
OSStatus RenderSineWave(
void *inRefCon,
@gcatlin
gcatlin / ncurses.diff
Created Jul 12, 2012
Homebrew Ncurses clang patch
View ncurses.diff
diff --git a/ncurses.rb b/ncurses.rb
index 1067083..8cc12bc 100644
--- a/ncurses.rb
+++ b/ncurses.rb
@@ -23,4 +23,9 @@ class Ncurses < Formula
system "make"
system "make install"
end
+
+ def patches
@gcatlin
gcatlin / glfw-opengl-example.c
Last active May 22, 2019
Minimal C GLFW OpenGL example
View glfw-opengl-example.c
//
// cc glfw-opengl-example.c glad.c -lglfw
//
#include "glad.h" // https://glad.dav1d.de/
#include <GLFW/glfw3.h>
static void quit(GLFWwindow *window, int key, int scancode, int action, int mods)
{
if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS) {
glfwSetWindowShouldClose(window, GLFW_TRUE);
View keybase.md

Keybase proof

I hereby claim:

  • I am gcatlin on github.
  • I am gcatlin (https://keybase.io/gcatlin) on keybase.
  • I have a public key ASDOkhxPwBV28ND_Pzm3rzNcVWViUFUakYvCgFb8dC-kiQo

To claim this, I am signing this object:

@gcatlin
gcatlin / gist:1897059
Created Feb 24, 2012
Set short keyboard delay and fast repeat rate on OS X
View gist:1897059
# Source: http://quickies.seriot.ch/index.php?id=411
defaults write NSGlobalDomain InitialKeyRepeat -int 7
defaults write NSGlobalDomain KeyRepeat -int 0
@gcatlin
gcatlin / sdl-opengl-example.c
Last active Nov 30, 2018
Minimal C SDL2 OpenGL example
View sdl-opengl-example.c
//
// cc main.c glad.c -lSDL2
//
#include "glad.h" // https://glad.dav1d.de/
#include <SDL2/SDL.h>
#include <SDL2/SDL_opengl.h>
#include <stdbool.h>
int main()
{
@gcatlin
gcatlin / multiple-error-handlers.php
Created May 30, 2013
Adds support for multiple error handlers in PHP
View multiple-error-handlers.php
<?php
function append_error_handler($handler) {
set_error_handlers(array(set_error_handler($handler), $handler));
}
function prepend_error_handler($handler) {
set_error_handlers(array($handler, set_error_handler($handler)));
}
You can’t perform that action at this time.