⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 120457 in webkit


Ignore:
Timestamp:
Jun 15, 2012, 7:34:29 AM (14 years ago)
Author:
danakj@chromium.org
Message:

[chromium] Create a CCYUVVideoDrawQuad and remove the now-unused generic CCVideoDrawQuad
https://bugs.webkit.org/show_bug.cgi?id=88828

Reviewed by Adrienne Walker.

The CCVideoDrawQuad is now only used for YUV video, so we remove the
class and replace it with CCYUVVideoDrawQuad. This class holds what is
needed to draw a YUV video frame.

No new tests, no change in behaviour.

  • WebCore.gypi:
  • platform/graphics/chromium/LayerRendererChromium.cpp:

(WebCore::LayerRendererChromium::drawQuad):
(WebCore::LayerRendererChromium::drawYUVVideoQuad):

  • platform/graphics/chromium/LayerRendererChromium.h:

(WebCore):
(LayerRendererChromium):

  • platform/graphics/chromium/cc/CCDrawQuad.cpp:

(WebCore::CCDrawQuad::toYUVVideoDrawQuad):

  • platform/graphics/chromium/cc/CCDrawQuad.h:

(WebCore):
(CCDrawQuad):

  • platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:

(WebCore::CCVideoLayerImpl::appendQuads):

  • platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCVideoDrawQuad.cpp.

(WebCore):
(WebCore::CCYUVVideoDrawQuad::create):
(WebCore::CCYUVVideoDrawQuad::CCYUVVideoDrawQuad):

  • platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCVideoDrawQuad.h.

(WebCore):
(CCYUVVideoDrawQuad):
(WebCore::CCYUVVideoDrawQuad::yPlane):
(WebCore::CCYUVVideoDrawQuad::uPlane):
(WebCore::CCYUVVideoDrawQuad::vPlane):

