clray
diff src/ocl.h @ 41:057b8575a1c1
- changed the membuffer into an imagebuffer for the non-GL/CL-interop case
- fixed the segfault
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Fri, 27 Aug 2010 20:39:55 +0100 |
parents | 1bcbb53b3505 |
children | 8047637961a2 |
line diff
1.1 --- a/src/ocl.h Fri Aug 27 19:00:14 2010 +0100 1.2 +++ b/src/ocl.h Fri Aug 27 20:39:55 2010 +0100 1.3 @@ -22,9 +22,17 @@ 1.4 MAP_RDWR = CL_MAP_READ | CL_MAP_WRITE 1.5 }; 1.6 1.7 +enum { 1.8 + MEM_BUFFER, 1.9 + IMAGE_BUFFER 1.10 +}; 1.11 + 1.12 struct CLMemBuffer { 1.13 + int type; 1.14 cl_mem mem; 1.15 + 1.16 size_t size; 1.17 + size_t xsz, ysz; 1.18 void *ptr; 1.19 unsigned int tex; 1.20 }; 1.21 @@ -34,7 +42,10 @@ 1.22 void destroy_opencl(); 1.23 1.24 CLMemBuffer *create_mem_buffer(int rdwr, size_t sz, const void *buf); 1.25 -CLMemBuffer *create_mem_buffer(int rdwr, unsigned int tex); 1.26 + 1.27 +CLMemBuffer *create_image_buffer(int rdwr, int xsz, int ysz, const void *pixels = 0); 1.28 +CLMemBuffer *create_image_buffer(int rdwr, unsigned int tex); 1.29 + 1.30 void destroy_mem_buffer(CLMemBuffer *mbuf); 1.31 1.32 void *map_mem_buffer(CLMemBuffer *mbuf, int rdwr, cl_event *ev = 0); 1.33 @@ -87,6 +98,7 @@ 1.34 bool set_argi(int arg, int val); 1.35 bool set_argf(int arg, float val); 1.36 bool set_arg_buffer(int arg, int rdwr, size_t sz, const void *buf = 0); 1.37 + bool set_arg_image(int arg, int rdwr, int xsz, int ysz, const void *pix = 0); 1.38 bool set_arg_texture(int arg, int rdwr, unsigned int tex); 1.39 CLMemBuffer *get_arg_buffer(int arg); 1.40 int get_num_args() const;