• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2025 Shenzhen Kaihong Digital Industry Development Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include <stdio.h>
17 
18 #include "app_main.h"
19 
20 #include "ohos_context_i.h"
21 
22 namespace OHOS
23 {
24     class AppContext : public OHOS::OhosContextI
25     {
26     public:
AppContext()27         AppContext() {}
28         bool SetConfig(int32_t w, int32_t h, RCI_GLES_VERSION ver, RCI_PIXEL_FORMAT pf, RCI_SURFACE_TYPE st, RCI_PROFILE tp, RCI_CONTEXT_FLAG flags) override;
29         bool InitNativeWindow() override;
30         bool InitEglSurface() override;
31         bool InitEglContext() override;
32 
33         void MakeCurrent() override;
34         void SwapBuffer() override;
35 
36         int32_t GetAttrib(int32_t attrType) override;
37 
38         uint64_t CreateWindow(uint32_t x, uint32_t y, uint32_t width, uint32_t height) override;
39         void *GetNativeWindow(uint64_t windowId) override;
40         void DestoryWindow(uint64_t windowId) override;
41 
42 
43         void *GetNativeWindowEx() override;
44         void OhosWindowResize(int32_t w,int32_t h) override;
45         void* EglGetConfig() override;
46 
47         uint32_t OH_bindAPI(uint32_t api) override;
48         uint32_t OH_bindTexImage(void* dpy, void* surface, int32_t buffer) override;
49         uint32_t OH_chooseConfig(void* dpy, const int32_t *attrib_list, void* *configs, int32_t config_size, int32_t *num_config) override;
50         int32_t OH_clientWaitSync(void* dpy, void* sync, int32_t flags, uint64_t timeout) override;
51         int32_t OH_clientWaitSyncKHR(void* dpy, void* sync, int32_t flags, uint64_t timeout) override;
52         uint32_t OH_copyBuffers(void* dpy, void* surface, void* target) override;
53         void* OH_createContext(void* dpy, void* config, void* share_context, const int32_t *attrib_list) override;
54         void* OH_createImage(void* dpy, void* ctx, uint32_t target, void* buffer, const int *attrib_list) override;
55         void* OH_createImageKHR(void* dpy, void* ctx, uint32_t target, void* buffer, const int32_t *attrib_list) override;
56         void* OH_createPbufferFromClientBuffer(void* dpy, uint32_t buftype, void* buffer, void* config, const int32_t *attrib_list) override;
57         void* OH_createPbufferSurface(void* dpy, void* config, const int32_t *attrib_list) override;
58         void* OH_createPixmapSurface(void* dpy, void* config, void* pixmap, const int32_t *attrib_list) override;
59         void* OH_createPlatformPixmapSurface(void* dpy, void* config, void *native_pixmap, const int *attrib_list) override;
60         void* OH_createPlatformPixmapSurfaceEXT(void* dpy, void* config, void *native_pixmap, const int32_t *attrib_list) override;
61         void* OH_createPlatformWindowSurface(void* dpy, void* config, void *native_window, const int *attrib_list) override;
62         void* OH_createPlatformWindowSurfaceEXT(void* dpy, void* config, void *native_window, const int32_t *attrib_list) override;
63         void* OH_createSync(void* dpy, uint32_t type, const int *attrib_list) override;
64         void* OH_createSyncKHR(void* dpy, uint32_t type, const int32_t *attrib_list) override;
65         void* OH_createWindowSurface(void* dpy, void* config, void* win, const int32_t *attrib_list) override;
66         uint32_t OH_destroyContext(void* dpy, void* ctx) override;
67         uint32_t OH_destroyImage(void* dpy, void* image) override;
68         uint32_t OH_destroyImageKHR(void* dpy, void* image) override;
69         uint32_t OH_destroySurface(void* dpy, void* surface) override;
70         uint32_t OH_destroySync(void* dpy, void* sync) override;
71         uint32_t OH_destroySyncKHR(void* dpy, void* sync) override;
72         uint32_t OH_getConfigAttrib(void* dpy, void* config, int32_t attribute, int32_t *value) override;
73         uint32_t OH_getConfigs(void* dpy, void* *configs, int32_t config_size, int32_t *num_config) override;
74         void* OH_getCurrentContext() override;
75         void* OH_getCurrentDisplay() override;
76         void* OH_getCurrentSurface(int32_t readdraw) override;
77         void* OH_getDisplay(void* display_id) override;
78         int32_t OH_getError() override;
79         void* OH_getPlatformDisplay(uint32_t platform, void *native_display, const int *attrib_list) override;
80         void* OH_getPlatformDisplayEXT(uint32_t platform, void *native_display, const int32_t *attrib_list) override;
81         FunctionPointer OH_getProcAddress(const char *procname) override;
82         uint32_t OH_getSyncAttrib(void* dpy, void* sync, int32_t attribute, int *value) override;
83         uint32_t OH_getSyncAttribKHR(void* dpy, void* sync, int32_t attribute, int32_t *value) override;
84         uint32_t OH_initialize(void* dpy, int32_t *major, int32_t *minor) override;
85         uint32_t OH_lockSurfaceKHR(void* dpy, void* surface, const int32_t *attrib_list) override;
86         uint32_t OH_makeCurrent(void* dpy, void* draw, void* read, void* ctx) override;
87         uint32_t OH_queryAPI() override;
88         uint32_t OH_queryContext(void* dpy, void* ctx, int32_t attribute, int32_t *value) override;
89         const char* OH_queryString(void* dpy, int32_t name) override;
90         uint32_t OH_querySurface(void* dpy, void* surface, int32_t attribute, int32_t *value) override;
91         uint32_t OH_releaseTexImage(void* dpy, void* surface, int32_t buffer) override;
92         uint32_t OH_releaseThread() override;
93         uint32_t OH_setDamageRegionKHR(void* dpy, void* surface, int32_t *rects, int32_t n_rects) override;
94         uint32_t OH_signalSyncKHR(void* dpy, void* sync, uint32_t mode) override;
95         uint32_t OH_surfaceAttrib(void* dpy, void* surface, int32_t attribute, int32_t value) override;
96         uint32_t OH_swapBuffers(void* dpy, void* surface) override;
97         uint32_t OH_swapBuffersWithDamageKHR(void* dpy, void* surface, int32_t *rects, int32_t n_rects) override;
98         uint32_t OH_swapInterval(void* dpy, int32_t interval) override;
99         uint32_t OH_terminate(void* dpy) override;
100         uint32_t OH_unlockSurfaceKHR(void* dpy, void* surface) override;
101         uint32_t OH_waitClient() override;
102         uint32_t OH_waitGL() override;
103         uint32_t OH_waitNative(int32_t engine) override;
104         uint32_t OH_waitSync(void* dpy, void* sync, int32_t flags) override;
105         int32_t OH_waitSyncKHR(void* dpy, void* sync, int32_t flags) override;
106     };
SetConfig(int32_t w,int32_t h,RCI_GLES_VERSION ver,RCI_PIXEL_FORMAT pf,RCI_SURFACE_TYPE st,RCI_PROFILE tp,RCI_CONTEXT_FLAG flags)107     bool AppContext::SetConfig(int32_t w, int32_t h, RCI_GLES_VERSION ver, RCI_PIXEL_FORMAT pf, RCI_SURFACE_TYPE st, RCI_PROFILE tp, RCI_CONTEXT_FLAG flags)
108     {
109         printf("!!!!!!!!!!!!!!!!!!!!!!SetConfig\n");
110         printf("%d,%d,%d,%d,%d,%d,%d\n",w,h,ver,pf.redBits,st,tp,flags);
111         return true;
112     }
InitNativeWindow()113     bool AppContext::InitNativeWindow()
114     {
115         return true;
116     }
InitEglSurface()117     bool AppContext::InitEglSurface()
118     {
119         return true;
120     }
InitEglContext()121     bool AppContext::InitEglContext()
122     {
123         return true;
124     }
MakeCurrent()125     void AppContext::MakeCurrent()
126     {
127     }
SwapBuffer()128     void AppContext::SwapBuffer()
129     {
130     }
GetAttrib(int32_t attrType)131     int32_t AppContext::GetAttrib(int32_t attrType)
132     {
133         printf("attrType:%d\n",attrType);
134         return 0;
135     }
CreateWindow(uint32_t x,uint32_t y,uint32_t width,uint32_t height)136     uint64_t AppContext::CreateWindow(uint32_t x, uint32_t y, uint32_t width, uint32_t height)
137     {
138         printf("x:%d,y:%d,width:%d,height:%d\n",x,y,width,height);
139         return 0;
140     }
GetNativeWindow(uint64_t windowId)141     void *AppContext::GetNativeWindow(uint64_t windowId)
142     {
143         printf("windowId:%llu\n",windowId);
144         return nullptr;
145     }
DestoryWindow(uint64_t windowId)146     void AppContext::DestoryWindow(uint64_t windowId)
147     {
148         printf("windowId:%llu\n",windowId);
149     }
150 
GetNativeWindowEx()151     void *AppContext::GetNativeWindowEx()
152     {
153         return nullptr;
154     }
OhosWindowResize(int32_t w,int32_t h)155     void AppContext::OhosWindowResize(int32_t w,int32_t h)
156     {
157         printf("w:%d,h:%d\n",w,h);
158     }
EglGetConfig()159     void* AppContext::EglGetConfig()
160     {
161         return nullptr;
162     }
163 
OH_bindAPI(uint32_t api)164     uint32_t AppContext::OH_bindAPI(uint32_t api)
165     {
166         printf("api:%d\n",api);
167         return 0;
168     }
OH_bindTexImage(void * dpy,void * surface,int32_t buffer)169     uint32_t AppContext::OH_bindTexImage(void* dpy, void* surface, int32_t buffer)
170     {
171         printf("dpy:%p,surface:%p,buffer:%d\n",dpy,surface,buffer);
172         return 0;
173     }
OH_chooseConfig(void * dpy,const int32_t * attrib_list,void ** configs,int32_t config_size,int32_t * num_config)174     uint32_t AppContext::OH_chooseConfig(void* dpy, const int32_t *attrib_list, void* *configs, int32_t config_size, int32_t *num_config)
175     {
176         printf("dpy:%p,attrib_list:%p,configs:%p,config_size:%d,num_config:%p\n",dpy,attrib_list,configs,config_size,num_config);
177         return 0;
178     }
OH_clientWaitSync(void * dpy,void * sync,int32_t flags,uint64_t timeout)179     int32_t AppContext::OH_clientWaitSync(void* dpy, void* sync, int32_t flags, uint64_t timeout)
180     {
181         printf("dpy:%p,sync:%p,flags:%d,timeout:%llu\n",dpy,sync,flags,timeout);
182         return 0;
183     }
OH_clientWaitSyncKHR(void * dpy,void * sync,int32_t flags,uint64_t timeout)184     int32_t AppContext::OH_clientWaitSyncKHR(void* dpy, void* sync, int32_t flags, uint64_t timeout)
185     {
186         printf("dpy:%p,sync:%p,flags:%d,timeout:%llu\n",dpy,sync,flags,timeout);
187         return 0;
188     }
OH_copyBuffers(void * dpy,void * surface,void * target)189     uint32_t AppContext::OH_copyBuffers(void* dpy, void* surface, void* target)
190     {
191         printf("dpy:%p,surface:%p,target:%p\n",dpy,surface,target);
192         return 0;
193     }
OH_createContext(void * dpy,void * config,void * share_context,const int32_t * attrib_list)194     void* AppContext::OH_createContext(void* dpy, void* config, void* share_context, const int32_t *attrib_list)
195     {
196         printf("dpy:%p,config:%p,share_context:%p,attrib_list:%p\n",dpy,config,share_context,attrib_list);
197         return nullptr;
198     }
OH_createImage(void * dpy,void * ctx,uint32_t target,void * buffer,const int * attrib_list)199     void* AppContext::OH_createImage(void* dpy, void* ctx, uint32_t target, void* buffer, const int *attrib_list)
200     {
201         printf("dpy:%p,ctx:%p,target:%d,buffer:%p,attrib_list:%p\n",dpy,ctx,target,buffer,attrib_list);
202         return nullptr;
203     }
OH_createImageKHR(void * dpy,void * ctx,uint32_t target,void * buffer,const int32_t * attrib_list)204     void* AppContext::OH_createImageKHR(void* dpy, void* ctx, uint32_t target, void* buffer, const int32_t *attrib_list)
205     {
206         printf("dpy:%p,ctx:%p,target:%d,buffer:%p,attrib_list:%p\n",dpy,ctx,target,buffer,attrib_list);
207         return nullptr;
208     }
OH_createPbufferFromClientBuffer(void * dpy,uint32_t buftype,void * buffer,void * config,const int32_t * attrib_list)209     void* AppContext::OH_createPbufferFromClientBuffer(void* dpy, uint32_t buftype, void* buffer, void* config, const int32_t *attrib_list)
210     {
211         printf("dpy:%p,buftype:%d,buffer:%p,config:%p,attrib_list:%p\n",dpy,buftype,buffer,config,attrib_list);
212         return nullptr;
213     }
OH_createPbufferSurface(void * dpy,void * config,const int32_t * attrib_list)214     void* AppContext::OH_createPbufferSurface(void* dpy, void* config, const int32_t *attrib_list)
215     {
216         printf("dpy:%p,config:%p,attrib_list:%p\n",dpy,config,attrib_list);
217         return nullptr;
218     }
OH_createPixmapSurface(void * dpy,void * config,void * pixmap,const int32_t * attrib_list)219     void* AppContext::OH_createPixmapSurface(void* dpy, void* config, void* pixmap, const int32_t *attrib_list)
220     {
221         printf("dpy:%p,config:%p,pixmap:%p,attrib_list:%p\n",dpy,config,pixmap,attrib_list);
222         return nullptr;
223     }
OH_createPlatformPixmapSurface(void * dpy,void * config,void * native_pixmap,const int * attrib_list)224     void* AppContext::OH_createPlatformPixmapSurface(void* dpy, void* config, void *native_pixmap, const int *attrib_list)
225     {
226         printf("dpy:%p,config:%p,native_pixmap:%p,attrib_list:%p\n",dpy,config,native_pixmap,attrib_list);
227         return nullptr;
228     }
OH_createPlatformPixmapSurfaceEXT(void * dpy,void * config,void * native_pixmap,const int32_t * attrib_list)229     void* AppContext::OH_createPlatformPixmapSurfaceEXT(void* dpy, void* config, void *native_pixmap, const int32_t *attrib_list)
230     {
231         printf("dpy:%p,config:%p,native_pixmap:%p,attrib_list:%p\n",dpy,config,native_pixmap,attrib_list);
232         return nullptr;
233     }
OH_createPlatformWindowSurface(void * dpy,void * config,void * native_window,const int * attrib_list)234     void* AppContext::OH_createPlatformWindowSurface(void* dpy, void* config, void *native_window, const int *attrib_list)
235     {
236         printf("dpy:%p,config:%p,native_window:%p,attrib_list:%p\n",dpy,config,native_window,attrib_list);
237         return nullptr;
238     }
OH_createPlatformWindowSurfaceEXT(void * dpy,void * config,void * native_window,const int32_t * attrib_list)239     void* AppContext::OH_createPlatformWindowSurfaceEXT(void* dpy, void* config, void *native_window, const int32_t *attrib_list)
240     {
241         printf("dpy:%p,config:%p,native_window:%p,attrib_list:%p\n",dpy,config,native_window,attrib_list);
242         return nullptr;
243     }
OH_createSync(void * dpy,uint32_t type,const int * attrib_list)244     void* AppContext::OH_createSync(void* dpy, uint32_t type, const int *attrib_list)
245     {
246         printf("dpy:%p,type:%d,attrib_list:%p\n",dpy,type,attrib_list);
247         return nullptr;
248     }
OH_createSyncKHR(void * dpy,uint32_t type,const int32_t * attrib_list)249     void* AppContext::OH_createSyncKHR(void* dpy, uint32_t type, const int32_t *attrib_list)
250     {
251         printf("dpy:%p,type:%d,attrib_list:%p\n",dpy,type,attrib_list);
252         return nullptr;
253     }
OH_createWindowSurface(void * dpy,void * config,void * win,const int32_t * attrib_list)254     void* AppContext::OH_createWindowSurface(void* dpy, void* config, void* win, const int32_t *attrib_list)
255     {
256         printf("dpy:%p,config:%p,win:%p,attrib_list:%p\n",dpy,config,win,attrib_list);
257         return nullptr;
258     }
OH_destroyContext(void * dpy,void * ctx)259     uint32_t AppContext::OH_destroyContext(void* dpy, void* ctx)
260     {
261         printf("dpy:%p,ctx:%p\n",dpy,ctx);
262         return 0;
263     }
OH_destroyImage(void * dpy,void * image)264     uint32_t AppContext::OH_destroyImage(void* dpy, void* image)
265     {
266         printf("dpy:%p,image:%p\n",dpy,image);
267         return 0;
268     }
OH_destroyImageKHR(void * dpy,void * image)269     uint32_t AppContext::OH_destroyImageKHR(void* dpy, void* image)
270     {
271         printf("dpy:%p,image:%p\n",dpy,image);
272         return 0;
273     }
OH_destroySurface(void * dpy,void * surface)274     uint32_t AppContext::OH_destroySurface(void* dpy, void* surface)
275     {
276         printf("dpy:%p,surface:%p\n",dpy,surface);
277         return 0;
278     }
OH_destroySync(void * dpy,void * sync)279     uint32_t AppContext::OH_destroySync(void* dpy, void* sync)
280     {
281         printf("dpy:%p,sync:%p\n",dpy,sync);
282         return 0;
283     }
OH_destroySyncKHR(void * dpy,void * sync)284     uint32_t AppContext::OH_destroySyncKHR(void* dpy, void* sync)
285     {
286         printf("dpy:%p,sync:%p\n",dpy,sync);
287         return 0;
288     }
OH_getConfigAttrib(void * dpy,void * config,int32_t attribute,int32_t * value)289     uint32_t AppContext::OH_getConfigAttrib(void* dpy, void* config, int32_t attribute, int32_t *value)
290     {
291         printf("dpy:%p,config:%p,attribute:%d,value:%p\n",dpy,config,attribute,value);
292         return 0;
293     }
OH_getConfigs(void * dpy,void ** configs,int32_t config_size,int32_t * num_config)294     uint32_t AppContext::OH_getConfigs(void* dpy, void* *configs, int32_t config_size, int32_t *num_config)
295     {
296         printf("dpy:%p,configs:%p,config_size:%d,num_config:%p\n",dpy,configs,config_size,num_config);
297         return 0;
298     }
OH_getCurrentContext()299     void* AppContext::OH_getCurrentContext()
300     {
301         printf("OH_getCurrentContext\n");
302         return nullptr;
303     }
OH_getCurrentDisplay()304     void* AppContext::OH_getCurrentDisplay()
305     {
306         printf("OH_getCurrentDisplay\n");
307         return nullptr;
308     }
OH_getCurrentSurface(int32_t readdraw)309     void* AppContext::OH_getCurrentSurface(int32_t readdraw)
310     {
311         printf("readdraw:%d\n",readdraw);
312         return nullptr;
313     }
OH_getDisplay(void * display_id)314     void* AppContext::OH_getDisplay(void* display_id)
315     {
316         printf("display_id:%p\n",display_id);
317         return nullptr;
318     }
OH_getError()319     int32_t AppContext::OH_getError()
320     {
321         printf("OH_getError\n");
322         return 0;
323     }
OH_getPlatformDisplay(uint32_t platform,void * native_display,const int * attrib_list)324     void* AppContext::OH_getPlatformDisplay(uint32_t platform, void *native_display, const int *attrib_list)
325     {
326         printf("platform:%d,native_display:%p,attrib_list:%p\n",platform,native_display,attrib_list);
327         return nullptr;
328     }
OH_getPlatformDisplayEXT(uint32_t platform,void * native_display,const int32_t * attrib_list)329     void* AppContext::OH_getPlatformDisplayEXT(uint32_t platform, void *native_display, const int32_t *attrib_list)
330     {
331         printf("platform:%d,native_display:%p,attrib_list:%p\n",platform,native_display,attrib_list);
332         return nullptr;
333     }
OH_getProcAddress(const char * procname)334     FunctionPointer AppContext::OH_getProcAddress(const char *procname)
335     {
336         printf("procname:%s\n",procname);
337         return nullptr;
338     }
OH_getSyncAttrib(void * dpy,void * sync,int32_t attribute,int * value)339     uint32_t AppContext::OH_getSyncAttrib(void* dpy, void* sync, int32_t attribute, int *value)
340     {
341         printf("dpy:%p,sync:%p,attribute:%d,value:%p\n",dpy,sync,attribute,value);
342         return 0;
343     }
OH_getSyncAttribKHR(void * dpy,void * sync,int32_t attribute,int32_t * value)344     uint32_t AppContext::OH_getSyncAttribKHR(void* dpy, void* sync, int32_t attribute, int32_t *value)
345     {
346         printf("dpy:%p,sync:%p,attribute:%d,value:%p\n",dpy,sync,attribute,value);
347         return 0;
348     }
OH_initialize(void * dpy,int32_t * major,int32_t * minor)349     uint32_t AppContext::OH_initialize(void* dpy, int32_t *major, int32_t *minor)
350     {
351         printf("dpy:%p,major:%p,minor:%p\n",dpy,major,minor);
352         return 0;
353     }
OH_lockSurfaceKHR(void * dpy,void * surface,const int32_t * attrib_list)354     uint32_t AppContext::OH_lockSurfaceKHR(void* dpy, void* surface, const int32_t *attrib_list)
355     {
356         printf("dpy:%p,surface:%p,attrib_list:%p\n",dpy,surface,attrib_list);
357         return 0;
358     }
OH_makeCurrent(void * dpy,void * draw,void * read,void * ctx)359     uint32_t AppContext::OH_makeCurrent(void* dpy, void* draw, void* read, void* ctx)
360     {
361         printf("dpy:%p,draw:%p,read:%p,ctx:%p\n",dpy,draw,read,ctx);
362         return 0;
363     }
OH_queryAPI()364     uint32_t AppContext::OH_queryAPI()
365     {
366         printf("OH_queryAPI\n");
367         return 0;
368     }
OH_queryContext(void * dpy,void * ctx,int32_t attribute,int32_t * value)369     uint32_t AppContext::OH_queryContext(void* dpy, void* ctx, int32_t attribute, int32_t *value)
370     {
371         printf("dpy:%p,ctx:%p,attribute:%d,value:%p\n",dpy,ctx,attribute,value);
372         return 0;
373     }
OH_queryString(void * dpy,int32_t name)374     const char* AppContext::OH_queryString(void* dpy, int32_t name)
375     {
376         printf("dpy:%p,name:%d\n",dpy,name);
377         return nullptr;
378     }
OH_querySurface(void * dpy,void * surface,int32_t attribute,int32_t * value)379     uint32_t AppContext::OH_querySurface(void* dpy, void* surface, int32_t attribute, int32_t *value)
380     {
381         printf("dpy:%p,surface:%p,attribute:%d,value:%p\n",dpy,surface,attribute,value);
382         return 0;
383     }
OH_releaseTexImage(void * dpy,void * surface,int32_t buffer)384     uint32_t AppContext::OH_releaseTexImage(void* dpy, void* surface, int32_t buffer)
385     {
386         printf("dpy:%p,surface:%p,buffer:%d\n",dpy,surface,buffer);
387         return 0;
388     }
OH_releaseThread()389     uint32_t AppContext::OH_releaseThread()
390     {
391         printf("OH_releaseThread\n");
392         return 0;
393     }
OH_setDamageRegionKHR(void * dpy,void * surface,int32_t * rects,int32_t n_rects)394     uint32_t AppContext::OH_setDamageRegionKHR(void* dpy, void* surface, int32_t *rects, int32_t n_rects)
395     {
396         printf("dpy:%p,surface:%p,rects:%p,n_rects:%d\n",dpy,surface,rects,n_rects);
397         return 0;
398     }
OH_signalSyncKHR(void * dpy,void * sync,uint32_t mode)399     uint32_t AppContext::OH_signalSyncKHR(void* dpy, void* sync, uint32_t mode)
400     {
401         printf("dpy:%p,sync:%p,mode:%d\n",dpy,sync,mode);
402         return 0;
403     }
OH_surfaceAttrib(void * dpy,void * surface,int32_t attribute,int32_t value)404     uint32_t AppContext::OH_surfaceAttrib(void* dpy, void* surface, int32_t attribute, int32_t value)
405     {
406         printf("dpy:%p,surface:%p,attribute:%d,value:%d\n",dpy,surface,attribute,value);
407         return 0;
408     }
OH_swapBuffers(void * dpy,void * surface)409     uint32_t AppContext::OH_swapBuffers(void* dpy, void* surface)
410     {
411         printf("dpy:%p,surface:%p\n",dpy,surface);
412         return 0;
413     }
OH_swapBuffersWithDamageKHR(void * dpy,void * surface,int32_t * rects,int32_t n_rects)414     uint32_t AppContext::OH_swapBuffersWithDamageKHR(void* dpy, void* surface, int32_t *rects, int32_t n_rects)
415     {
416         printf("dpy:%p,surface:%p,rects:%p,n_rects:%d\n",dpy,surface,rects,n_rects);
417         return 0;
418     }
OH_swapInterval(void * dpy,int32_t interval)419     uint32_t AppContext::OH_swapInterval(void* dpy, int32_t interval)
420     {
421         printf("dpy:%p,interval:%d\n",dpy,interval);
422         return 0;
423     }
OH_terminate(void * dpy)424     uint32_t AppContext::OH_terminate(void* dpy)
425     {
426         printf("dpy:%p\n",dpy);
427         return 0;
428     }
OH_unlockSurfaceKHR(void * dpy,void * surface)429     uint32_t AppContext::OH_unlockSurfaceKHR(void* dpy, void* surface)
430     {
431         printf("dpy:%p,surface:%p\n",dpy,surface);
432         return 0;
433     }
OH_waitClient()434     uint32_t AppContext::OH_waitClient()
435     {
436         printf("OH_waitClient\n");
437         return 0;
438     }
OH_waitGL()439     uint32_t AppContext::OH_waitGL()
440     {
441         printf("OH_waitGL\n");
442         return 0;
443     }
OH_waitNative(int32_t engine)444     uint32_t AppContext::OH_waitNative(int32_t engine)
445     {
446         printf("engine:%d\n",engine);
447         return 0;
448     }
OH_waitSync(void * dpy,void * sync,int32_t flags)449     uint32_t AppContext::OH_waitSync(void* dpy, void* sync, int32_t flags)
450     {
451         printf("dpy:%p,sync:%p,flags:%d\n",dpy,sync,flags);
452         return 0;
453     }
OH_waitSyncKHR(void * dpy,void * sync,int32_t flags)454     int32_t AppContext::OH_waitSyncKHR(void* dpy, void* sync, int32_t flags)
455     {
456         printf("dpy:%p,sync:%p,flags:%d\n",dpy,sync,flags);
457         return 0;
458     }
459 }
460 
main(int argc,char ** argv)461 int main(int argc, char **argv)
462 {
463     OHOS::AppContext appContext;
464     OHOS::OhosContextI::SetInstance((void *)&appContext);
465     // main1(argc, argv);
466     // 构造argc和argv
467     int32_t argCount = 1;
468     char *argArray[1] = {"glcts"};
469     // 调用main1函数
470     main1(argCount, argArray);
471     return 0;
472 }