summaryrefslogtreecommitdiffstats
path: root/ppapi/examples
diff options
context:
space:
mode:
authoryzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-20 18:08:31 +0000
committeryzshen@chromium.org <yzshen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-06-20 18:08:31 +0000
commit72fbe9a8fbe731f84ed916ce7a03d237b97d835f (patch)
tree2f740ab28de4f00ddbfa5f6b76249df4d669a536 /ppapi/examples
parent4e2785c027787bc15023be09206c501d8dc39a45 (diff)
downloadchromium_src-72fbe9a8fbe731f84ed916ce7a03d237b97d835f.zip
chromium_src-72fbe9a8fbe731f84ed916ce7a03d237b97d835f.tar.gz
chromium_src-72fbe9a8fbe731f84ed916ce7a03d237b97d835f.tar.bz2
Revert 278728 "[PPAPI] Add browser tests for compositor API"
> [PPAPI] Add browser tests for compositor API > > And fix a bug found with the tests. > BindGraphics() does not work for a device which is in the same type with the current bound device. > > BUG=374383 > R=piman@chromium.org, raymes@chromium.org > > Review URL: https://codereview.chromium.org/324983005 TBR=penghuang@chromium.org Review URL: https://codereview.chromium.org/342323006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@278765 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ppapi/examples')
-rw-r--r--ppapi/examples/compositor/compositor.cc52
1 files changed, 23 insertions, 29 deletions
diff --git a/ppapi/examples/compositor/compositor.cc b/ppapi/examples/compositor/compositor.cc
index e7e3f1f..360bfba 100644
--- a/ppapi/examples/compositor/compositor.cc
+++ b/ppapi/examples/compositor/compositor.cc
@@ -72,7 +72,6 @@ class DemoInstance : public pp::Instance, public pp::Graphics3DClient {
void InitGL(int32_t result);
GLuint PrepareFramebuffer();
pp::ImageData PrepareImage();
- void PrepareLayers(int32_t frame);
void Paint(int32_t result, int32_t frame);
void OnTextureReleased(int32_t result, GLuint texture);
void OnImageReleased(int32_t result, const pp::ImageData& image);
@@ -107,7 +106,8 @@ DemoInstance::DemoInstance(PP_Instance instance)
context_(NULL),
fbo_(0),
rbo_(0),
- rebuild_layers_(true),
+ compositor_(this),
+ rebuild_layers_(false),
total_resource_(0),
cube_(new SpinningCube()) {
RequestInputEvents(PP_INPUTEVENT_CLASS_MOUSE);
@@ -147,7 +147,11 @@ bool DemoInstance::HandleInputEvent(const pp::InputEvent& event) {
void DemoInstance::Graphics3DContextLost() {
fbo_ = 0;
rbo_ = 0;
- rebuild_layers_ = true;
+ compositor_.ResetLayers();
+ color_layer_ = pp::CompositorLayer();
+ stable_texture_layer_ = pp::CompositorLayer();
+ texture_layer_ = pp::CompositorLayer();
+ image_layer_ = pp::CompositorLayer();
total_resource_ -= static_cast<int32_t>(textures_.size());
textures_.clear();
delete context_;
@@ -256,12 +260,14 @@ pp::ImageData DemoInstance::PrepareImage() {
void DemoInstance::Paint(int32_t result, int32_t frame) {
assert(result == PP_OK);
+
if (result != PP_OK || !context_)
return;
+ int32_t rv;
+
if (rebuild_layers_) {
- compositor_ = pp::Compositor(this);
- assert(BindGraphics(compositor_));
+ compositor_.ResetLayers();
color_layer_ = pp::CompositorLayer();
stable_texture_layer_ = pp::CompositorLayer();
texture_layer_ = pp::CompositorLayer();
@@ -270,21 +276,6 @@ void DemoInstance::Paint(int32_t result, int32_t frame) {
rebuild_layers_ = false;
}
- PrepareLayers(frame);
-
- int32_t rv = compositor_.CommitLayers(
- callback_factory_.NewCallback(&DemoInstance::Paint, ++frame));
- assert(rv == PP_OK_COMPLETIONPENDING);
-
- pp::VarDictionary dict;
- dict.Set("total_resource", total_resource_);
- size_t free_resource = textures_.size() + images_.size();
- dict.Set("free_resource", static_cast<int32_t>(free_resource));
- PostMessage(dict);
-}
-
-void DemoInstance::PrepareLayers(int32_t frame) {
- int32_t rv;
float factor_sin = sin(M_PI / 180 * frame);
float factor_cos = cos(M_PI / 180 * frame);
{
@@ -404,23 +395,26 @@ void DemoInstance::PrepareLayers(int32_t frame) {
rv = texture_layer_.SetPremultipliedAlpha(PP_FALSE);
assert(rv == PP_OK);
}
+
+ rv = compositor_.CommitLayers(
+ callback_factory_.NewCallback(&DemoInstance::Paint, ++frame));
+ assert(rv == PP_OK_COMPLETIONPENDING);
+
+ pp::VarDictionary dict;
+ dict.Set(pp::Var("total_resource"), pp::Var(total_resource_));
+ dict.Set(pp::Var("free_resource"),
+ pp::Var((int32_t)(textures_.size() + images_.size())));
+ PostMessage(dict);
}
void DemoInstance::OnTextureReleased(int32_t result, GLuint texture) {
- if (result == PP_OK) {
+ if (result == PP_OK)
textures_.push_back(texture);
- } else {
- glDeleteTextures(1, &texture);
- total_resource_--;
- }
}
void DemoInstance::OnImageReleased(int32_t result, const pp::ImageData& image) {
- if (result == PP_OK) {
+ if (result == PP_OK)
images_.push_back(image);
- } else {
- total_resource_--;
- }
}
// This object is the global object representing this plugin library as long