Changeset 84546 in webkit


Ignore:
Timestamp:
Apr 21, 2011 2:22:27 PM (13 years ago)
Author:
commit-queue@webkit.org
Message:

2011-04-21 Nat Duca <nduca@chromium.org>

Reviewed by James Robinson.

[chromium] Fix artefacts in compositor HUD when resizing
https://bugs.webkit.org/show_bug.cgi?id=58969

HUD was using the tiler program and not setting the texture
transform. The HUD would thus draw with a texture transform based
on the last tile drawn, leading sometimes to distortion.

  • platform/graphics/chromium/LayerRendererChromium.cpp: (WebCore::LayerRendererChromium::initializeSharedObjects): (WebCore::LayerRendererChromium::cleanupSharedObjects):
  • platform/graphics/chromium/LayerRendererChromium.h: (WebCore::LayerRendererChromium::headsUpDisplayProgram):
  • platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp: (WebCore::CCHeadsUpDisplay::draw):
  • platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
Location:
trunk/Source/WebCore
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r84545 r84546  
     12011-04-21  Nat Duca  <nduca@chromium.org>
     2
     3        Reviewed by James Robinson.
     4
     5        [chromium] Fix artefacts in compositor HUD when resizing
     6        https://bugs.webkit.org/show_bug.cgi?id=58969
     7
     8        HUD was using the tiler program and not setting the texture
     9        transform. The HUD would thus draw with a texture transform based
     10        on the last tile drawn, leading sometimes to distortion.
     11
     12        * platform/graphics/chromium/LayerRendererChromium.cpp:
     13        (WebCore::LayerRendererChromium::initializeSharedObjects):
     14        (WebCore::LayerRendererChromium::cleanupSharedObjects):
     15        * platform/graphics/chromium/LayerRendererChromium.h:
     16        (WebCore::LayerRendererChromium::headsUpDisplayProgram):
     17        * platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
     18        (WebCore::CCHeadsUpDisplay::draw):
     19        * platform/graphics/chromium/cc/CCHeadsUpDisplay.h:
     20
    1212011-04-21  Mike Reed  <reed@google.com>
    222
  • trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp

    r84101 r84546  
    986986    m_sharedGeometry = adoptPtr(new GeometryBinding(m_context.get()));
    987987    m_borderProgram = adoptPtr(new LayerChromium::BorderProgram(m_context.get()));
     988    m_headsUpDisplayProgram = adoptPtr(new CCHeadsUpDisplay::Program(m_context.get()));
    988989    m_canvasLayerProgram = adoptPtr(new CCCanvasLayerImpl::Program(m_context.get()));
    989990    m_videoLayerRGBAProgram = adoptPtr(new CCVideoLayerImpl::RGBAProgram(m_context.get()));
     
    996997    if (!m_sharedGeometry->initialized() || !m_borderProgram->initialized()
    997998        || !m_canvasLayerProgram->initialized()
     999        || !m_headsUpDisplayProgram->initialized()
    9981000        || !m_videoLayerRGBAProgram->initialized() || !m_videoLayerYUVProgram->initialized()
    9991001        || !m_pluginLayerProgram->initialized() || !m_renderSurfaceProgram->initialized()
     
    10151017    m_borderProgram.clear();
    10161018    m_canvasLayerProgram.clear();
     1019    m_headsUpDisplayProgram.clear();
    10171020    m_videoLayerRGBAProgram.clear();
    10181021    m_videoLayerYUVProgram.clear();
  • trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h

    r84101 r84546  
    111111    const GeometryBinding* sharedGeometry() const { return m_sharedGeometry.get(); }
    112112    const LayerChromium::BorderProgram* borderProgram() const { return m_borderProgram.get(); }
     113    const CCHeadsUpDisplay::Program* headsUpDisplayProgram() const { return m_headsUpDisplayProgram.get(); }
    113114    const RenderSurfaceChromium::Program* renderSurfaceProgram() const { return m_renderSurfaceProgram.get(); }
    114115    const RenderSurfaceChromium::MaskProgram* renderSurfaceMaskProgram() const { return m_renderSurfaceMaskProgram.get(); }
     
    206207    OwnPtr<GeometryBinding> m_sharedGeometry;
    207208    OwnPtr<LayerChromium::BorderProgram> m_borderProgram;
     209    OwnPtr<CCHeadsUpDisplay::Program> m_headsUpDisplayProgram;
    208210    OwnPtr<RenderSurfaceChromium::Program> m_renderSurfaceProgram;
    209211    OwnPtr<RenderSurfaceChromium::MaskProgram> m_renderSurfaceMaskProgram;
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp

    r83944 r84546  
    3333#include "GraphicsContext3D.h"
    3434#include "LayerChromium.h"
     35#include "LayerRendererChromium.h"
    3536#include "LayerTexture.h"
    3637#include "TextRun.h"
     
    110111
    111112    // Draw the HUD onto the default render surface.
    112     const LayerTilerChromium::Program* program = m_layerRenderer->tilerProgram();
     113    const Program* program = m_layerRenderer->headsUpDisplayProgram();
    113114    ASSERT(program && program->initialized());
    114115    GLC(context, context->activeTexture(GraphicsContext3D::TEXTURE0));
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCHeadsUpDisplay.h

    r83944 r84546  
    2929
    3030#include "Font.h"
    31 #include "LayerRendererChromium.h"
    32 
     31#include "ProgramBinding.h"
     32#include "ShaderChromium.h"
    3333
    3434namespace WebCore {
     
    3636class GeometryBinding;
    3737class GraphicsContext3D;
     38class LayerRendererChromium;
     39class LayerTexture;
    3840
    3941// Class that handles drawing of composited render layers using GL.
     
    5860    bool enabled() const { return m_showPlatformLayerTree || m_showFPSCounter; }
    5961    void draw();
     62
     63    typedef ProgramBinding<VertexShaderPosTex, FragmentShaderBGRATexAlpha> Program;
    6064
    6165private:
Note: See TracChangeset for help on using the changeset viewer.