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: 0503 "Stack overflow" }
|
||||||
{ HEX: 0504 "Stack underflow" }
|
{ HEX: 0504 "Stack underflow" }
|
||||||
{ HEX: 0505 "Out of memory" }
|
{ HEX: 0505 "Out of memory" }
|
||||||
|
{ HEX: 0506 "Invalid framebuffer operation" }
|
||||||
} at "Unknown error" or ;
|
} at "Unknown error" or ;
|
||||||
|
|
||||||
TUPLE: gl-error code string ;
|
TUPLE: gl-error code string ;
|
||||||
|
@ -190,4 +191,4 @@ MACRO: set-draw-buffers ( buffers -- )
|
||||||
GL_PROJECTION glMatrixMode
|
GL_PROJECTION glMatrixMode
|
||||||
glLoadIdentity
|
glLoadIdentity
|
||||||
GL_MODELVIEW glMatrixMode
|
GL_MODELVIEW glMatrixMode
|
||||||
glLoadIdentity ;
|
glLoadIdentity ;
|
||||||
|
|
|
@ -61,10 +61,21 @@ PREDICATE: fragment-shader < gl-shader (fragment-shader?) ;
|
||||||
|
|
||||||
! Programs
|
! 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 )
|
: <gl-program> ( shaders -- program )
|
||||||
glCreateProgram swap
|
glCreateProgram
|
||||||
[ dupd glAttachShader ] each
|
[ swap [ glAttachShader ] with each ]
|
||||||
[ glLinkProgram ] keep
|
[ glLinkProgram ]
|
||||||
|
[ ] tri
|
||||||
gl-error ;
|
gl-error ;
|
||||||
|
|
||||||
: (gl-program?) ( object -- ? )
|
: (gl-program?) ( object -- ? )
|
||||||
|
|
Loading…
Reference in New Issue