chromium: remove CompositorHUDFontAtlas
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Feb 2013 21:22:55 +0000 (21:22 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Wed, 13 Feb 2013 21:22:55 +0000 (21:22 +0000)
https://bugs.webkit.org/show_bug.cgi?id=109328

Patch by Eberhard Graether <egraether@google.com> on 2013-02-13
Reviewed by James Robinson.

After switching the HudLayer to use skia's font rendering the
CompositorHUDFontAtlas has become obsolete. This change removes
this class and the related WebLayerTreeView API.

Source/Platform:

* chromium/public/WebLayerTreeViewClient.h:
(WebLayerTreeViewClient):

Source/WebCore:

No new tests.

* WebCore.gypi:
* platform/graphics/chromium/CompositorHUDFontAtlas.cpp: Removed.
* platform/graphics/chromium/CompositorHUDFontAtlas.h: Removed.

Source/WebKit/chromium:

* src/WebViewImpl.cpp:
* src/WebViewImpl.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@142782 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/Platform/ChangeLog
Source/Platform/chromium/public/WebLayerTreeViewClient.h
Source/WebCore/ChangeLog
Source/WebCore/WebCore.gypi
Source/WebCore/platform/graphics/chromium/CompositorHUDFontAtlas.cpp [deleted file]
Source/WebCore/platform/graphics/chromium/CompositorHUDFontAtlas.h [deleted file]
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/WebViewImpl.cpp
Source/WebKit/chromium/src/WebViewImpl.h

index d119b5d3c650ca67dfdac3a26d0251839fadbac0..83b167a1e6ac6500b8eb12ad756278a48d77d40d 100644 (file)
@@ -1,3 +1,17 @@
+2013-02-13  Eberhard Graether  <egraether@google.com>
+
+        chromium: remove CompositorHUDFontAtlas
+        https://bugs.webkit.org/show_bug.cgi?id=109328
+
+        Reviewed by James Robinson.
+
+        After switching the HudLayer to use skia's font rendering the
+        CompositorHUDFontAtlas has become obsolete. This change removes
+        this class and the related WebLayerTreeView API.
+
+        * chromium/public/WebLayerTreeViewClient.h:
+        (WebLayerTreeViewClient):
+
 2013-02-13  Tommy Widenflycht  <tommyw@google.com>
 
         MediaStream API: Use the source id when creating new tracks
index 2ca6b0a51edcb2ff477f8c904a64a52f803fffea..94c5802bdc8c4549424fcdc1fed6e40e47218f17 100644 (file)
@@ -93,11 +93,6 @@ public:
     // internally schedule a compositing pass when needed.
     virtual void scheduleComposite() = 0;
 
-    // Creates a font atlas to use for debug visualizations. The atlas is a bitmap
-    // containing glyph data, a table of ASCII character values to a subrectangle
-    // of the atlas representing the corresponding glyph, and the glyph height.
-    virtual void createFontAtlas(SkBitmap&, WebRect asciiToRectTable[128], int& fontHeight) { }
-
 protected:
     virtual ~WebLayerTreeViewClient() { }
 };
index 8334db694b563f2d621d384c0ae8bc58c206c424..d424848c1d0d5ce9f6388bc0fed337f4d08e882d 100644 (file)
@@ -1,3 +1,20 @@
+2013-02-13  Eberhard Graether  <egraether@google.com>
+
+        chromium: remove CompositorHUDFontAtlas
+        https://bugs.webkit.org/show_bug.cgi?id=109328
+
+        Reviewed by James Robinson.
+
+        After switching the HudLayer to use skia's font rendering the
+        CompositorHUDFontAtlas has become obsolete. This change removes
+        this class and the related WebLayerTreeView API.
+
+        No new tests.
+
+        * WebCore.gypi:
+        * platform/graphics/chromium/CompositorHUDFontAtlas.cpp: Removed.
+        * platform/graphics/chromium/CompositorHUDFontAtlas.h: Removed.
+
 2013-02-13  Dean Jackson  <dino@apple.com>
 
         Small update to speech bubble for captions menu [Mac]
index 6d79aeaf3f58dcdfbb2c9763057f095cd03dd07d..666200cb737a1417f658f07e1f22954908e8c787 100644 (file)
             'platform/graphics/chromium/Canvas2DLayerBridge.h',
             'platform/graphics/chromium/Canvas2DLayerManager.cpp',
             'platform/graphics/chromium/Canvas2DLayerManager.h',