Location:
trunk/Source/WebCore
Files:
7 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r120456 r120457  
     12012-06-11  Dana Jansens  <danakj@chromium.org>
     2
     3        [chromium] Create a CCYUVVideoDrawQuad and remove the now-unused generic CCVideoDrawQuad
     4        https://bugs.webkit.org/show_bug.cgi?id=88828
     5
     6        Reviewed by Adrienne Walker.
     7
     8        The CCVideoDrawQuad is now only used for YUV video, so we remove the
     9        class and replace it with CCYUVVideoDrawQuad. This class holds what is
     10        needed to draw a YUV video frame.
     11
     12        No new tests, no change in behaviour.
     13
     14        * WebCore.gypi:
     15        * platform/graphics/chromium/LayerRendererChromium.cpp:
     16        (WebCore::LayerRendererChromium::drawQuad):
     17        (WebCore::LayerRendererChromium::drawYUVVideoQuad):
     18        * platform/graphics/chromium/LayerRendererChromium.h:
     19        (WebCore):
     20        (LayerRendererChromium):
     21        * platform/graphics/chromium/cc/CCDrawQuad.cpp:
     22        (WebCore::CCDrawQuad::toYUVVideoDrawQuad):
     23        * platform/graphics/chromium/cc/CCDrawQuad.h:
     24        (WebCore):
     25        (CCDrawQuad):
     26        * platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:
     27        (WebCore::CCVideoLayerImpl::appendQuads):
     28        * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCVideoDrawQuad.cpp.
     29        (WebCore):
     30        (WebCore::CCYUVVideoDrawQuad::create):
     31        (WebCore::CCYUVVideoDrawQuad::CCYUVVideoDrawQuad):
     32        * platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h: Renamed from Source/WebCore/platform/graphics/chromium/cc/CCVideoDrawQuad.h.
     33        (WebCore):
     34        (CCYUVVideoDrawQuad):
     35        (WebCore::CCYUVVideoDrawQuad::yPlane):
     36        (WebCore::CCYUVVideoDrawQuad::uPlane):
     37        (WebCore::CCYUVVideoDrawQuad::vPlane):
     38
    1392012-06-15  Ilya Tikhonovsky  <loislo@chromium.org>
    240
  • trunk/Source/WebCore/WebCore.gypi

    r120432 r120457  
    37853785            'platform/graphics/chromium/cc/CCTimer.h',
    37863786            'platform/graphics/chromium/cc/CCTimeSource.h',
    3787             'platform/graphics/chromium/cc/CCVideoDrawQuad.cpp',
    3788             'platform/graphics/chromium/cc/CCVideoDrawQuad.h',
    37893787            'platform/graphics/chromium/cc/CCVideoLayerImpl.cpp',
    37903788            'platform/graphics/chromium/cc/CCVideoLayerImpl.h',
     3789            'platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp',
     3790            'platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h',
    37913791            'platform/graphics/cocoa/FontPlatformDataCocoa.mm',
    37923792            'platform/graphics/efl/FontEfl.cpp',
  • trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp

    r120360 r120457  
    7171#include "cc/CCTextureDrawQuad.h"
    7272#include "cc/CCTileDrawQuad.h"
    73 #include "cc/CCVideoDrawQuad.h"
     73#include "cc/CCYUVVideoDrawQuad.h"
    7474#include <public/WebVideoFrame.h>
    7575#include <wtf/CurrentTime.h>
     
    527527        drawTileQuad(quad->toTileDrawQuad());
    528528        break;
    529     case CCDrawQuad::VideoContent:
    530         drawVideoQuad(quad->toVideoDrawQuad());
     529    case CCDrawQuad::YUVVideoContent:
     530        drawYUVVideoQuad(quad->toYUVVideoDrawQuad());
    531531        break;
    532532    }
     
    984984}
    985985
    986 void LayerRendererChromium::drawYUV(const CCVideoDrawQuad* quad)
     986void LayerRendererChromium::drawYUVVideoQuad(const CCYUVVideoDrawQuad* quad)
    987987{
    988988    const VideoYUVProgram* program = videoYUVProgram();
    989989    ASSERT(program && program->initialized());
    990990
    991     const CCVideoLayerImpl::FramePlane& yPlane = quad->planes()[WebKit::WebVideoFrame::yPlane];
    992     const CCVideoLayerImpl::FramePlane& uPlane = quad->planes()[WebKit::WebVideoFrame::uPlane];
    993     const CCVideoLayerImpl::FramePlane& vPlane = quad->planes()[WebKit::WebVideoFrame::vPlane];
     991    const CCVideoLayerImpl::FramePlane& yPlane = quad->yPlane();
     992    const CCVideoLayerImpl::FramePlane& uPlane = quad->uPlane();
     993    const CCVideoLayerImpl::FramePlane& vPlane = quad->vPlane();
    994994
    995995    GLC(context(), context()->activeTexture(GraphicsContext3D::TEXTURE1));
     
    10661066                     program->fragmentShader().alphaLocation(),
    10671067                     -1);
    1068 }
    1069 
    1070 void LayerRendererChromium::drawVideoQuad(const CCVideoDrawQuad* quad)
    1071 {
    1072     ASSERT(CCProxy::isImplThread());
    1073 
    1074     switch (quad->format()) {
    1075     case GraphicsContext3D::LUMINANCE:
    1076         drawYUV(quad);
    1077         break;
    1078     default:
    1079         CRASH(); // Someone updated convertVFCFormatToGC3DFormat above but update this!
    1080     }
    10811068}
    10821069
  • trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h

    r120263 r120457  
    5252class CCTextureDrawQuad;
    5353class CCTileDrawQuad;
    54 class CCVideoDrawQuad;
     54class CCYUVVideoDrawQuad;
    5555class GeometryBinding;
    5656class GraphicsContext3D;
     
    136136    void drawIOSurfaceQuad(const CCIOSurfaceDrawQuad*);
    137137    void drawTileQuad(const CCTileDrawQuad*);
    138     void drawVideoQuad(const CCVideoDrawQuad*);
    139 
    140     void copyPlaneToTexture(const CCVideoDrawQuad*, const void* plane, int index);
    141     bool copyFrameToTextures(const CCVideoDrawQuad*);
    142     void drawStreamTexture(const CCVideoDrawQuad*);
    143     void drawYUV(const CCVideoDrawQuad*);
     138    void drawYUVVideoQuad(const CCYUVVideoDrawQuad*);
    144139
    145140    void setDrawFramebufferRect(const IntRect&, bool flipY);
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.cpp

    r120263 r120457  
    3737#include "cc/CCTextureDrawQuad.h"
    3838#include "cc/CCTileDrawQuad.h"
    39 #include "cc/CCVideoDrawQuad.h"
     39#include "cc/CCYUVVideoDrawQuad.h"
    4040
    4141namespace WebCore {
     
    115115}
    116116
    117 const CCVideoDrawQuad* CCDrawQuad::toVideoDrawQuad() const
     117const CCYUVVideoDrawQuad* CCDrawQuad::toYUVVideoDrawQuad() const
    118118{
    119119    ASSERT(m_material == VideoContent);
    120     return static_cast<const CCVideoDrawQuad*>(this);
     120    return static_cast<const CCYUVVideoDrawQuad*>(this);
    121121}
    122122
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.h

    r120263 r120457  
    3939class CCTextureDrawQuad;
    4040class CCTileDrawQuad;
    41 class CCVideoDrawQuad;
     41class CCYUVVideoDrawQuad;
    4242
    4343// CCDrawQuad is a bag of data used for drawing a quad. Because different
     
    7373        SolidColor,
    7474        TiledContent,
    75         VideoContent,
     75        YUVVideoContent,
    7676        StreamVideoContent,
    7777    };
     
    8888    const CCTextureDrawQuad* toTextureDrawQuad() const;
    8989    const CCTileDrawQuad* toTileDrawQuad() const;
    90     const CCVideoDrawQuad* toVideoDrawQuad() const;
     90    const CCYUVVideoDrawQuad* toYUVVideoDrawQuad() const;
    9191
    9292    const CCSharedQuadState* sharedQuadState() const { return m_sharedQuadState; }
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp

    r120263 r120457  
    4242#include "cc/CCStreamVideoDrawQuad.h"
    4343#include "cc/CCTextureDrawQuad.h"
    44 #include "cc/CCVideoDrawQuad.h"
     44#include "cc/CCYUVVideoDrawQuad.h"
    4545#include <public/WebVideoFrame.h>
    4646#include <wtf/text/WTFString.h>
     
    188188    case GraphicsContext3D::LUMINANCE: {
    189189        // YUV software decoder.
    190         OwnPtr<CCVideoDrawQuad> videoQuad = CCVideoDrawQuad::create(sharedQuadState, quadRect, m_framePlanes, 0, m_format, WebKit::WebTransformationMatrix());
    191         quadList.append(videoQuad.release());
     190        const FramePlane& yPlane = m_framePlanes[WebKit::WebVideoFrame::yPlane];
     191        const FramePlane& uPlane = m_framePlanes[WebKit::WebVideoFrame::uPlane];
     192        const FramePlane& vPlane = m_framePlanes[WebKit::WebVideoFrame::vPlane];
     193        OwnPtr<CCYUVVideoDrawQuad> yuvVideoQuad = CCYUVVideoDrawQuad::create(sharedQuadState, quadRect, yPlane, uPlane, vPlane);
     194        quadList.append(yuvVideoQuad.release());
    192195        break;
    193196    }
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp

    r120456 r120457  
    2626#include "config.h"
    2727
    28 #include "cc/CCVideoDrawQuad.h"
     28#include "cc/CCYUVVideoDrawQuad.h"
    2929
    3030namespace WebCore {
    3131
    32 PassOwnPtr<CCVideoDrawQuad> CCVideoDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, CCVideoLayerImpl::FramePlane planes[WebKit::WebVideoFrame::maxPlanes], unsigned frameProviderTextureId, GC3Denum format, const WebKit::WebTransformationMatrix& matrix)
     32PassOwnPtr<CCYUVVideoDrawQuad> CCYUVVideoDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane)
    3333{
    34     return adoptPtr(new CCVideoDrawQuad(sharedQuadState, quadRect, planes, frameProviderTextureId, format, matrix));
     34    return adoptPtr(new CCYUVVideoDrawQuad(sharedQuadState, quadRect, yPlane, uPlane, vPlane));
    3535}
    3636
    37 CCVideoDrawQuad::CCVideoDrawQuad(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, CCVideoLayerImpl::FramePlane planes[WebKit::WebVideoFrame::maxPlanes], unsigned frameProviderTextureId, GC3Denum format, const WebKit::WebTransformationMatrix& matrix)
    38     : CCDrawQuad(sharedQuadState, CCDrawQuad::VideoContent, quadRect)
    39     , m_frameProviderTextureId(frameProviderTextureId)
    40     , m_format(format)
    41     , m_matrix(matrix)
     37CCYUVVideoDrawQuad::CCYUVVideoDrawQuad(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane)
     38    : CCDrawQuad(sharedQuadState, CCDrawQuad::YUVVideoContent, quadRect)
     39    , m_yPlane(yPlane)
     40    , m_uPlane(uPlane)
     41    , m_vPlane(vPlane)
    4242{
    43     for (size_t i = 0; i < WebKit::WebVideoFrame::maxPlanes; ++i)
    44       m_planes[i] = planes[i];
    45 
    4643}
    4744
  • trunk/Source/WebCore/platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h

    r120456 r120457  
    2424 */
    2525
    26 #ifndef CCVideoDrawQuad_h
    27 #define CCVideoDrawQuad_h
     26#ifndef CCYUVVideoDrawQuad_h
     27#define CCYUVVideoDrawQuad_h
    2828
    29 #include "GraphicsTypes3D.h"
    3029#include "cc/CCDrawQuad.h"
    3130#include "cc/CCVideoLayerImpl.h"
    32 #include <public/WebTransformationMatrix.h>
    3331#include <wtf/PassOwnPtr.h>
    3432
    3533namespace WebCore {
    3634
    37 class CCVideoDrawQuad : public CCDrawQuad {
    38     WTF_MAKE_NONCOPYABLE(CCVideoDrawQuad);
     35class CCYUVVideoDrawQuad : public CCDrawQuad {
     36    WTF_MAKE_NONCOPYABLE(CCYUVVideoDrawQuad);
    3937public:
    40     static PassOwnPtr<CCVideoDrawQuad> create(const CCSharedQuadState*, const IntRect&, CCVideoLayerImpl::FramePlane planes[WebKit::WebVideoFrame::maxPlanes], unsigned frameProviderTextureId, GC3Denum format, const WebKit::WebTransformationMatrix&);
     38    static PassOwnPtr<CCYUVVideoDrawQuad> create(const CCSharedQuadState*, const IntRect&, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane);
    4139
    42     // Each index in this array corresponds to a plane in WebKit::WebVideoFrame.
    43     const CCVideoLayerImpl::FramePlane* planes() const { return m_planes; }
    44     unsigned frameProviderTextureId() const { return m_frameProviderTextureId; }
    45     GC3Denum format() const { return m_format; }
    46     const WebKit::WebTransformationMatrix& matrix() const { return m_matrix; }
     40    const CCVideoLayerImpl::FramePlane& yPlane() const { return m_yPlane; }
     41    const CCVideoLayerImpl::FramePlane& uPlane() const { return m_uPlane; }
     42    const CCVideoLayerImpl::FramePlane& vPlane() const { return m_vPlane; }
    4743
    4844private:
    49     CCVideoDrawQuad(const CCSharedQuadState*, const IntRect&, CCVideoLayerImpl::FramePlane planes[WebKit::WebVideoFrame::maxPlanes], unsigned frameProviderTextureId, GC3Denum format, const WebKit::WebTransformationMatrix&);
     45    CCYUVVideoDrawQuad(const CCSharedQuadState*, const IntRect&, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane);
    5046
    51     CCVideoLayerImpl::FramePlane m_planes[WebKit::WebVideoFrame::maxPlanes];
    52     unsigned m_frameProviderTextureId;
    53     GC3Denum m_format;
    54     WebKit::WebTransformationMatrix m_matrix;
     47    CCVideoLayerImpl::FramePlane m_yPlane;
     48    CCVideoLayerImpl::FramePlane m_uPlane;
     49    CCVideoLayerImpl::FramePlane m_vPlane;
    5550};
    5651
Note: See TracChangeset for help on using the changeset viewer.