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

Side by Side Diff: third_party/npapi/bindings/npapi_extensions.h

Issue 367002: Added Pepper 3D render context that instantiates the GPU plugin.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 10 years, 12 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 | Annotate | Revision Log
« no previous file with comments | « gpu/gpu_plugin/gpu_plugin.cc ('k') | webkit/glue/plugins/npapi_extension_thunk.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (c) 2006-2009 The Chromium Authors. All rights reserved. 1 /* Copyright (c) 2006-2009 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 5
6 #ifndef _NP_EXTENSIONS_H_ 6 #ifndef _NP_EXTENSIONS_H_
7 #define _NP_EXTENSIONS_H_ 7 #define _NP_EXTENSIONS_H_
8 8
9 #include "third_party/npapi/bindings/npapi.h" 9 #include "third_party/npapi/bindings/npapi.h"
10 10
11 /* 11 /*
12 * A fake "enum" value for getting Pepper extensions. 12 * A fake "enum" value for getting Pepper extensions.
13 * The variable returns a pointer to an NPPepperExtensions structure 13 * The variable returns a pointer to an NPPepperExtensions structure
14 */ 14 */
15 #define NPNVPepperExtensions ((NPNVariable) 4000) 15 #define NPNVPepperExtensions ((NPNVariable) 4000)
16 16
17 typedef void NPDeviceConfig; 17 typedef void NPDeviceConfig;
18 typedef void NPDeviceContext; 18 typedef void NPDeviceContext;
19 typedef void NPUserData; 19 typedef void NPUserData;
20 20
21 /* unique id for each device interface */ 21 /* unique id for each device interface */
22 typedef int32 NPDeviceID; 22 typedef int32 NPDeviceID;
23 23
24
25 typedef struct _NPDeviceBuffer {
26 void* ptr;
27 size_t size;
28 } NPDeviceBuffer;
29
24 /* completion callback for flush device */ 30 /* completion callback for flush device */
25 typedef void (*NPDeviceFlushContextCallbackPtr)( 31 typedef void (*NPDeviceFlushContextCallbackPtr)(
26 NPP instace, 32 NPP instace,
27 NPDeviceContext* context, 33 NPDeviceContext* context,
28 NPError err, 34 NPError err,
29 NPUserData* userData); 35 NPUserData* userData);
30 36
31 /* query single capabilities of device */ 37 /* query single capabilities of device */
32 typedef NPError ( 38 typedef NPError (
33 *NPDeviceQueryCapabilityPtr)(NPP instance, 39 *NPDeviceQueryCapabilityPtr)(NPP instance,
(...skipping 26 matching lines...) Expand all
60 typedef NPError (*NPDeviceFlushContextPtr)( 66 typedef NPError (*NPDeviceFlushContextPtr)(
61 NPP instance, 67 NPP instance,
62 NPDeviceContext* context, 68 NPDeviceContext* context,
63 NPDeviceFlushContextCallbackPtr callback, 69 NPDeviceFlushContextCallbackPtr callback,
64 void* userData); 70 void* userData);
65 /* destroy device context. Application responsible for */ 71 /* destroy device context. Application responsible for */
66 /* freeing context, if applicable */ 72 /* freeing context, if applicable */
67 typedef NPError (*NPDeviceDestroyContextPtr)( 73 typedef NPError (*NPDeviceDestroyContextPtr)(
68 NPP instance, 74 NPP instance,
69 NPDeviceContext* context); 75 NPDeviceContext* context);
76 /* Create a buffer associated with a particular context. The usage of the */
77 /* buffer is device specific. The lifetime of the buffer is scoped with the */
78 /* lifetime of the context. */
79 typedef NPError (*NPDeviceCreateBufferPtr)(
80 NPP instance,
81 NPDeviceContext* context,
82 size_t size,
83 int32* id);
84 /* Destroy a buffer associated with a particular context. */
85 typedef NPError (*NPDeviceDestroyBufferPtr)(
86 NPP instance,
87 NPDeviceContext* context,
88 int32 id);
89 /* Map a buffer id to its address. */
90 typedef NPError (*NPDeviceMapBufferPtr)(
91 NPP instance,
92 NPDeviceContext* context,
93 int32 id,
94 NPDeviceBuffer* buffer);
70 95
71 /* forward decl typdef structs */ 96 /* forward decl typdef structs */
72 typedef struct NPDevice NPDevice; 97 typedef struct NPDevice NPDevice;
73 typedef struct NPExtensions NPExtensions; 98 typedef struct NPExtensions NPExtensions;
74 99
75 /* generic device interface */ 100 /* generic device interface */
76 struct NPDevice { 101 struct NPDevice {
77 NPDeviceQueryCapabilityPtr queryCapability; 102 NPDeviceQueryCapabilityPtr queryCapability;
78 NPDeviceQueryConfigPtr queryConfig; 103 NPDeviceQueryConfigPtr queryConfig;
79 NPDeviceInitializeContextPtr initializeContext; 104 NPDeviceInitializeContextPtr initializeContext;
80 NPDeviceSetStateContextPtr setStateContext; 105 NPDeviceSetStateContextPtr setStateContext;
81 NPDeviceGetStateContextPtr getStateContext; 106 NPDeviceGetStateContextPtr getStateContext;
82 NPDeviceFlushContextPtr flushContext; 107 NPDeviceFlushContextPtr flushContext;
83 NPDeviceDestroyContextPtr destroyContext; 108 NPDeviceDestroyContextPtr destroyContext;
109 NPDeviceCreateBufferPtr createBuffer;
110 NPDeviceDestroyBufferPtr destroyBuffer;
111 NPDeviceMapBufferPtr mapBuffer;
84 }; 112 };
85 113
86 /* returns NULL if deviceID unavailable / unrecognized */ 114 /* returns NULL if deviceID unavailable / unrecognized */
87 typedef NPDevice* (*NPAcquireDevicePtr)( 115 typedef NPDevice* (*NPAcquireDevicePtr)(
88 NPP instance, 116 NPP instance,
89 NPDeviceID device); 117 NPDeviceID device);
90 118
91 /* Pepper extensions */ 119 /* Pepper extensions */
92 struct NPExtensions { 120 struct NPExtensions {
93 /* Device interface acquisition */ 121 /* Device interface acquisition */
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
218 int32 right; 246 int32 right;
219 int32 bottom; 247 int32 bottom;
220 } dirty; 248 } dirty;
221 } NPDeviceContext2D; 249 } NPDeviceContext2D;
222 250
223 /* 3D -----------------------------------------------------------------------*/ 251 /* 3D -----------------------------------------------------------------------*/
224 252
225 #define NPPepper3DDevice 2 253 #define NPPepper3DDevice 2
226 254
227 typedef struct _NPDeviceContext3DConfig { 255 typedef struct _NPDeviceContext3DConfig {
256 int32 commandBufferEntries;
228 } NPDeviceContext3DConfig; 257 } NPDeviceContext3DConfig;
229 258
259 typedef enum {
260 // The offset the command buffer service has read to.
261 NPDeviceContext3DState_GetOffset,
262 // The offset the plugin instance has written to.
263 NPDeviceContext3DState_PutOffset,
264 // The last token processed by the command buffer service.
265 NPDeviceContext3DState_Token,
266 // The most recent parse error. Getting this value resets the parse error
267 // if it recoverable.
268 NPDeviceContext3DState_ParseError,
269 // Wether the command buffer has encountered an unrecoverable error.
270 NPDeviceContext3DState_ErrorStatus,
271 } NPDeviceContext3DState;
272
230 typedef struct _NPDeviceContext3D 273 typedef struct _NPDeviceContext3D
231 { 274 {
232 void* reserved; 275 void* reserved;
233 void* buffer; 276
234 int32 bufferLength; 277 // Buffer in which commands are stored.
278 void* commandBuffer;
279 int32 commandBufferEntries;
280
281 // Offset in command buffer reader has reached. Synchronized on flush.
282 int32 getOffset;
283
284 // Offset in command buffer writer has reached. Synchronized on flush.
285 int32 putOffset;
235 } NPDeviceContext3D; 286 } NPDeviceContext3D;
236 287
237 #endif /* _NP_EXTENSIONS_H_ */ 288 #endif /* _NP_EXTENSIONS_H_ */
OLDNEW
« no previous file with comments | « gpu/gpu_plugin/gpu_plugin.cc ('k') | webkit/glue/plugins/npapi_extension_thunk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698