| 
									
										
										
										
											2025-01-31 20:05:18 +00:00
										 |  |  | #include <kinc/graphics4/compute.h>
 | 
					
						
							| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  | #include <kinc/graphics4/texture.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include <hl.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-09 21:25:07 +00:00
										 |  |  | vbyte *hl_kinc_compute_create_shader(vbyte *data, int length) { | 
					
						
							| 
									
										
										
										
											2025-01-31 20:35:00 +00:00
										 |  |  | 	kinc_g4_compute_shader *shader = (kinc_g4_compute_shader *)malloc(sizeof(kinc_g4_compute_shader)); | 
					
						
							|  |  |  | 	kinc_g4_compute_shader_init(shader, data, length); | 
					
						
							| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  | 	return (vbyte *)shader; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-09 21:25:07 +00:00
										 |  |  | void hl_kinc_compute_delete_shader(vbyte *shader) { | 
					
						
							| 
									
										
										
										
											2025-01-31 20:35:00 +00:00
										 |  |  | 	kinc_g4_compute_shader *sh = (kinc_g4_compute_shader *)shader; | 
					
						
							|  |  |  | 	kinc_g4_compute_shader_destroy(sh); | 
					
						
							| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  | 	free(sh); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-09 21:25:07 +00:00
										 |  |  | vbyte *hl_kinc_compute_get_constantlocation(vbyte *shader, vbyte *name) { | 
					
						
							| 
									
										
										
										
											2025-01-31 20:35:00 +00:00
										 |  |  | 	kinc_g4_compute_shader *sh = (kinc_g4_compute_shader *)shader; | 
					
						
							|  |  |  | 	kinc_g4_constant_location_t *location = (kinc_g4_constant_location_t *)malloc(sizeof(kinc_g4_constant_location_t)); | 
					
						
							| 
									
										
										
										
											2025-04-09 21:25:07 +00:00
										 |  |  | 	*location = kinc_g4_compute_shader_get_constant_location(sh, (char *)name); | 
					
						
							| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  | 	return (vbyte *)location; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-09 21:25:07 +00:00
										 |  |  | vbyte *hl_kinc_compute_get_textureunit(vbyte *shader, vbyte *name) { | 
					
						
							| 
									
										
										
										
											2025-01-31 20:35:00 +00:00
										 |  |  | 	kinc_g4_compute_shader *sh = (kinc_g4_compute_shader *)shader; | 
					
						
							|  |  |  | 	kinc_g4_texture_unit_t *unit = (kinc_g4_texture_unit_t *)malloc(sizeof(kinc_g4_texture_unit_t)); | 
					
						
							| 
									
										
										
										
											2025-04-09 21:25:07 +00:00
										 |  |  | 	*unit = kinc_g4_compute_shader_get_texture_unit(sh, (char *)name); | 
					
						
							| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  | 	return (vbyte *)unit; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-09 21:25:07 +00:00
										 |  |  | void hl_kinc_set_compute_shader(vbyte *shader) { | 
					
						
							| 
									
										
										
										
											2025-02-01 12:16:54 +00:00
										 |  |  | 	kinc_g4_set_compute_shader((kinc_g4_compute_shader *)shader); | 
					
						
							| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-04-09 21:25:07 +00:00
										 |  |  | void hl_kinc_compute(int x, int y, int z) { | 
					
						
							| 
									
										
										
										
											2025-02-01 12:16:54 +00:00
										 |  |  | 	kinc_g4_compute(x, y, z); | 
					
						
							| 
									
										
										
										
											2025-01-22 16:18:30 +01:00
										 |  |  | } |