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

Side by Side Diff: ppapi/native_client/src/shared/ppapi_proxy/plugin_ppb_graphics_3d.cc

Issue 8678028: Ensure swap is performed before informing compositor. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years 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 | « no previous file | ppapi/proxy/ppb_graphics_3d_proxy.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 /* 1 /*
2 * Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 * Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be 3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file. 4 * found in the LICENSE file.
5 */ 5 */
6 6
7 #include "native_client/src/shared/ppapi_proxy/plugin_ppb_graphics_3d.h" 7 #include "native_client/src/shared/ppapi_proxy/plugin_ppb_graphics_3d.h"
8 8
9 #include "gpu/command_buffer/client/gles2_implementation.h" 9 #include "gpu/command_buffer/client/gles2_implementation.h"
10 #include "native_client/src/shared/ppapi_proxy/command_buffer_nacl.h" 10 #include "native_client/src/shared/ppapi_proxy/command_buffer_nacl.h"
(...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after
231 transfer_buffer_id, 231 transfer_buffer_id,
232 false)); 232 false));
233 return true; 233 return true;
234 } 234 }
235 } 235 }
236 return false; 236 return false;
237 } 237 }
238 238
239 int32_t PluginGraphics3D::SwapBuffers(PP_Resource graphics3d_id, 239 int32_t PluginGraphics3D::SwapBuffers(PP_Resource graphics3d_id,
240 struct PP_CompletionCallback callback) { 240 struct PP_CompletionCallback callback) {
241
242 int32_t callback_id = CompletionCallbackTable::Get()->AddCallback(callback); 241 int32_t callback_id = CompletionCallbackTable::Get()->AddCallback(callback);
243 if (callback_id == 0) // Just like Chrome, for now disallow blocking calls. 242 if (callback_id == 0) // Just like Chrome, for now disallow blocking calls.
244 return PP_ERROR_BLOCKS_MAIN_THREAD; 243 return PP_ERROR_BLOCKS_MAIN_THREAD;
245 244
245 impl()->SwapBuffers();
nfullagar 2011/11/23 22:51:18 what's going to happen if the NaClSrpcError retval
246 int32_t pp_error; 246 int32_t pp_error;
247 NaClSrpcError retval = 247 NaClSrpcError retval =
248 PpbGraphics3DRpcClient::PPB_Graphics3D_SwapBuffers( 248 PpbGraphics3DRpcClient::PPB_Graphics3D_SwapBuffers(
249 GetMainSrpcChannel(), 249 GetMainSrpcChannel(),
250 graphics3d_id, 250 graphics3d_id,
251 callback_id, 251 callback_id,
252 &pp_error); 252 &pp_error);
253 if (retval != NACL_SRPC_RESULT_OK) 253 if (retval != NACL_SRPC_RESULT_OK)
254 return PP_ERROR_FAILED; 254 return PP_ERROR_FAILED;
255 255
256 if ((PP_OK_COMPLETIONPENDING != pp_error) && (PP_OK != pp_error)) 256 if ((PP_OK_COMPLETIONPENDING != pp_error) && (PP_OK != pp_error))
257 return pp_error; 257 return pp_error;
258 258
259 impl()->SwapBuffers();
260 return PP_OK_COMPLETIONPENDING; 259 return PP_OK_COMPLETIONPENDING;
261 } 260 }
262 261
263 262
264 // static 263 // static
265 const PPB_Graphics3D* PluginGraphics3D::GetInterface() { 264 const PPB_Graphics3D* PluginGraphics3D::GetInterface() {
266 static const PPB_Graphics3D intf = { 265 static const PPB_Graphics3D intf = {
267 &GetAttribMaxValue, 266 &GetAttribMaxValue,
268 &Create, 267 &Create,
269 &IsGraphics3D, 268 &IsGraphics3D,
270 &GetAttribs, 269 &GetAttribs,
271 &SetAttribs, 270 &SetAttribs,
272 &GetError, 271 &GetError,
273 &ResizeBuffers, 272 &ResizeBuffers,
274 &SwapBuffs, 273 &SwapBuffs,
275 }; 274 };
276 return &intf; 275 return &intf;
277 } 276 }
278 277
279 } // namespace ppapi_proxy 278 } // namespace ppapi_proxy
280 279
OLDNEW
« no previous file with comments | « no previous file | ppapi/proxy/ppb_graphics_3d_proxy.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698