summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authordanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-29 05:56:22 +0000
committerdanakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-29 05:56:22 +0000
commit45155d7f2d79e174501b70b9860aae2ee9ab70cc (patch)
tree7a028a03b63f50917e7081dff14b47c381b35c10 /cc
parentb0b99737002b9c02e3fd2e25eaa366f3a6a882c2 (diff)
downloadchromium_src-45155d7f2d79e174501b70b9860aae2ee9ab70cc.zip
chromium_src-45155d7f2d79e174501b70b9860aae2ee9ab70cc.tar.gz
chromium_src-45155d7f2d79e174501b70b9860aae2ee9ab70cc.tar.bz2
cc: Don't AllocateForTesting() in the HUD layer.
This has resolved itself and doesn't need to be done anymore to avoid DCHECKs. Now we call SetPixels() every frame before we draw the layer, so it is always initialized. TBR=epenner BUG=166784 Review URL: https://chromiumcodereview.appspot.com/13281002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@191311 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r--cc/layers/heads_up_display_layer_impl.cc35
-rw-r--r--cc/layers/heads_up_display_layer_impl.h2
2 files changed, 16 insertions, 21 deletions
diff --git a/cc/layers/heads_up_display_layer_impl.cc b/cc/layers/heads_up_display_layer_impl.cc
index 270e04d..5c99e2e 100644
--- a/cc/layers/heads_up_display_layer_impl.cc
+++ b/cc/layers/heads_up_display_layer_impl.cc
@@ -84,32 +84,27 @@ scoped_ptr<LayerImpl> HeadsUpDisplayLayerImpl::CreateLayerImpl(
void HeadsUpDisplayLayerImpl::WillDraw(ResourceProvider* resource_provider) {
LayerImpl::WillDraw(resource_provider);
- if (!hud_texture_)
- hud_texture_ = ScopedResource::create(resource_provider);
+ if (!hud_resource_)
+ hud_resource_ = ScopedResource::create(resource_provider);
// TODO(danakj): Scale the HUD by device scale to make it more friendly under
// high DPI.
// TODO(danakj): The HUD could swap between two textures instead of creating a
// texture every frame in ubercompositor.
- if (hud_texture_->size() != bounds() ||
- resource_provider->InUseByConsumer(hud_texture_->id()))
- hud_texture_->Free();
+ if (hud_resource_->size() != bounds() ||
+ resource_provider->InUseByConsumer(hud_resource_->id()))
+ hud_resource_->Free();
- if (!hud_texture_->id()) {
- hud_texture_->Allocate(
+ if (!hud_resource_->id()) {
+ hud_resource_->Allocate(
bounds(), GL_RGBA, ResourceProvider::TextureUsageAny);
- // TODO(epenner): This texture was being used before SetPixels was called,
- // which is now not allowed (it's an uninitialized read). This should be
- // fixed and this allocateForTesting() removed.
- // http://crbug.com/166784
- resource_provider->AllocateForTesting(hud_texture_->id());
}
}
void HeadsUpDisplayLayerImpl::AppendQuads(QuadSink* quad_sink,
AppendQuadsData* append_quads_data) {
- if (!hud_texture_->id())
+ if (!hud_resource_->id())
return;
SharedQuadState* shared_quad_state =
@@ -126,7 +121,7 @@ void HeadsUpDisplayLayerImpl::AppendQuads(QuadSink* quad_sink,
quad->SetNew(shared_quad_state,
quad_rect,
opaque_rect,
- hud_texture_->id(),
+ hud_resource_->id(),
premultiplied_alpha,
uv_top_left,
uv_bottom_right,
@@ -137,7 +132,7 @@ void HeadsUpDisplayLayerImpl::AppendQuads(QuadSink* quad_sink,
void HeadsUpDisplayLayerImpl::UpdateHudTexture(
ResourceProvider* resource_provider) {
- if (!hud_texture_->id())
+ if (!hud_resource_->id())
return;
SkISize canvas_size;
@@ -163,7 +158,7 @@ void HeadsUpDisplayLayerImpl::UpdateHudTexture(
gfx::Rect layer_rect(bounds());
DCHECK(bitmap->config() == SkBitmap::kARGB_8888_Config);
- resource_provider->SetPixels(hud_texture_->id(),
+ resource_provider->SetPixels(hud_resource_->id(),
static_cast<const uint8_t*>(bitmap->getPixels()),
layer_rect,
layer_rect,
@@ -173,16 +168,16 @@ void HeadsUpDisplayLayerImpl::UpdateHudTexture(
void HeadsUpDisplayLayerImpl::DidDraw(ResourceProvider* resource_provider) {
LayerImpl::DidDraw(resource_provider);
- if (!hud_texture_->id())
+ if (!hud_resource_->id())
return;
// FIXME: the following assert will not be true when sending resources to a
- // parent compositor. We will probably need to hold on to hud_texture_ for
+ // parent compositor. We will probably need to hold on to hud_resource_ for
// longer, and have several HUD textures in the pipeline.
- DCHECK(!resource_provider->InUseByConsumer(hud_texture_->id()));
+ DCHECK(!resource_provider->InUseByConsumer(hud_resource_->id()));
}
-void HeadsUpDisplayLayerImpl::DidLoseOutputSurface() { hud_texture_.reset(); }
+void HeadsUpDisplayLayerImpl::DidLoseOutputSurface() { hud_resource_.reset(); }
bool HeadsUpDisplayLayerImpl::LayerIsAlwaysDamaged() const { return true; }
diff --git a/cc/layers/heads_up_display_layer_impl.h b/cc/layers/heads_up_display_layer_impl.h
index 0940dea..7e7f2df 100644
--- a/cc/layers/heads_up_display_layer_impl.h
+++ b/cc/layers/heads_up_display_layer_impl.h
@@ -109,7 +109,7 @@ class CC_EXPORT HeadsUpDisplayLayerImpl : public LayerImpl {
void DrawDebugRects(SkCanvas* canvas,
DebugRectHistory* debug_rect_history) const;
- scoped_ptr<ScopedResource> hud_texture_;
+ scoped_ptr<ScopedResource> hud_resource_;
scoped_ptr<SkCanvas> hud_canvas_;
skia::RefPtr<SkTypeface> typeface_;