Skip to content

Instantly share code, notes, and snippets.

I may be slow to respond.

Dan Glastonbury djg

I may be slow to respond.
View GitHub Profile
View gist:8996684
if (texture() && texture()->SomeMethod()) {
Texture* tex = texture();
if (tex && tex->SomeMethod()) {
View pilots
Truly superior pilots are those who use their superior judgment to avoid those situations where they might have to use their superior skills.
— cliché
View gist:11203023
// -----------------------------------------------------------------------------
djg / ugh
Created May 12, 2014
GLSL 1.2 -> GLSL 1.5
View ugh
#version 150
out vec4 gl_FragColor
#ifdef GL_ES
precision mediump float;
#define COLOR_PRECISION lowp
uniform COLOR_PRECISION vec4 uRenderColor;
uniform sampler2D uTexture;
View gist:7cae0c28501ab4108510
The GL_TRANSFORM_FEEDBACK_BUFFER buffer binding point may be
passed to glBindBuffer, but will not directly affect transform
feedback state. Instead, the indexed GL_TRANSFORM_FEEDBACK_BUFFER
bindings must be used through a call to glBindBufferBase or
glBindBufferRange. This will affect the generic
Likewise, the GL_UNIFORM_BUFFER buffer binding point may be used,
but does not directly affect uniform buffer
state. glBindBufferBase or glBindBufferRange must be used to bind
View djg.el
;; I'm always opening a buffer in the wrong window. These function
;; help move the newly opened buffer to another window and restore the
;; buffer I was previously looking at.
(defun djg/buf-move (dir errmsg)
(let* ((other-win (windmove-find-other-window dir))
(buf-this-buf (window-buffer (selected-window))))
(if (null other-win)
(error errmsg)
(set-window-buffer other-win buf-this-buf)
djg / gist:7140c17b7f1fa8e8110e
Created Apr 13, 2015
That doesn't seem right...
View gist:7140c17b7f1fa8e8110e
$ ninja && ./xfb
[2/2] clang++ xfb.o deRandom.o gl3w.o -o xfb -lglfw3 -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo
glDrawArrays(0x0000, 0, 64)
glDrawArrays(0x0000, 64, 64)
glDrawArrays(0x0000, 128, 64)
View gist:572eb0acc7c7c9667493
GLuint buf;
glGenBuffers(1, &buf);
// glBindBuffer(GL_UNIFORM, buf); <-- OSX needs this or ...
glBindBufferRange(GL_UNIFORM_BUFFER, 0, buf, 0, 4); // ... this returns GL_INVALID_VALUE
View bsearch
int* bsearch(int val, int* base, int nelems)
if (base == NULL || nelems == 0)
return NULL;
int lo = 0;
int hi = nelems - 1;
for (;;)
View bsearch2.c
int binarysearch(DataType t)
/* return (any) position
if t in sorted x[0..n-1] or
-1 if t is not present */
int l, u, m;
l = 0;
u = n-1;
while (l <= u) {
m = (l + u) / 2;