Changeset 120457 in webkit
- Timestamp:
- Jun 15, 2012, 7:34:29 AM (14 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 7 edited
- 2 moved
-
ChangeLog (modified) (1 diff)
-
WebCore.gypi (modified) (1 diff)
-
platform/graphics/chromium/LayerRendererChromium.cpp (modified) (4 diffs)
-
platform/graphics/chromium/LayerRendererChromium.h (modified) (2 diffs)
-
platform/graphics/chromium/cc/CCDrawQuad.cpp (modified) (2 diffs)
-
platform/graphics/chromium/cc/CCDrawQuad.h (modified) (3 diffs)
-
platform/graphics/chromium/cc/CCVideoLayerImpl.cpp (modified) (2 diffs)
-
platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp (moved) (moved from trunk/Source/WebCore/platform/graphics/chromium/cc/CCVideoDrawQuad.cpp ) (1 diff)
-
platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h (moved) (moved from trunk/Source/WebCore/platform/graphics/chromium/cc/CCVideoDrawQuad.h ) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r120456 r120457 1 2012-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 1 39 2012-06-15 Ilya Tikhonovsky <loislo@chromium.org> 2 40 -
trunk/Source/WebCore/WebCore.gypi
r120432 r120457 3785 3785 'platform/graphics/chromium/cc/CCTimer.h', 3786 3786 'platform/graphics/chromium/cc/CCTimeSource.h', 3787 'platform/graphics/chromium/cc/CCVideoDrawQuad.cpp',3788 'platform/graphics/chromium/cc/CCVideoDrawQuad.h',3789 3787 'platform/graphics/chromium/cc/CCVideoLayerImpl.cpp', 3790 3788 'platform/graphics/chromium/cc/CCVideoLayerImpl.h', 3789 'platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp', 3790 'platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h', 3791 3791 'platform/graphics/cocoa/FontPlatformDataCocoa.mm', 3792 3792 'platform/graphics/efl/FontEfl.cpp', -
trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
r120360 r120457 71 71 #include "cc/CCTextureDrawQuad.h" 72 72 #include "cc/CCTileDrawQuad.h" 73 #include "cc/CC VideoDrawQuad.h"73 #include "cc/CCYUVVideoDrawQuad.h" 74 74 #include <public/WebVideoFrame.h> 75 75 #include <wtf/CurrentTime.h> … … 527 527 drawTileQuad(quad->toTileDrawQuad()); 528 528 break; 529 case CCDrawQuad:: VideoContent:530 draw VideoQuad(quad->toVideoDrawQuad());529 case CCDrawQuad::YUVVideoContent: 530 drawYUVVideoQuad(quad->toYUVVideoDrawQuad()); 531 531 break; 532 532 } … … 984 984 } 985 985 986 void LayerRendererChromium::drawYUV (const CCVideoDrawQuad* quad)986 void LayerRendererChromium::drawYUVVideoQuad(const CCYUVVideoDrawQuad* quad) 987 987 { 988 988 const VideoYUVProgram* program = videoYUVProgram(); 989 989 ASSERT(program && program->initialized()); 990 990 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(); 994 994 995 995 GLC(context(), context()->activeTexture(GraphicsContext3D::TEXTURE1)); … … 1066 1066 program->fragmentShader().alphaLocation(), 1067 1067 -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 }1081 1068 } 1082 1069 -
trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h
r120263 r120457 52 52 class CCTextureDrawQuad; 53 53 class CCTileDrawQuad; 54 class CC VideoDrawQuad;54 class CCYUVVideoDrawQuad; 55 55 class GeometryBinding; 56 56 class GraphicsContext3D; … … 136 136 void drawIOSurfaceQuad(const CCIOSurfaceDrawQuad*); 137 137 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*); 144 139 145 140 void setDrawFramebufferRect(const IntRect&, bool flipY); -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.cpp
r120263 r120457 37 37 #include "cc/CCTextureDrawQuad.h" 38 38 #include "cc/CCTileDrawQuad.h" 39 #include "cc/CC VideoDrawQuad.h"39 #include "cc/CCYUVVideoDrawQuad.h" 40 40 41 41 namespace WebCore { … … 115 115 } 116 116 117 const CC VideoDrawQuad* CCDrawQuad::toVideoDrawQuad() const117 const CCYUVVideoDrawQuad* CCDrawQuad::toYUVVideoDrawQuad() const 118 118 { 119 119 ASSERT(m_material == VideoContent); 120 return static_cast<const CC VideoDrawQuad*>(this);120 return static_cast<const CCYUVVideoDrawQuad*>(this); 121 121 } 122 122 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCDrawQuad.h
r120263 r120457 39 39 class CCTextureDrawQuad; 40 40 class CCTileDrawQuad; 41 class CC VideoDrawQuad;41 class CCYUVVideoDrawQuad; 42 42 43 43 // CCDrawQuad is a bag of data used for drawing a quad. Because different … … 73 73 SolidColor, 74 74 TiledContent, 75 VideoContent,75 YUVVideoContent, 76 76 StreamVideoContent, 77 77 }; … … 88 88 const CCTextureDrawQuad* toTextureDrawQuad() const; 89 89 const CCTileDrawQuad* toTileDrawQuad() const; 90 const CC VideoDrawQuad* toVideoDrawQuad() const;90 const CCYUVVideoDrawQuad* toYUVVideoDrawQuad() const; 91 91 92 92 const CCSharedQuadState* sharedQuadState() const { return m_sharedQuadState; } -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCVideoLayerImpl.cpp
r120263 r120457 42 42 #include "cc/CCStreamVideoDrawQuad.h" 43 43 #include "cc/CCTextureDrawQuad.h" 44 #include "cc/CC VideoDrawQuad.h"44 #include "cc/CCYUVVideoDrawQuad.h" 45 45 #include <public/WebVideoFrame.h> 46 46 #include <wtf/text/WTFString.h> … … 188 188 case GraphicsContext3D::LUMINANCE: { 189 189 // 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()); 192 195 break; 193 196 } -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCYUVVideoDrawQuad.cpp
r120456 r120457 26 26 #include "config.h" 27 27 28 #include "cc/CC VideoDrawQuad.h"28 #include "cc/CCYUVVideoDrawQuad.h" 29 29 30 30 namespace WebCore { 31 31 32 PassOwnPtr<CC VideoDrawQuad> CCVideoDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, CCVideoLayerImpl::FramePlane planes[WebKit::WebVideoFrame::maxPlanes], unsigned frameProviderTextureId, GC3Denum format, const WebKit::WebTransformationMatrix& matrix)32 PassOwnPtr<CCYUVVideoDrawQuad> CCYUVVideoDrawQuad::create(const CCSharedQuadState* sharedQuadState, const IntRect& quadRect, const CCVideoLayerImpl::FramePlane& yPlane, const CCVideoLayerImpl::FramePlane& uPlane, const CCVideoLayerImpl::FramePlane& vPlane) 33 33 { 34 return adoptPtr(new CC VideoDrawQuad(sharedQuadState, quadRect, planes, frameProviderTextureId, format, matrix));34 return adoptPtr(new CCYUVVideoDrawQuad(sharedQuadState, quadRect, yPlane, uPlane, vPlane)); 35 35 } 36 36 37 CC VideoDrawQuad::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)37 CCYUVVideoDrawQuad::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) 42 42 { 43 for (size_t i = 0; i < WebKit::WebVideoFrame::maxPlanes; ++i)44 m_planes[i] = planes[i];45 46 43 } 47 44 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCYUVVideoDrawQuad.h
r120456 r120457 24 24 */ 25 25 26 #ifndef CC VideoDrawQuad_h27 #define CC VideoDrawQuad_h26 #ifndef CCYUVVideoDrawQuad_h 27 #define CCYUVVideoDrawQuad_h 28 28 29 #include "GraphicsTypes3D.h"30 29 #include "cc/CCDrawQuad.h" 31 30 #include "cc/CCVideoLayerImpl.h" 32 #include <public/WebTransformationMatrix.h>33 31 #include <wtf/PassOwnPtr.h> 34 32 35 33 namespace WebCore { 36 34 37 class CC VideoDrawQuad : public CCDrawQuad {38 WTF_MAKE_NONCOPYABLE(CC VideoDrawQuad);35 class CCYUVVideoDrawQuad : public CCDrawQuad { 36 WTF_MAKE_NONCOPYABLE(CCYUVVideoDrawQuad); 39 37 public: 40 static PassOwnPtr<CC VideoDrawQuad> 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); 41 39 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; } 47 43 48 44 private: 49 CC VideoDrawQuad(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); 50 46 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; 55 50 }; 56 51
Note:
See TracChangeset
for help on using the changeset viewer.