-            'platform/graphics/chromium/CompositorHUDFontAtlas.cpp',
-            'platform/graphics/chromium/CompositorHUDFontAtlas.h',
             'platform/graphics/chromium/CrossProcessFontLoading.h',
             'platform/graphics/chromium/CrossProcessFontLoading.mm',
             'platform/graphics/chromium/DeferredImageDecoder.cpp',
diff --git a/Source/WebCore/platform/graphics/chromium/CompositorHUDFontAtlas.cpp b/Source/WebCore/platform/graphics/chromium/CompositorHUDFontAtlas.cpp
deleted file mode 100644 (file)
index d8f010e..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#include "config.h"
-
-#include "CompositorHUDFontAtlas.h"
-
-#include "Font.h"
-#include "FontCache.h"
-#include "FontDescription.h"
-#include "GraphicsContext.h"
-#include "PlatformContextSkia.h"
-#include "SkCanvas.h"
-#include "SkDevice.h"
-#include "TextRun.h"
-#include "skia/ext/platform_canvas.h"
-
-using WebKit::WebRect;
-
-namespace WebCore {
-
-#define ATLAS_SIZE 128
-
-static void wrapPositionIfNeeded(IntPoint& position, int textWidth, int textHeight)
-{
-    if (position.x() + textWidth > ATLAS_SIZE)
-        position = IntPoint(0, position.y() + textHeight);
-}
-
-// Paints the font into the atlas, from left-to-right, top-to-bottom, starting at
-// startingPosition. At the same time, it updates the ascii-to-WebRect mapping for
-// each character. By doing things this way, it is possible to support variable-width
-// fonts and multiple fonts on the same atlas.
-SkBitmap CompositorHUDFontAtlas::generateFontAtlas(WebRect asciiToRectTable[128], int& fontHeight)
-{
-    fontHeight = 14;
-
-    OwnPtr<SkCanvas> canvas = adoptPtr(skia::CreateBitmapCanvas(ATLAS_SIZE, ATLAS_SIZE, false /* opaque */));
-
-    PlatformContextSkia platformContext(canvas.get());
-    GraphicsContext atlasContext(&platformContext);
-    atlasContext.setShouldSmoothFonts(false);
-
-    // Clear the entire texture atlas to transparent before drawing fonts.
-    atlasContext.setFillColor(Color(0, 0, 0, 0), ColorSpaceDeviceRGB);
-    atlasContext.clearRect(FloatRect(0, 0, ATLAS_SIZE, ATLAS_SIZE));
-
-    // FIXME: monospace font does not work as expected.
-    FontDescription fontDescription;
-    fontDescription.setGenericFamily(FontDescription::MonospaceFamily);
-    fontDescription.setComputedSize(fontHeight);
-
-    FontCachePurgePreventer fontCachePurgePreventer;
-
-    int textHeight = fontDescription.computedPixelSize();
-    IntPoint position(0, textHeight);
-    // This is a dirty little trick to account for overhang letters like g, p, j.
-    int inflation = textHeight / 3;
-
-    Font font(fontDescription, 0, 0);
-    font.update(0);
-
-    Color fontColor(255, 0, 0);
-    atlasContext.setStrokeColor(fontColor, ColorSpaceDeviceRGB);
-    atlasContext.setFillColor(fontColor, ColorSpaceDeviceRGB);
-
-    // First, draw a generic rect that will be used for special and unknown characters that have nothing else to render.
-    {
-        int textWidth = textHeight / 2;
-        wrapPositionIfNeeded(position, textWidth, textHeight + inflation);
-        atlasContext.strokeRect(FloatRect(FloatPoint(position.x() + 1, position.y() - textHeight + 1 + inflation), FloatSize(textWidth - 2, textHeight - 2 - inflation)), 1);
-
-        // Initialize the rect that would be copied when drawing this glyph from the atlas.
-        asciiToRectTable[0] = WebRect(position.x(), position.y() - textHeight, textWidth, textHeight + inflation);
-
-        // Increment to the position where the next glyph will be placed.
-        position.setX(position.x() + textWidth);
-    }
-
-    // Then, draw the ASCII characters.
-    for (LChar i = 1; i < 128; ++i) {
-        if (i < 32) {
-            // Special characters will simply use the the default glyph.
-            asciiToRectTable[i] = asciiToRectTable[0];
-            continue;
-        }
-
-        String str;
-        str.append(i);
-        TextRun text(str);
-
-        int textWidth = round(font.width(text));
-        wrapPositionIfNeeded(position, textWidth, textHeight + inflation);
-        atlasContext.drawText(font, text, position);
-
-        // Initialize the rect that would be copied when drawing this glyph from the atlas.
-        asciiToRectTable[i] = WebRect(position.x(), position.y() - textHeight, textWidth, textHeight + inflation);
-
-        // Increment to the position where the next glyph will be placed.
-        position.setX(position.x() + textWidth);
-    }
-
-    SkBitmap copy;
-    const SkBitmap& source = canvas->getDevice()->accessBitmap(false);
-    source.copyTo(&copy, source.config());
-    return copy;
-}
-
-} // namespace WebCore
diff --git a/Source/WebCore/platform/graphics/chromium/CompositorHUDFontAtlas.h b/Source/WebCore/platform/graphics/chromium/CompositorHUDFontAtlas.h
deleted file mode 100644 (file)
index 91bab5d..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2012 Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef CompositorHUDFontAtlas_h
-#define CompositorHUDFontAtlas_h
-
-#include "SkBitmap.h"
-#include <public/WebRect.h>
-
-namespace WebCore {
-
-class CompositorHUDFontAtlas {
-public:
-    // This is a helper function that can generate a font atlas suitable for the compositor's heads up display.
-    // Returns a bitmap containing glyphs and populates asciiToRectTable with the
-    // location of each glyph.
-    static SkBitmap generateFontAtlas(WebKit::WebRect asciiToRectTable[128], int& fontHeight);
-};
-
-} // namespace WebCore
-
-#endif // CompositorHUDFontAtlas_h
-
index a04ded50c3046fc7aca196e00bc734295f6d7f0b..a5834ff9a91fd175f66cde6695680b99c548aa07 100644 (file)
@@ -1,3 +1,17 @@
+2013-02-13  Eberhard Graether  <egraether@google.com>
+
+        chromium: remove CompositorHUDFontAtlas
+        https://bugs.webkit.org/show_bug.cgi?id=109328
+
+        Reviewed by James Robinson.
+
+        After switching the HudLayer to use skia's font rendering the
+        CompositorHUDFontAtlas has become obsolete. This change removes
+        this class and the related WebLayerTreeView API.
+
+        * src/WebViewImpl.cpp:
+        * src/WebViewImpl.h:
+
 2013-02-13  Sheriff Bot  <webkit.review.bot@gmail.com>
 
         Unreviewed.  Rolled Chromium DEPS to r182150.  Requested by
