… | |
… | |
775 | NEED_SUCCESS_ARG (cl_mem mem, CreateFromGLTexture3D, (self, flags, target, miplevel, texture, &res)); |
775 | NEED_SUCCESS_ARG (cl_mem mem, CreateFromGLTexture3D, (self, flags, target, miplevel, texture, &res)); |
776 | XPUSH_NEW_OBJ ("OpenCL::Image3D", mem); |
776 | XPUSH_NEW_OBJ ("OpenCL::Image3D", mem); |
777 | |
777 | |
778 | #endif |
778 | #endif |
779 | |
779 | |
|
|
780 | #if CL_VERSION_1_2 |
|
|
781 | |
|
|
782 | void |
|
|
783 | gl_texture (OpenCL::Context self, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, cl_GLuint texture) |
|
|
784 | PPCODE: |
|
|
785 | char *klass = "OpenCL::Memory"; |
|
|
786 | cl_gl_object_type t; |
|
|
787 | NEED_SUCCESS_ARG (cl_mem mem, CreateFromGLTexture2D, (self, flags, target, miplevel, texture, &res)); |
|
|
788 | NEED_SUCCESS (GetGLObjectInfo, (mem, &t, 0)); |
|
|
789 | switch (t) |
|
|
790 | { |
|
|
791 | case CL_GL_OBJECT_TEXTURE_BUFFER: klass = "OpenCL::Image1DBuffer"; break; |
|
|
792 | case CL_GL_OBJECT_TEXTURE1D: klass = "OpenCL::Image1D"; break; |
|
|
793 | case CL_GL_OBJECT_TEXTURE1D_ARRAY: klass = "OpenCL::Image2DArray"; break; |
|
|
794 | case CL_GL_OBJECT_TEXTURE2D: klass = "OpenCL::Image2D"; break; |
|
|
795 | case CL_GL_OBJECT_TEXTURE2D_ARRAY: klass = "OpenCL::Image2DArray"; break; |
|
|
796 | case CL_GL_OBJECT_TEXTURE3D: klass = "OpenCL::Image3D"; break; |
|
|
797 | } |
|
|
798 | XPUSH_NEW_OBJ (klass, mem); |
|
|
799 | |
|
|
800 | #endif |
|
|
801 | |
780 | void |
802 | void |
781 | gl_renderbuffer (OpenCL::Context self, cl_mem_flags flags, cl_GLuint renderbuffer) |
803 | gl_renderbuffer (OpenCL::Context self, cl_mem_flags flags, cl_GLuint renderbuffer) |
782 | PPCODE: |
804 | PPCODE: |
783 | NEED_SUCCESS_ARG (cl_mem mem, CreateFromGLRenderbuffer, (self, flags, renderbuffer, &res)); |
805 | NEED_SUCCESS_ARG (cl_mem mem, CreateFromGLRenderbuffer, (self, flags, renderbuffer, &res)); |
784 | XPUSH_NEW_OBJ ("OpenCL::Image2D", mem); |
806 | XPUSH_NEW_OBJ ("OpenCL::Image2D", mem); |