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 ; | ||||||
|  |  | ||||||
|  | @ -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