Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(152)

Side by Side Diff: mojo/public/platform/nacl/libmojo.cc

Issue 1413683003: Expose MGL interface through NaCl IRT (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // WARNING this file was generated by generate_nacl_bindings.py 5 // WARNING this file was generated by generate_nacl_bindings.py
6 // Do not edit by hand. 6 // Do not edit by hand.
7 7
8 #include "mojo/public/c/system/core.h" 8 #include "mojo/public/c/system/core.h"
9 #include "mojo/public/platform/nacl/mojo_irt.h" 9 #include "mojo/public/platform/nacl/mojo_irt.h"
10 #include "native_client/src/public/chrome_main.h" 10 #include "native_client/src/public/chrome_main.h"
(...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 handles, num_handles, flags); 218 handles, num_handles, flags);
219 } 219 }
220 220
221 MojoResult _MojoGetInitialHandle(MojoHandle* handle) { 221 MojoResult _MojoGetInitialHandle(MojoHandle* handle) {
222 struct nacl_irt_mojo* irt_mojo = get_irt_mojo(); 222 struct nacl_irt_mojo* irt_mojo = get_irt_mojo();
223 if (irt_mojo == NULL) 223 if (irt_mojo == NULL)
224 return MOJO_RESULT_INTERNAL; 224 return MOJO_RESULT_INTERNAL;
225 return irt_mojo->_MojoGetInitialHandle(handle); 225 return irt_mojo->_MojoGetInitialHandle(handle);
226 } 226 }
227 227
228 bool g_irt_mgl_valid = false;
Mark Seaborn 2015/10/17 01:08:08 I realise you are copying the existing pattern for
Petr Hosek 2015/10/17 01:51:13 Done.
229 struct nacl_irt_mgl g_irt_mgl;
230
231 struct nacl_irt_mgl* get_irt_mgl() {
Mark Seaborn 2015/10/17 01:08:08 Chromium naming style would be GetIrtMgl()
Petr Hosek 2015/10/17 01:51:13 Done.
232 if (!g_irt_mgl_valid) {
233 size_t rc = nacl_interface_query(NACL_IRT_MGL_v0_1, &g_irt_mgl,
234 sizeof(g_irt_mgl));
235 if (rc != sizeof(g_irt_mgl))
236 return NULL;
237 else
Mark Seaborn 2015/10/17 01:08:08 Nit: You could drop the 'else' since this is after
Petr Hosek 2015/10/17 01:51:13 Done.
238 g_irt_mgl_valid = true;
239 }
240 return &g_irt_mgl;
241 }
242
243 MGLContext MGLCreateContext(MGLOpenGLAPIVersion version,
244 MojoHandle command_buffer_handle,
245 MGLContext share_group,
246 MGLContextLostCallback lost_callback,
247 void* lost_callback_closure,
248 const struct MojoAsyncWaiter* async_waiter) {
249 struct nacl_irt_mgl* irt_mgl = get_irt_mgl();
250 if (irt_mgl == NULL)
251 return MGL_NO_CONTEXT;
252 return irt_mgl->MGLCreateContext(version,
253 command_buffer_handle,
254 share_group,
255 lost_callback,
256 lost_callback_closure,
257 async_waiter);
258 }
259
260 void MGLDestroyContext(MGLContext context) {
261 struct nacl_irt_mgl* irt_mgl = get_irt_mgl();
262 if (irt_mgl != NULL)
263 irt_mgl->MGLDestroyContext(context);
264 }
265
266 void MGLMakeCurrent(MGLContext context) {
267 struct nacl_irt_mgl* irt_mgl = get_irt_mgl();
268 if (irt_mgl != NULL)
269 irt_mgl->MGLMakeCurrent(context);
270 }
271
272 MGLContext MGLGetCurrentContext(void) {
273 struct nacl_irt_mgl* irt_mgl = get_irt_mgl();
274 if (irt_mgl == NULL)
275 return MGL_NO_CONTEXT;
276 return irt_mgl->MGLGetCurrentContext();
277 }
278
279 MGLMustCastToProperFunctionPointerType MGLGetProcAddress(const char* name) {
280 struct nacl_irt_mgl* irt_mgl = get_irt_mgl();
281 if (irt_mgl == NULL)
282 return NULL;
283 return irt_mgl->MGLGetProcAddress(name);
284 }
285
286 bool g_irt_mgl_onscreen_valid = false;
287 struct nacl_irt_mgl_onscreen g_irt_mgl_onscreen;
288
289 struct nacl_irt_mgl_onscreen* get_irt_mgl_onscreen() {
290 if (!g_irt_mgl_onscreen_valid) {
291 size_t rc = nacl_interface_query(NACL_IRT_MGL_ONSCREEN_v0_1,
292 &g_irt_mgl_onscreen,
293 sizeof(g_irt_mgl_onscreen));
294 if (rc != sizeof(g_irt_mgl_onscreen))
295 return NULL;
296 else
297 g_irt_mgl_onscreen_valid = true;
298 }
299 return &g_irt_mgl_onscreen;
300 }
301
302 void MGLResizeSurface(uint32_t width, uint32_t height) {
303 struct nacl_irt_mgl_onscreen* irt_mgl_onscreen = get_irt_mgl_onscreen();
304 if (irt_mgl_onscreen != NULL)
305 irt_mgl_onscreen->MGLResizeSurface(width, height);
306 }
307
308 void MGLSwapBuffers(void) {
309 struct nacl_irt_mgl_onscreen* irt_mgl_onscreen = get_irt_mgl_onscreen();
310 if (irt_mgl_onscreen != NULL)
311 irt_mgl_onscreen->MGLSwapBuffers();
312 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698