Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/angle
Path: blob/main_old/include/CL/cl_gl.h
1693 views
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
26
typedef cl_uint cl_gl_object_type;
27
typedef cl_uint cl_gl_texture_info;
28
typedef cl_uint cl_gl_platform_info;
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
51
extern CL_API_ENTRY cl_mem CL_API_CALL
52
clCreateFromGLBuffer(cl_context context,
53
cl_mem_flags flags,
54
cl_GLuint bufobj,
55
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
56
57
#ifdef CL_VERSION_1_2
58
59
extern CL_API_ENTRY cl_mem CL_API_CALL
60
clCreateFromGLTexture(cl_context context,
61
cl_mem_flags flags,
62
cl_GLenum target,
63
cl_GLint miplevel,
64
cl_GLuint texture,
65
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2;
66
67
#endif
68
69
extern CL_API_ENTRY cl_mem CL_API_CALL
70
clCreateFromGLRenderbuffer(cl_context context,
71
cl_mem_flags flags,
72
cl_GLuint renderbuffer,
73
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0;
74
75
extern CL_API_ENTRY cl_int CL_API_CALL
76
clGetGLObjectInfo(cl_mem memobj,
77
cl_gl_object_type * gl_object_type,
78
cl_GLuint * gl_object_name) CL_API_SUFFIX__VERSION_1_0;
79
80
extern CL_API_ENTRY cl_int CL_API_CALL
81
clGetGLTextureInfo(cl_mem memobj,
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
87
extern CL_API_ENTRY cl_int CL_API_CALL
88
clEnqueueAcquireGLObjects(cl_command_queue command_queue,
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,
93
cl_event * event) CL_API_SUFFIX__VERSION_1_0;
94
95
extern CL_API_ENTRY cl_int CL_API_CALL
96
clEnqueueReleaseGLObjects(cl_command_queue command_queue,
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,
101
cl_event * event) CL_API_SUFFIX__VERSION_1_0;
102
103
104
/* Deprecated OpenCL 1.1 APIs */
105
extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
106
clCreateFromGLTexture2D(cl_context context,
107
cl_mem_flags flags,
108
cl_GLenum target,
109
cl_GLint miplevel,
110
cl_GLuint texture,
111
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
112
113
extern CL_API_ENTRY CL_API_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL
114
clCreateFromGLTexture3D(cl_context context,
115
cl_mem_flags flags,
116
cl_GLenum target,
117
cl_GLint miplevel,
118
cl_GLuint texture,
119
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1_DEPRECATED;
120
121
/* cl_khr_gl_sharing extension */
122
123
#define cl_khr_gl_sharing 1
124
125
typedef cl_uint cl_gl_context_info;
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
141
extern CL_API_ENTRY cl_int CL_API_CALL
142
clGetGLContextInfoKHR(const cl_context_properties * properties,
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
148
typedef cl_int (CL_API_CALL *clGetGLContextInfoKHR_fn)(
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
160
extern CL_API_ENTRY cl_event CL_API_CALL
161
clCreateEventFromGLsyncKHR(cl_context context,
162
cl_GLsync sync,
163
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_1;
164
165
#ifdef __cplusplus
166
}
167
#endif
168
169
#endif /* __OPENCL_CL_GL_H */
170
171