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

Side by Side Diff: Source/WebCore/platform/graphics/gpu/DrawingBuffer.h

Issue 7671031: Merge 92520 - [chromium] Accelerated canvas breaks when moving canvases or resources between Pages (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/835/
Patch Set: Created 9 years, 4 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 /* 1 /*
2 * Copyright (c) 2010, Google Inc. All rights reserved. 2 * Copyright (c) 2010, Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 83
84 bool multisample() const { return m_context && m_context->getContextAttribut es().antialias && m_multisampleExtensionSupported; } 84 bool multisample() const { return m_context && m_context->getContextAttribut es().antialias && m_multisampleExtensionSupported; }
85 85
86 Platform3DObject platformColorBuffer() const; 86 Platform3DObject platformColorBuffer() const;
87 87
88 #if USE(ACCELERATED_COMPOSITING) 88 #if USE(ACCELERATED_COMPOSITING)
89 PlatformLayer* platformLayer(); 89 PlatformLayer* platformLayer();
90 void publishToPlatformLayer(); 90 void publishToPlatformLayer();
91 #endif 91 #endif
92 92
93 #if PLATFORM(CHROMIUM)
94 class WillPublishCallback {
95 WTF_MAKE_NONCOPYABLE(WillPublishCallback);
96 public:
97 WillPublishCallback() { }
98 virtual ~WillPublishCallback() { }
99
100 virtual void willPublish() = 0;
101 };
102
103 void setWillPublishCallback(PassOwnPtr<WillPublishCallback> callback) { m_ca llback = callback; }
104 #endif
105
106 #if USE(SKIA) 93 #if USE(SKIA)
107 void setGrContext(GrContext* ctx); 94 void setGrContext(GrContext* ctx);
108 void getGrPlatformSurfaceDesc(GrPlatformSurfaceDesc*); 95 void getGrPlatformSurfaceDesc(GrPlatformSurfaceDesc*);
109 #endif 96 #endif
110 97
111 PassRefPtr<GraphicsContext3D> graphicsContext3D() const { return m_context; } 98 PassRefPtr<GraphicsContext3D> graphicsContext3D() const { return m_context; }
112 99
113 private: 100 private:
114 static PassRefPtr<DrawingBuffer> create(GraphicsContext3D*, const IntSize&); 101 static PassRefPtr<DrawingBuffer> create(GraphicsContext3D*, const IntSize&);
115 102
116 DrawingBuffer(GraphicsContext3D*, const IntSize&, bool multisampleExtensionS upported, bool packedDepthStencilExtensionSupported); 103 DrawingBuffer(GraphicsContext3D*, const IntSize&, bool multisampleExtensionS upported, bool packedDepthStencilExtensionSupported);
117 104
118 // Platform specific function called after reset() so each platform can do e xtra work if needed
119 void didReset();
120
121 RefPtr<GraphicsContext3D> m_context; 105 RefPtr<GraphicsContext3D> m_context;
122 IntSize m_size; 106 IntSize m_size;
123 bool m_multisampleExtensionSupported; 107 bool m_multisampleExtensionSupported;
124 bool m_packedDepthStencilExtensionSupported; 108 bool m_packedDepthStencilExtensionSupported;
125 Platform3DObject m_fbo; 109 Platform3DObject m_fbo;
126 Platform3DObject m_colorBuffer; 110 Platform3DObject m_colorBuffer;
127 111
128 // This is used when we have OES_packed_depth_stencil. 112 // This is used when we have OES_packed_depth_stencil.
129 Platform3DObject m_depthStencilBuffer; 113 Platform3DObject m_depthStencilBuffer;
130 114
131 // These are used when we don't. 115 // These are used when we don't.
132 Platform3DObject m_depthBuffer; 116 Platform3DObject m_depthBuffer;
133 Platform3DObject m_stencilBuffer; 117 Platform3DObject m_stencilBuffer;
134 118
135 // For multisampling 119 // For multisampling
136 Platform3DObject m_multisampleFBO; 120 Platform3DObject m_multisampleFBO;
137 Platform3DObject m_multisampleColorBuffer; 121 Platform3DObject m_multisampleColorBuffer;
138 122
139 #if PLATFORM(CHROMIUM) 123 #if PLATFORM(CHROMIUM)
140 OwnPtr<WillPublishCallback> m_callback;
141 #if USE(ACCELERATED_COMPOSITING) 124 #if USE(ACCELERATED_COMPOSITING)
142 RefPtr<Canvas2DLayerChromium> m_platformLayer; 125 RefPtr<Canvas2DLayerChromium> m_platformLayer;
143 #endif 126 #endif
144 #endif 127 #endif
145 128
146 #if PLATFORM(MAC) 129 #if PLATFORM(MAC)
147 RetainPtr<WebGLLayer> m_platformLayer; 130 RetainPtr<WebGLLayer> m_platformLayer;
148 #endif 131 #endif
149 132
150 #if USE(SKIA) 133 #if USE(SKIA)
151 GrContext* m_grContext; 134 GrContext* m_grContext;
152 #endif 135 #endif
153 }; 136 };
154 137
155 } // namespace WebCore 138 } // namespace WebCore
156 139
157 #endif // DrawingBuffer_h 140 #endif // DrawingBuffer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698