summaryrefslogtreecommitdiffstats
path: root/content/renderer/render_widget_fullscreen_pepper.h
diff options
context:
space:
mode:
authorkbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-19 22:05:43 +0000
committerkbr@chromium.org <kbr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-19 22:05:43 +0000
commit590cd0933bc5e650f7fcf94440201e7b8dcc9bbd (patch)
tree6fec35b29740bc2683733a0a6ad866289a50225d /content/renderer/render_widget_fullscreen_pepper.h
parent2fdad49da6be57fa0c6d660fc9c5e94a6361edd1 (diff)
downloadchromium_src-590cd0933bc5e650f7fcf94440201e7b8dcc9bbd.zip
chromium_src-590cd0933bc5e650f7fcf94440201e7b8dcc9bbd.tar.gz
chromium_src-590cd0933bc5e650f7fcf94440201e7b8dcc9bbd.tar.bz2
Fixed bugs with Pepper 3D under dynamic GPU switching.
Made Pepper 3D context creation code fully aware of GPU switching and changed the order of context creation and and fetching of the parent context. Creating the context potentially causes all existing contexts for that renderer, including the parent, to be lost. Detect shutting down of the GPU channel more quickly on the renderer side. Only reject context creation in GLContextCGL upon GpuPreference mismatch if the system supports dual GPUs. Will update tools/histograms/histograms.xml as soon as this is committed; must occur in a separate CL. BUG=100507 TEST=tested navigating to and from, and reloading, NaCl Pepper 3D samples on Mac 10.6.8 and 10.7.1; WebGL tests Review URL: http://codereview.chromium.org/8342024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106394 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/renderer/render_widget_fullscreen_pepper.h')
-rw-r--r--content/renderer/render_widget_fullscreen_pepper.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/content/renderer/render_widget_fullscreen_pepper.h b/content/renderer/render_widget_fullscreen_pepper.h
index 867de9b..5d47ec9 100644
--- a/content/renderer/render_widget_fullscreen_pepper.h
+++ b/content/renderer/render_widget_fullscreen_pepper.h
@@ -6,6 +6,7 @@
#define CONTENT_RENDERER_RENDER_WIDGET_FULLSCREEN_PEPPER_H_
#include "base/memory/weak_ptr.h"
+#include "content/renderer/pepper_parent_context_provider.h"
#include "content/renderer/render_widget_fullscreen.h"
#include "content/renderer/gpu/renderer_gl_context.h"
#include "third_party/WebKit/Source/WebKit/chromium/public/WebWidget.h"
@@ -23,7 +24,8 @@ class PluginInstance;
// FullscreenContainer that the plugin instance can callback into to e.g.
// invalidate rects.
class RenderWidgetFullscreenPepper : public RenderWidgetFullscreen,
- public webkit::ppapi::FullscreenContainer {
+ public webkit::ppapi::FullscreenContainer,
+ public PepperParentContextProvider {
public:
static RenderWidgetFullscreenPepper* Create(
int32 opener_id,
@@ -86,6 +88,9 @@ class RenderWidgetFullscreenPepper : public RenderWidgetFullscreen,
// RenderWidget::OnSwapBuffersCompleted.
void OnSwapBuffersCompleteByRendererGLContext();
+ // Implementation of PepperParentContextProvider.
+ virtual RendererGLContext* GetParentContextForPlatformContext3D();
+
// URL that is responsible for this widget, passed to ggl::CreateViewContext.
GURL active_url_;