let gl-error know about GL_INVALID_FRAMEBUFFER_OPERATION_EXT error. add <mrt-gl-program> helper word to link a GL program with named multiple render targets

db4
Joe Groff 2009-06-16 18:14:22 -05:00
parent 226c76aa1f
commit 19d77c5193
2 changed files with 16 additions and 4 deletions

View File

@ -25,6 +25,7 @@ IN: opengl
{ HEX: 0503 "Stack overflow" }
{ HEX: 0504 "Stack underflow" }
{ HEX: 0505 "Out of memory" }
{ HEX: 0506 "Invalid framebuffer operation" }
} at "Unknown error" or ;
TUPLE: gl-error code string ;
@ -190,4 +191,4 @@ MACRO: set-draw-buffers ( buffers -- )
GL_PROJECTION glMatrixMode
glLoadIdentity
GL_MODELVIEW glMatrixMode
glLoadIdentity ;
glLoadIdentity ;

View File

@ -61,10 +61,21 @@ PREDICATE: fragment-shader < gl-shader (fragment-shader?) ;
! Programs
: <mrt-gl-program> ( shaders frag-data-locations -- program )
glCreateProgram
[
[ swap [ glAttachShader ] with each ]
[ swap [ first2 swap glBindFragDataLocationEXT ] with each ] bi-curry bi*
]
[ glLinkProgram ]
[ ] tri
gl-error ;
: <gl-program> ( shaders -- program )
glCreateProgram swap
[ dupd glAttachShader ] each
[ glLinkProgram ] keep
glCreateProgram
[ swap [ glAttachShader ] with each ]
[ glLinkProgram ]
[ ] tri
gl-error ;
: (gl-program?) ( object -- ? )