OLD | NEW |
---|---|
1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 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 CC_GL_RENDERER_H_ | 5 #ifndef CC_GL_RENDERER_H_ |
6 #define CC_GL_RENDERER_H_ | 6 #define CC_GL_RENDERER_H_ |
7 | 7 |
8 #include "cc/cc_export.h" | 8 #include "cc/cc_export.h" |
9 #include "cc/checkerboard_draw_quad.h" | 9 #include "cc/checkerboard_draw_quad.h" |
10 #include "cc/debug_border_draw_quad.h" | 10 #include "cc/debug_border_draw_quad.h" |
(...skipping 18 matching lines...) Expand all Loading... | |
29 class ScopedResource; | 29 class ScopedResource; |
30 class StreamVideoDrawQuad; | 30 class StreamVideoDrawQuad; |
31 class TextureDrawQuad; | 31 class TextureDrawQuad; |
32 class GeometryBinding; | 32 class GeometryBinding; |
33 class ScopedEnsureFramebufferAllocation; | 33 class ScopedEnsureFramebufferAllocation; |
34 | 34 |
35 // Class that handles drawing of composited render layers using GL. | 35 // Class that handles drawing of composited render layers using GL. |
36 class CC_EXPORT GLRenderer : public DirectRenderer, | 36 class CC_EXPORT GLRenderer : public DirectRenderer, |
37 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext 3D::WebGraphicsSwapBuffersCompleteCallbackCHROMIUM), | 37 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext 3D::WebGraphicsSwapBuffersCompleteCallbackCHROMIUM), |
38 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext 3D::WebGraphicsMemoryAllocationChangedCallbackCHROMIUM), | 38 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext 3D::WebGraphicsMemoryAllocationChangedCallbackCHROMIUM), |
39 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext 3D::WebGraphicsContextLostCallback) { | 39 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext 3D::WebGraphicsContextLostCallback), |
40 public NON_EXPORTED_BASE(WebKit::WebGraphicsContext 3D::WebGraphicsLatencyInfoCallbackCHROMIUM){ | |
jamesr
2013/01/02 23:23:39
Why do these come back through a WebGraphicsContex
| |
40 public: | 41 public: |
41 static scoped_ptr<GLRenderer> create(RendererClient*, ResourceProvider*); | 42 static scoped_ptr<GLRenderer> create(RendererClient*, ResourceProvider*); |
42 | 43 |
43 virtual ~GLRenderer(); | 44 virtual ~GLRenderer(); |
44 | 45 |
45 virtual const RendererCapabilities& capabilities() const OVERRIDE; | 46 virtual const RendererCapabilities& capabilities() const OVERRIDE; |
46 | 47 |
47 WebKit::WebGraphicsContext3D* context(); | 48 WebKit::WebGraphicsContext3D* context(); |
48 | 49 |
49 virtual void viewportChanged() OVERRIDE; | 50 virtual void viewportChanged() OVERRIDE; |
50 | 51 |
51 // waits for rendering to finish | 52 // waits for rendering to finish |
52 virtual void finish() OVERRIDE; | 53 virtual void finish() OVERRIDE; |
53 | 54 |
54 virtual void doNoOp() OVERRIDE; | 55 virtual void doNoOp() OVERRIDE; |
55 // puts backbuffer onscreen | 56 // puts backbuffer onscreen |
56 virtual bool swapBuffers() OVERRIDE; | 57 virtual bool swapBuffers() OVERRIDE; |
57 | 58 |
58 virtual void getFramebufferPixels(void *pixels, const gfx::Rect&) OVERRIDE; | 59 virtual void getFramebufferPixels(void *pixels, const gfx::Rect&) OVERRIDE; |
59 | 60 |
60 virtual bool isContextLost() OVERRIDE; | 61 virtual bool isContextLost() OVERRIDE; |
61 | 62 |
62 virtual void setVisible(bool) OVERRIDE; | 63 virtual void setVisible(bool) OVERRIDE; |
63 | 64 |
65 virtual void setLatencyInfo(const WebKit::WebLatencyInfoImpl& latency_info) OVERRIDE; | |
66 | |
64 virtual void sendManagedMemoryStats(size_t bytesVisible, size_t bytesVisible AndNearby, size_t bytesAllocated) OVERRIDE; | 67 virtual void sendManagedMemoryStats(size_t bytesVisible, size_t bytesVisible AndNearby, size_t bytesAllocated) OVERRIDE; |
65 | 68 |
66 protected: | 69 protected: |
67 GLRenderer(RendererClient*, ResourceProvider*); | 70 GLRenderer(RendererClient*, ResourceProvider*); |
68 | 71 |
69 static void debugGLCall(WebKit::WebGraphicsContext3D*, const char* command, const char* file, int line); | 72 static void debugGLCall(WebKit::WebGraphicsContext3D*, const char* command, const char* file, int line); |
70 | 73 |
71 bool isBackbufferDiscarded() const { return m_isBackbufferDiscarded; } | 74 bool isBackbufferDiscarded() const { return m_isBackbufferDiscarded; } |
72 bool initialize(); | 75 bool initialize(); |
73 | 76 |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
130 | 133 |
131 // WebKit::WebGraphicsContext3D::WebGraphicsMemoryAllocationChangedCallbackC HROMIUM implementation. | 134 // WebKit::WebGraphicsContext3D::WebGraphicsMemoryAllocationChangedCallbackC HROMIUM implementation. |
132 virtual void onMemoryAllocationChanged(WebKit::WebGraphicsMemoryAllocation) OVERRIDE; | 135 virtual void onMemoryAllocationChanged(WebKit::WebGraphicsMemoryAllocation) OVERRIDE; |
133 void discardBackbuffer(); | 136 void discardBackbuffer(); |
134 void ensureBackbuffer(); | 137 void ensureBackbuffer(); |
135 void enforceMemoryPolicy(); | 138 void enforceMemoryPolicy(); |
136 | 139 |
137 // WebGraphicsContext3D::WebGraphicsContextLostCallback implementation. | 140 // WebGraphicsContext3D::WebGraphicsContextLostCallback implementation. |
138 virtual void onContextLost() OVERRIDE; | 141 virtual void onContextLost() OVERRIDE; |
139 | 142 |
143 virtual void onReceivedLatencyInfo(const WebKit::WebLatencyInfo& latency_inf o) OVERRIDE; | |
144 | |
140 RendererCapabilities m_capabilities; | 145 RendererCapabilities m_capabilities; |
141 | 146 |
142 unsigned m_offscreenFramebufferId; | 147 unsigned m_offscreenFramebufferId; |
143 | 148 |
144 scoped_ptr<GeometryBinding> m_sharedGeometry; | 149 scoped_ptr<GeometryBinding> m_sharedGeometry; |
145 gfx::QuadF m_sharedGeometryQuad; | 150 gfx::QuadF m_sharedGeometryQuad; |
146 | 151 |
147 // This block of bindings defines all of the programs used by the compositor itself. | 152 // This block of bindings defines all of the programs used by the compositor itself. |
148 | 153 |
149 // Tiled layer shaders. | 154 // Tiled layer shaders. |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
245 #if DEBUG_GL_CALLS && !defined(NDEBUG) | 250 #if DEBUG_GL_CALLS && !defined(NDEBUG) |
246 #define GLC(context, x) (x, GLRenderer::debugGLCall(&*context, #x, __FILE__, __L INE__)) | 251 #define GLC(context, x) (x, GLRenderer::debugGLCall(&*context, #x, __FILE__, __L INE__)) |
247 #else | 252 #else |
248 #define GLC(context, x) (x) | 253 #define GLC(context, x) (x) |
249 #endif | 254 #endif |
250 | 255 |
251 | 256 |
252 } | 257 } |
253 | 258 |
254 #endif // CC_GL_RENDERER_H_ | 259 #endif // CC_GL_RENDERER_H_ |
OLD | NEW |