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

Side by Side Diff: webkit/gpu/webgraphicscontext3d_in_process_impl.h

Issue 9226036: Refactor WebGraphicsContext3DInProcess and TestWebGraphicsContext3D (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix windows build Created 8 years, 10 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #ifndef WEBKIT_GPU_WEBGRAPHICSCONTEXT3D_IN_PROCESS_IMPL_H_ 5 #ifndef WEBKIT_GPU_WEBGRAPHICSCONTEXT3D_IN_PROCESS_IMPL_H_
6 #define WEBKIT_GPU_WEBGRAPHICSCONTEXT3D_IN_PROCESS_IMPL_H_ 6 #define WEBKIT_GPU_WEBGRAPHICSCONTEXT3D_IN_PROCESS_IMPL_H_
7 7
8 #include <list> 8 #include <list>
9 #include <set> 9 #include <set>
10 10
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 // requires the sandbox to be disabled, which is strongly discouraged. 50 // requires the sandbox to be disabled, which is strongly discouraged.
51 // It is provided for support of test_shell and any Chromium ports 51 // It is provided for support of test_shell and any Chromium ports
52 // where an in-renderer WebGL implementation would be helpful. 52 // where an in-renderer WebGL implementation would be helpful.
53 53
54 class WebGraphicsContext3DInProcessImpl : public WebGraphicsContext3D { 54 class WebGraphicsContext3DInProcessImpl : public WebGraphicsContext3D {
55 public: 55 public:
56 // Creates a WebGraphicsContext3DInProcessImpl for a given window. If window 56 // Creates a WebGraphicsContext3DInProcessImpl for a given window. If window
57 // is gfx::kNullPluginWindow, then it creates an offscreen context. 57 // is gfx::kNullPluginWindow, then it creates an offscreen context.
58 // share_group is the group this context shares namespaces with. It's only 58 // share_group is the group this context shares namespaces with. It's only
59 // used for window-bound countexts. 59 // used for window-bound countexts.
60 WebGraphicsContext3DInProcessImpl(gfx::AcceleratedWidget window, 60 WebGraphicsContext3DInProcessImpl(gfx::GLSurface* surface,
61 gfx::GLShareGroup* share_group); 61 gfx::GLContext* context,
62 bool render_directly_to_webview);
62 virtual ~WebGraphicsContext3DInProcessImpl(); 63 virtual ~WebGraphicsContext3DInProcessImpl();
64 static WebGraphicsContext3DInProcessImpl* CreateForWebView(
65 WebGraphicsContext3D::Attributes attributes,
66 WebView* web_view,
67 bool render_directly_to_webview);
68 static WebGraphicsContext3DInProcessImpl* CreateForWindow(
69 WebGraphicsContext3D::Attributes attributes,
70 gfx::AcceleratedWidget window,
71 gfx::GLShareGroup* share_group);
63 72
64 //---------------------------------------------------------------------- 73 //----------------------------------------------------------------------
65 // WebGraphicsContext3D methods 74 // WebGraphicsContext3D methods
66 virtual bool initialize(
67 WebGraphicsContext3D::Attributes attributes, WebView*, bool);
68 virtual bool makeContextCurrent(); 75 virtual bool makeContextCurrent();
69 76
70 virtual int width(); 77 virtual int width();
71 virtual int height(); 78 virtual int height();
72 79
73 virtual bool isGLES2Compliant(); 80 virtual bool isGLES2Compliant();
74 81
75 virtual bool setParentContext(WebGraphicsContext3D* parent_context); 82 virtual bool setParentContext(WebGraphicsContext3D* parent_context);
76 83
77 virtual void reshape(int width, int height); 84 virtual void reshape(int width, int height);
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 virtual void texStorage2DEXT( 456 virtual void texStorage2DEXT(
450 WGC3Denum target, WGC3Dint levels, WGC3Duint internalformat, 457 WGC3Denum target, WGC3Dint levels, WGC3Duint internalformat,
451 WGC3Dint width, WGC3Dint height); 458 WGC3Dint width, WGC3Dint height);
452 459
453 protected: 460 protected:
454 #if WEBKIT_USING_SKIA 461 #if WEBKIT_USING_SKIA
455 virtual GrGLInterface* onCreateGrGLInterface(); 462 virtual GrGLInterface* onCreateGrGLInterface();
456 #endif 463 #endif
457 464
458 private: 465 private:
466 bool Initialize(Attributes attributes);
467
459 // ANGLE related. 468 // ANGLE related.
460 struct ShaderSourceEntry; 469 struct ShaderSourceEntry;
461 470
462 typedef base::hash_map<WebGLId, ShaderSourceEntry*> ShaderSourceMap; 471 typedef base::hash_map<WebGLId, ShaderSourceEntry*> ShaderSourceMap;
463 472
464 bool AllocateOffscreenFrameBuffer(int width, int height); 473 bool AllocateOffscreenFrameBuffer(int width, int height);
465 void ClearRenderTarget(); 474 void ClearRenderTarget();
466 475
467 #ifdef FLIP_FRAMEBUFFER_VERTICALLY 476 #ifdef FLIP_FRAMEBUFFER_VERTICALLY
468 void FlipVertically(unsigned char* framebuffer, 477 void FlipVertically(unsigned char* framebuffer,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 std::list<WGC3Denum> synthetic_errors_list_; 524 std::list<WGC3Denum> synthetic_errors_list_;
516 std::set<WGC3Denum> synthetic_errors_set_; 525 std::set<WGC3Denum> synthetic_errors_set_;
517 526
518 scoped_refptr<gfx::GLContext> gl_context_; 527 scoped_refptr<gfx::GLContext> gl_context_;
519 scoped_refptr<gfx::GLSurface> gl_surface_; 528 scoped_refptr<gfx::GLSurface> gl_surface_;
520 529
521 ShaderSourceMap shader_source_map_; 530 ShaderSourceMap shader_source_map_;
522 531
523 ShHandle fragment_compiler_; 532 ShHandle fragment_compiler_;
524 ShHandle vertex_compiler_; 533 ShHandle vertex_compiler_;
525 gfx::AcceleratedWidget window_;
526 scoped_refptr<gfx::GLShareGroup> share_group_;
527 }; 534 };
528 535
529 } // namespace gpu 536 } // namespace gpu
530 } // namespace webkit 537 } // namespace webkit
531 538
532 #endif // WEBKIT_GPU_WEBGRAPHICSCONTEXT3D_IN_PROCESS_IMPL_H_ 539 #endif // WEBKIT_GPU_WEBGRAPHICSCONTEXT3D_IN_PROCESS_IMPL_H_
OLDNEW
« no previous file with comments | « ui/gfx/compositor/test_web_graphics_context_3d.cc ('k') | webkit/gpu/webgraphicscontext3d_in_process_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698