index 0541f33a6f5849afa88f7f85922bc7bcc7262787..09fb341cfee4385f16dd2f7683d0fd01569eef25 100644 (file)
@@ -41,7 +41,6 @@
 #include "Color.h"
 #include "ColorSpace.h"
 #include "CompositionUnderlineVectorBuilder.h"
-#include "CompositorHUDFontAtlas.h"
 #include "ContextFeaturesClientImpl.h"
 #include "ContextMenu.h"
 #include "ContextMenuController.h"
@@ -4259,12 +4258,6 @@ void WebViewImpl::scheduleComposite()
     m_client->scheduleComposite();
 }
 
-void WebViewImpl::createFontAtlas(SkBitmap& bitmap, WebRect asciiToRectTable[128], int& fontHeight)
-{
-    TRACE_EVENT0("webkit", "WebViewImpl::loadFontAtlas");
-    bitmap = WebCore::CompositorHUDFontAtlas::generateFontAtlas(asciiToRectTable, fontHeight);
-}
-
 void WebViewImpl::updateLayerTreeViewport()
 {
     if (!page() || !m_nonCompositedContentHost || !m_layerTreeView)
index 9266fbca9dc09ddd41d20cbf99429f38a3b045ed..b791fa303c4a6c3dac54ca0f0a34701347eaed97 100644 (file)
@@ -328,7 +328,6 @@ public:
     virtual void didCommitAndDrawFrame();
     virtual void didCompleteSwapBuffers();
     virtual void scheduleComposite();
-    virtual void createFontAtlas(SkBitmap&, WebRect[128], int&);
 
     // WebViewImpl