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
parent
226c76aa1f
commit
19d77c5193
|
@ -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 ;
|
||||
|
|
|
@ -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 -- ? )
|
||||
|
|
Loading…
Reference in New Issue