Skip to content

Instantly share code, notes, and snippets.

View djg's full-sized avatar
💭
I may be slow to respond.

Dan Glastonbury djg

💭
I may be slow to respond.
View GitHub Profile
if (texture() && texture()->SomeMethod()) {
texture()->SomeOtherMethod()->FooBar();
}
vs
Texture* tex = texture();
if (tex && tex->SomeMethod()) {
tex->SomeOtherMethod()->FooBar();
}
@djg
djg / pilots
Created February 17, 2014 00:27
Truly superior pilots are those who use their superior judgment to avoid those situations where they might have to use their superior skills.
— cliché
// -----------------------------------------------------------------------------
// PUBLIC
public:
@djg
djg / ugh
Created May 12, 2014 07:51
GLSL 1.2 -> GLSL 1.5
#version 150
out vec4 gl_FragColor
#ifdef GL_ES
precision mediump float;
#define COLOR_PRECISION lowp
#else
#define COLOR_PRECISION
#endif
uniform COLOR_PRECISION vec4 uRenderColor;
uniform sampler2D uTexture;
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
GL_TRANSFORM_FEEDBACK_BUFFER binding.
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
@djg
djg / djg.el
Last active August 29, 2015 14:02
;; 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)
(switch-to-prev-buffer))))
@djg
djg / gist:7140c17b7f1fa8e8110e
Created April 13, 2015 06:53
That doesn't seem right...
$ 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)
pauseTransformFeedback
glDrawArrays(0x0000, 64, 64)
resumeTransformFeedback
glDrawArrays(0x0000, 128, 64)
GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 64
@djg
djg / gist:572eb0acc7c7c9667493
Created May 21, 2015 01:25
glBindBufferRange
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
int* bsearch(int val, int* base, int nelems)
{
if (base == NULL || nelems == 0)
return NULL;
int lo = 0;
int hi = nelems - 1;
for (;;)
{
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;