summaryrefslogtreecommitdiffstats
path: root/gpu/demos
diff options
context:
space:
mode:
authorapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-05 00:36:12 +0000
committerapatrick@chromium.org <apatrick@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-11-05 00:36:12 +0000
commitc4cacf1429f06bac025d8c0337c3b80efa8f98a9 (patch)
tree413e05bba0fe58c7b85aea19d2391ee185257fd0 /gpu/demos
parentfc24838c909913960402b1c75926e9372af595b8 (diff)
downloadchromium_src-c4cacf1429f06bac025d8c0337c3b80efa8f98a9.zip
chromium_src-c4cacf1429f06bac025d8c0337c3b80efa8f98a9.tar.gz
chromium_src-c4cacf1429f06bac025d8c0337c3b80efa8f98a9.tar.bz2
Integrated Pepper3D v2 with the accelerated compositor.
- It now uses GGL instead of a child window. - Fixed a bug where GLES2 decoder set texture state without updating TextureInfo. - Fixed Pepper3D demos and added awesome 3D CSS programmer art. - Removed ggl::GetCurrentContext to prevent further abuse. Fixed said abuse :) - GGL exposes GLES2Implementation to allow issue of GL calls on a particular context without making that context globally current. - Removed redundant "this context" argument from GGL SwapBuffers completion callback. - Temporarily removed context lost notification. I need to figure out the best semantics. TEST=Run Pepper3D and WebGL demos and YouTube videos on Windows and Mac. BUG=none Review URL: http://codereview.chromium.org/3531008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65152 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/demos')
-rw-r--r--gpu/demos/demos.gyp2
-rw-r--r--gpu/demos/framework/pepper.cc45
-rw-r--r--gpu/demos/pepper_gpu_demo.html6
3 files changed, 25 insertions, 28 deletions
diff --git a/gpu/demos/demos.gyp b/gpu/demos/demos.gyp
index d205eea..bae7503 100644
--- a/gpu/demos/demos.gyp
+++ b/gpu/demos/demos.gyp
@@ -156,7 +156,6 @@
['OS=="mac"', {
'action': [
'<(PRODUCT_DIR)/Chromium.app/Contents/MacOS/Chromium',
- '--enable-gpu-plugin',
'--register-pepper-plugins='
'<(PRODUCT_DIR)/$(PRODUCT_NAME).plugin;'
'pepper-application/x-gpu-demo',
@@ -165,7 +164,6 @@
}, { # OS != "mac"
'action': [
'<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)chrome<(EXECUTABLE_SUFFIX)',
- '--enable-gpu-plugin',
'--register-pepper-plugins=$(TargetPath);'
'pepper-application/x-gpu-demo',
'file://$(ProjectDir)pepper_gpu_demo.html',
diff --git a/gpu/demos/framework/pepper.cc b/gpu/demos/framework/pepper.cc
index 9bcf9b1..2d3d50b 100644
--- a/gpu/demos/framework/pepper.cc
+++ b/gpu/demos/framework/pepper.cc
@@ -35,32 +35,31 @@ class PluginInstance : public pp::Instance {
}
}
- virtual void ViewChanged(const pp::Rect& position, const pp::Rect& /*clip*/) {
- if (size_.IsEmpty() && !position.IsEmpty()) {
- size_ = position.size();
- demo_->InitWindowSize(size_.width(), size_.height());
+ virtual void DidChangeView(const pp::Rect& position,
+ const pp::Rect& /*clip*/) {
+ if (size_ == position.size())
+ return;
+
+ size_ = position.size();
+ demo_->InitWindowSize(size_.width(), size_.height());
+
+ if (graphics_.is_null()) {
graphics_ = pp::Graphics3D_Dev(*this, 0, NULL, NULL);
- if (!graphics_.is_null()) {
- graphics_.MakeCurrent();
- demo_->InitGL();
- pp::Graphics3D_Dev::ResetCurrent();
-
- // TODO(neb): Remove this once the startup order bug (51842) is fixed.
- if (true)
- // if (demo_->IsAnimated())
- Animate(0);
- else
- Paint();
- }
+ if (graphics_.is_null())
+ return;
+
+ if (!pp::Instance::BindGraphics(graphics_))
+ return;
+
+ graphics_.MakeCurrent();
+ demo_->InitGL();
+ pp::Graphics3D_Dev::ResetCurrent();
}
- }
- virtual void Graphics3DContextLost() {
- // TODO(neb): Replace this with the correct code once 53889 is fixed.
- Paint();
-// pp::Rect fake_position(size_);
-// size_ = pp::Size();
-// ViewChanged(fake_position, fake_position);
+ if (demo_->IsAnimated())
+ Animate(0);
+ else
+ Paint();
}
void Paint() {
diff --git a/gpu/demos/pepper_gpu_demo.html b/gpu/demos/pepper_gpu_demo.html
index 8be4e57..64d88f7 100644
--- a/gpu/demos/pepper_gpu_demo.html
+++ b/gpu/demos/pepper_gpu_demo.html
@@ -3,10 +3,10 @@
<title>Pepper GPU Demo</title>
</head>
-<body style="background-color:Silver">
+<body style="background-color:Silver; -webkit-perspective: 1000;">
<h1>Pepper GPU Demo</h1>
-<object id="plugin" type="pepper-application/x-gpu-demo" width="512" height="512" />
-
+<embed id="plugin" type="pepper-application/x-gpu-demo" width="512" height="512" style="position:absolute; top: 30px; -webkit-transform: rotateY(30deg);" />
+<p style="position:absolute; top: 256px;">Text on top</p>
</body>
</html>