HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
cl_gl.h
Go to the documentation of this file.
1 /*******************************************************************************
2  * Copyright (c) 2008-2021 The Khronos Group Inc.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  ******************************************************************************/
16 
17 #ifndef __OPENCL_CL_GL_H
18 #define __OPENCL_CL_GL_H
19 
20 #include <CL/cl.h>
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
29 typedef struct __GLsync *cl_GLsync;
30 
31 /* cl_gl_object_type = 0x2000 - 0x200F enum values are currently taken */
32 #define CL_GL_OBJECT_BUFFER 0x2000
33 #define CL_GL_OBJECT_TEXTURE2D 0x2001
34 #define CL_GL_OBJECT_TEXTURE3D 0x2002
35 #define CL_GL_OBJECT_RENDERBUFFER 0x2003
36 #ifdef CL_VERSION_1_2
37 #define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E
38 #define CL_GL_OBJECT_TEXTURE1D 0x200F
39 #define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010
40 #define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011
41 #endif
42 
43 /* cl_gl_texture_info */
44 #define CL_GL_TEXTURE_TARGET 0x2004
45 #define CL_GL_MIPMAP_LEVEL 0x2005
46 #ifdef CL_VERSION_1_2
47 #define CL_GL_NUM_SAMPLES 0x2012
48 #endif
49 
50 
54  cl_GLuint bufobj,
55  cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
56 
57 #ifdef CL_VERSION_1_2
58 
60 clCreateFromGLTexture(cl_context context,
63  cl_GLint miplevel,
65  cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
66 
67 #endif
68 
73  cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
74 
77  cl_gl_object_type * gl_object_type,
78  cl_GLuint * gl_object_name) CL_API_SUFFIX__VERSION_1_0;
79 
82  cl_gl_texture_info param_name,
83  size_t param_value_size,
84  void * param_value,
85  size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
86 
89  cl_uint num_objects,
90  const cl_mem * mem_objects,
91  cl_uint num_events_in_wait_list,
92  const cl_event * event_wait_list,
94 
97  cl_uint num_objects,
98  const cl_mem * mem_objects,
99  cl_uint num_events_in_wait_list,
100  const cl_event * event_wait_list,
102 
103 
104 /* Deprecated OpenCL 1.1 APIs */
109  cl_GLint miplevel,
112 
117  cl_GLint miplevel,
120 
121 /* cl_khr_gl_sharing extension */
122 
123 #define cl_khr_gl_sharing 1
124 
126 
127 /* Additional Error Codes */
128 #define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000
129 
130 /* cl_gl_context_info */
131 #define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006
132 #define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007
133 
134 /* Additional cl_context_properties */
135 #define CL_GL_CONTEXT_KHR 0x2008
136 #define CL_EGL_DISPLAY_KHR 0x2009
137 #define CL_GLX_DISPLAY_KHR 0x200A
138 #define CL_WGL_HDC_KHR 0x200B
139 #define CL_CGL_SHAREGROUP_KHR 0x200C
140 
143  cl_gl_context_info param_name,
144  size_t param_value_size,
145  void * param_value,
146  size_t * param_value_size_ret) CL_API_SUFFIX__VERSION_1_0;
147 
149  const cl_context_properties * properties,
150  cl_gl_context_info param_name,
151  size_t param_value_size,
152  void * param_value,
153  size_t * param_value_size_ret);
154 
155 /*
156  * cl_khr_gl_event extension
157  */
158 #define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D
159 
162  cl_GLsync sync,
163  cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1;
164 
165 /***************************************************************
166 * cl_intel_sharing_format_query_gl
167 ***************************************************************/
168 #define cl_intel_sharing_format_query_gl 1
169 
170 /* when cl_khr_gl_sharing is supported */
171 
174  cl_context context,
176  cl_mem_object_type image_type,
177  cl_uint num_entries,
178  cl_GLenum* gl_formats,
179  cl_uint* num_texture_formats) ;
180 
181 typedef cl_int (CL_API_CALL *
183  cl_context context,
185  cl_mem_object_type image_type,
186  cl_uint num_entries,
187  cl_GLenum* gl_formats,
188  cl_uint* num_texture_formats) ;
189 
190 #ifdef __cplusplus
191 }
192 #endif
193 
194 #endif /* __OPENCL_CL_GL_H */
uint32_t cl_uint
Definition: cl_platform.h:261
cl_int(CL_API_CALL * clGetGLContextInfoKHR_fn)(const cl_context_properties *properties, cl_gl_context_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret)
Definition: cl_gl.h:148
GLbitfield flags
Definition: glcorearb.h:1596
cl_uint cl_gl_texture_info
Definition: cl_gl.h:27
struct _cl_context * cl_context
Definition: cl.h:31
cl_uint cl_mem_object_type
Definition: cl.h:70
cl_uint cl_gl_platform_info
Definition: cl_gl.h:28
int32_t cl_int
Definition: cl_platform.h:260
#define CL_API_PREFIX__VERSION_1_1_DEPRECATED
Definition: cl_platform.h:101
CL_API_ENTRY cl_mem CL_API_CALL clCreateFromGLBuffer(cl_context context, cl_mem_flags flags, cl_GLuint bufobj, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0
CL_API_ENTRY cl_int CL_API_CALL clGetGLObjectInfo(cl_mem memobj, cl_gl_object_type *gl_object_type, cl_GLuint *gl_object_name) CL_API_SUFFIX__VERSION_1_0
unsigned int cl_GLenum
Definition: cl_platform.h:367
#define CL_API_SUFFIX__VERSION_1_2
Definition: cl_platform.h:69
struct _cl_event * event
Definition: glcorearb.h:2961
#define CL_API_ENTRY
Definition: cl_platform.h:38
cl_int(CL_API_CALL * clGetSupportedGLTextureFormatsINTEL_fn)(cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, cl_uint num_entries, cl_GLenum *gl_formats, cl_uint *num_texture_formats)
Definition: cl_gl.h:182
CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL clCreateFromGLTexture2D(cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, cl_GLuint texture, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED
unsigned int cl_GLuint
Definition: cl_platform.h:365
CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL clCreateFromGLTexture3D(cl_context context, cl_mem_flags flags, cl_GLenum target, cl_GLint miplevel, cl_GLuint texture, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED
GLenum target
Definition: glcorearb.h:1667
struct _cl_mem * cl_mem
Definition: cl.h:33
CL_API_ENTRY cl_int CL_API_CALL clEnqueueReleaseGLObjects(cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_0
CL_API_ENTRY cl_int CL_API_CALL clEnqueueAcquireGLObjects(cl_command_queue command_queue, cl_uint num_objects, const cl_mem *mem_objects, cl_uint num_events_in_wait_list, const cl_event *event_wait_list, cl_event *event) CL_API_SUFFIX__VERSION_1_0
CL_API_ENTRY cl_int CL_API_CALL clGetGLContextInfoKHR(const cl_context_properties *properties, cl_gl_context_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
CL_API_ENTRY cl_event CL_API_CALL clCreateEventFromGLsyncKHR(cl_context context, cl_GLsync sync, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_1
intptr_t cl_context_properties
Definition: cl.h:58
struct _cl_event * cl_event
Definition: cl.h:36
struct _cl_command_queue * cl_command_queue
Definition: cl.h:32
CL_API_ENTRY cl_int CL_API_CALL clGetSupportedGLTextureFormatsINTEL(cl_context context, cl_mem_flags flags, cl_mem_object_type image_type, cl_uint num_entries, cl_GLenum *gl_formats, cl_uint *num_texture_formats)
struct __GLsync * cl_GLsync
Definition: cl_gl.h:29
CL_API_ENTRY cl_int CL_API_CALL clGetGLTextureInfo(cl_mem memobj, cl_gl_texture_info param_name, size_t param_value_size, void *param_value, size_t *param_value_size_ret) CL_API_SUFFIX__VERSION_1_0
CL_API_ENTRY cl_mem CL_API_CALL clCreateFromGLRenderbuffer(cl_context context, cl_mem_flags flags, cl_GLuint renderbuffer, cl_int *errcode_ret) CL_API_SUFFIX__VERSION_1_0
GLuint renderbuffer
Definition: glcorearb.h:1281
#define CL_API_SUFFIX__VERSION_1_1
Definition: cl_platform.h:68
#define CL_API_SUFFIX__VERSION_1_0
Definition: cl_platform.h:67
GLuint texture
Definition: glcorearb.h:415
#define CL_API_CALL
Definition: cl_platform.h:41
int cl_GLint
Definition: cl_platform.h:366
cl_uint cl_gl_context_info
Definition: cl_gl.h:125
cl_uint cl_gl_object_type
Definition: cl_gl.h:26
cl_bitfield cl_mem_flags
Definition: cl.h:66
#define CL_API_SUFFIX__VERSION_1_1_DEPRECATED
Definition: cl_platform.h:100