| OLD | NEW |
| 1 // Copyright 2011 The Chromium Authors. All rights reserved. | 1 // Copyright 2011 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 #include "webkit/compositor_bindings/web_external_texture_layer_impl.h" | 5 #include "webkit/compositor_bindings/web_external_texture_layer_impl.h" |
| 6 | 6 |
| 7 #include "cc/resource_update_queue.h" | 7 #include "cc/resource_update_queue.h" |
| 8 #include "cc/texture_layer.h" | 8 #include "cc/texture_layer.h" |
| 9 #include "third_party/WebKit/Source/Platform/chromium/public/WebExternalTextureL
ayerClient.h" | 9 #include "third_party/WebKit/Source/Platform/chromium/public/WebExternalTextureL
ayerClient.h" |
| 10 #include "third_party/WebKit/Source/Platform/chromium/public/WebFloatRect.h" | 10 #include "third_party/WebKit/Source/Platform/chromium/public/WebFloatRect.h" |
| 11 #include "third_party/WebKit/Source/Platform/chromium/public/WebSize.h" | 11 #include "third_party/WebKit/Source/Platform/chromium/public/WebSize.h" |
| 12 #include "webkit/compositor_bindings/web_layer_impl.h" | 12 #include "webkit/compositor_bindings/web_layer_impl.h" |
| 13 | 13 |
| 14 using namespace cc; | 14 using cc::TextureLayer; |
| 15 using cc::ResourceUpdateQueue; |
| 15 | 16 |
| 16 namespace WebKit { | 17 namespace webkit { |
| 17 | 18 |
| 18 WebExternalTextureLayerImpl::WebExternalTextureLayerImpl( | 19 WebExternalTextureLayerImpl::WebExternalTextureLayerImpl( |
| 19 WebExternalTextureLayerClient* client) | 20 WebKit::WebExternalTextureLayerClient* client) |
| 20 : client_(client) { | 21 : client_(client) { |
| 21 scoped_refptr<TextureLayer> layer; | 22 scoped_refptr<TextureLayer> layer; |
| 22 if (client_) | 23 if (client_) |
| 23 layer = TextureLayer::Create(this); | 24 layer = TextureLayer::Create(this); |
| 24 else | 25 else |
| 25 layer = TextureLayer::Create(NULL); | 26 layer = TextureLayer::Create(NULL); |
| 26 layer->SetIsDrawable(true); | 27 layer->SetIsDrawable(true); |
| 27 layer_.reset(new WebLayerImpl(layer)); | 28 layer_.reset(new WebLayerImpl(layer)); |
| 28 } | 29 } |
| 29 | 30 |
| 30 WebExternalTextureLayerImpl::~WebExternalTextureLayerImpl() { | 31 WebExternalTextureLayerImpl::~WebExternalTextureLayerImpl() { |
| 31 static_cast<TextureLayer*>(layer_->layer())->ClearClient(); | 32 static_cast<TextureLayer*>(layer_->layer())->ClearClient(); |
| 32 } | 33 } |
| 33 | 34 |
| 34 WebLayer* WebExternalTextureLayerImpl::layer() { return layer_.get(); } | 35 WebKit::WebLayer* WebExternalTextureLayerImpl::layer() { return layer_.get(); } |
| 35 | 36 |
| 36 void WebExternalTextureLayerImpl::setTextureId(unsigned id) { | 37 void WebExternalTextureLayerImpl::setTextureId(unsigned id) { |
| 37 static_cast<TextureLayer*>(layer_->layer())->SetTextureId(id); | 38 static_cast<TextureLayer*>(layer_->layer())->SetTextureId(id); |
| 38 } | 39 } |
| 39 | 40 |
| 40 void WebExternalTextureLayerImpl::setFlipped(bool flipped) { | 41 void WebExternalTextureLayerImpl::setFlipped(bool flipped) { |
| 41 static_cast<TextureLayer*>(layer_->layer())->SetFlipped(flipped); | 42 static_cast<TextureLayer*>(layer_->layer())->SetFlipped(flipped); |
| 42 } | 43 } |
| 43 | 44 |
| 44 void WebExternalTextureLayerImpl::setUVRect(const WebFloatRect& rect) { | 45 void WebExternalTextureLayerImpl::setUVRect(const WebKit::WebFloatRect& rect) { |
| 45 static_cast<TextureLayer*>(layer_->layer())->SetUV( | 46 static_cast<TextureLayer*>(layer_->layer())->SetUV( |
| 46 gfx::PointF(rect.x, rect.y), | 47 gfx::PointF(rect.x, rect.y), |
| 47 gfx::PointF(rect.x + rect.width, rect.y + rect.height)); | 48 gfx::PointF(rect.x + rect.width, rect.y + rect.height)); |
| 48 } | 49 } |
| 49 | 50 |
| 50 void WebExternalTextureLayerImpl::setOpaque(bool opaque) { | 51 void WebExternalTextureLayerImpl::setOpaque(bool opaque) { |
| 51 static_cast<TextureLayer*>(layer_->layer())->SetContentsOpaque(opaque); | 52 static_cast<TextureLayer*>(layer_->layer())->SetContentsOpaque(opaque); |
| 52 } | 53 } |
| 53 | 54 |
| 54 void WebExternalTextureLayerImpl::setPremultipliedAlpha( | 55 void WebExternalTextureLayerImpl::setPremultipliedAlpha( |
| 55 bool premultiplied_alpha) { | 56 bool premultiplied_alpha) { |
| 56 static_cast<TextureLayer*>(layer_->layer())->SetPremultipliedAlpha( | 57 static_cast<TextureLayer*>(layer_->layer())->SetPremultipliedAlpha( |
| 57 premultiplied_alpha); | 58 premultiplied_alpha); |
| 58 } | 59 } |
| 59 | 60 |
| 60 void WebExternalTextureLayerImpl::willModifyTexture() { | 61 void WebExternalTextureLayerImpl::willModifyTexture() { |
| 61 static_cast<TextureLayer*>(layer_->layer())->WillModifyTexture(); | 62 static_cast<TextureLayer*>(layer_->layer())->WillModifyTexture(); |
| 62 } | 63 } |
| 63 | 64 |
| 64 void WebExternalTextureLayerImpl::setRateLimitContext(bool rate_limit) { | 65 void WebExternalTextureLayerImpl::setRateLimitContext(bool rate_limit) { |
| 65 static_cast<TextureLayer*>(layer_->layer())->SetRateLimitContext(rate_limit); | 66 static_cast<TextureLayer*>(layer_->layer())->SetRateLimitContext(rate_limit); |
| 66 } | 67 } |
| 67 | 68 |
| 68 class WebTextureUpdaterImpl : public WebTextureUpdater { | 69 class WebTextureUpdaterImpl : public WebKit::WebTextureUpdater { |
| 69 public: | 70 public: |
| 70 explicit WebTextureUpdaterImpl(ResourceUpdateQueue& queue) : queue_(queue) {} | 71 explicit WebTextureUpdaterImpl(ResourceUpdateQueue* queue) : queue_(queue) {} |
| 71 | 72 |
| 72 virtual void appendCopy(unsigned source_texture, | 73 virtual void appendCopy(unsigned source_texture, |
| 73 unsigned destination_texture, | 74 unsigned destination_texture, |
| 74 WebSize size) OVERRIDE { | 75 WebKit::WebSize size) OVERRIDE { |
| 75 TextureCopier::Parameters copy = { source_texture, destination_texture, | 76 cc::TextureCopier::Parameters copy = { source_texture, destination_texture, |
| 76 size }; | 77 size }; |
| 77 queue_.appendCopy(copy); | 78 queue_->appendCopy(copy); |
| 78 } | 79 } |
| 79 | 80 |
| 80 private: | 81 private: |
| 81 ResourceUpdateQueue& queue_; | 82 ResourceUpdateQueue* queue_; |
| 82 }; | 83 }; |
| 83 | 84 |
| 84 unsigned WebExternalTextureLayerImpl::prepareTexture( | 85 unsigned WebExternalTextureLayerImpl::prepareTexture( |
| 85 ResourceUpdateQueue& queue) { | 86 ResourceUpdateQueue& queue) { |
| 86 DCHECK(client_); | 87 DCHECK(client_); |
| 87 WebTextureUpdaterImpl updater_impl(queue); | 88 WebTextureUpdaterImpl updater_impl(&queue); |
| 88 return client_->prepareTexture(updater_impl); | 89 return client_->prepareTexture(updater_impl); |
| 89 } | 90 } |
| 90 | 91 |
| 91 WebGraphicsContext3D* WebExternalTextureLayerImpl::context() { | 92 WebKit::WebGraphicsContext3D* WebExternalTextureLayerImpl::context() { |
| 92 DCHECK(client_); | 93 DCHECK(client_); |
| 93 return client_->context(); | 94 return client_->context(); |
| 94 } | 95 } |
| 95 | 96 |
| 96 } // namespace WebKit | 97 } // namespace webkit |
| OLD | NEW |