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

Side by Side Diff: mojo/public/platform/nacl/mojo_irt.h

Issue 1413683003: Expose MGL interface through NaCl IRT (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Review feedback addressed 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 #ifndef MOJO_PUBLIC_PLATFORM_NACL_MOJO_IRT_H_ 8 #ifndef MOJO_PUBLIC_PLATFORM_NACL_MOJO_IRT_H_
9 #define MOJO_PUBLIC_PLATFORM_NACL_MOJO_IRT_H_ 9 #define MOJO_PUBLIC_PLATFORM_NACL_MOJO_IRT_H_
10 10
11 #include "mojo/public/c/gpu/MGL/mgl.h"
12 #include "mojo/public/c/gpu/MGL/mgl_onscreen.h"
13 #include "mojo/public/c/gpu/MGL/mgl_signal_sync_point.h"
11 #include "mojo/public/c/system/buffer.h" 14 #include "mojo/public/c/system/buffer.h"
12 #include "mojo/public/c/system/data_pipe.h" 15 #include "mojo/public/c/system/data_pipe.h"
13 #include "mojo/public/c/system/message_pipe.h" 16 #include "mojo/public/c/system/message_pipe.h"
14 #include "mojo/public/c/system/types.h" 17 #include "mojo/public/c/system/types.h"
15 18
16 #define NACL_IRT_MOJO_v0_1 "nacl-irt-mojo-0.1" 19 #define NACL_IRT_MOJO_v0_1 "nacl-irt-mojo-0.1"
17 20
18 struct nacl_irt_mojo { 21 struct nacl_irt_mojo {
19 MojoResult (*MojoCreateSharedBuffer)( 22 MojoResult (*MojoCreateSharedBuffer)(
20 const struct MojoCreateSharedBufferOptions* options, 23 const struct MojoCreateSharedBufferOptions* options,
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
78 MojoWriteMessageFlags flags); 81 MojoWriteMessageFlags flags);
79 MojoResult (*MojoReadMessage)(MojoHandle message_pipe_handle, 82 MojoResult (*MojoReadMessage)(MojoHandle message_pipe_handle,
80 void* bytes, 83 void* bytes,
81 uint32_t* num_bytes, 84 uint32_t* num_bytes,
82 MojoHandle* handles, 85 MojoHandle* handles,
83 uint32_t* num_handles, 86 uint32_t* num_handles,
84 MojoReadMessageFlags flags); 87 MojoReadMessageFlags flags);
85 MojoResult (*_MojoGetInitialHandle)(MojoHandle* handle); 88 MojoResult (*_MojoGetInitialHandle)(MojoHandle* handle);
86 }; 89 };
87 90
91 #define NACL_IRT_MGL_v0_1 "nacl-irt-mgl-0.1"
92
93 struct nacl_irt_mgl {
94 // Creates a context at the given API version or returns MGL_NO_CONTEXT.
95 // |command_buffer_handle| must be a command buffer message pipe handle from
96 // the Gpu service or another source. The callee takes ownership of this
97 // handle.
98 // |share_group| specifies the share group to create this context in. If this
99 // is MGL_NO_CONTEXT a new share group will be created for this context.
100 // |lost_callback|, if not null, will be invoked when the context is lost.
101 // |async_waiter| must be a pointer to a MojoAsyncWaiter implementation that
102 // is usable from any thread the returned MGLContext will be used from for as
103 // long as the context exists.
104 MGLContext (*MGLCreateContext)(MGLOpenGLAPIVersion version,
105 MojoHandle command_buffer_handle,
106 MGLContext share_group,
107 MGLContextLostCallback lost_callback,
108 void* lost_callback_closure,
109 const struct MojoAsyncWaiter* async_waiter);
110
111 // Destroys the |context|.
112 void (*MGLDestroyContext)(MGLContext context);
113
114 // Makes |context| the current MGLContext for the calling thread. Calling with
115 // MGL_NO_CONTEXT clears the current context.
116 void (*MGLMakeCurrent)(MGLContext context);
117
118 // Returns the currently bound context for the calling thread or
119 // MGL_NO_CONTEXT if there is none.
120 MGLContext (*MGLGetCurrentContext)(void);
121
122 // Returns GL function usable in any context that advertise the corresponding
123 // extension in their GL_EXTENSIONS string, or null for functions that the
124 // implementation does not support. The implementation only advertises GL
125 // functions.
126 // |name| is the name of the GL function.
127 MGLMustCastToProperFunctionPointerType (*MGLGetProcAddress)(const char* name);
128 };
129
130 #define NACL_IRT_MGL_ONSCREEN_v0_1 "nacl-irt-mgl-onscreen-0.1"
131
132 struct nacl_irt_mgl_onscreen {
133 // Resizes the default framebuffer for the currently bound onscreen
134 // MGLContext.
135 void (*MGLResizeSurface)(uint32_t width, uint32_t height);
136
137 // Presents the default framebuffer for the currently bound onscreen
138 // MGLContext to the windowing system or display.
139 void (*MGLSwapBuffers)(void);
140 };
141
142 #define NACL_IRT_MGL_SIGNAL_SYNC_POINT_v0_1 "nacl-irt-mgl-signal-sync-point-0.1"
143
144 struct nacl_irt_mgl_signal_sync_point {
145 // MGLSignalSyncPoint signals the given sync point in the current context and
146 // invokes |callback| when the service side acknowleges that the sync point
147 // has been passed.
148 void (*MGLSignalSyncPoint)(uint32_t sync_point,
149 MGLSignalSyncPointCallback callback,
150 void* closure);
151 };
152
88 #ifdef __cplusplus 153 #ifdef __cplusplus
89 extern "C" { 154 extern "C" {
90 #endif 155 #endif
91 156
92 size_t mojo_irt_query(const char* interface_ident, 157 size_t mojo_irt_query(const char* interface_ident,
93 void* table, 158 void* table,
94 size_t tablesize); 159 size_t tablesize);
95 160
96 #ifdef __cplusplus 161 #ifdef __cplusplus
97 } 162 }
98 #endif 163 #endif
99 164
100 #endif // MOJO_PUBLIC_PLATFORM_NACL_MOJO_IRT_H_ 165 #endif // MOJO_PUBLIC_PLATFORM_NACL_MOJO_IRT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698