diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-02-08 17:30:06 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-03-15 16:52:21 +0000 |
commit | 91e13af7e1056a7bad83eb34ebf63fdd45e24bea (patch) | |
tree | ce3c3c89d021bc934bf0c64477e0f74357e84a58 /src/core/delegated_frame_node.cpp | |
parent | d5bffb5125da23718e8098441b4a4269a5cf2f33 (diff) |
YUV colorspace adaptations
Switch to using Chromium's Colorspace class and its generated shader
code instead of our own enums.
Change-Id: I89ee96adf68e2421efa2350cb0b78ce0fea7221f
Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'src/core/delegated_frame_node.cpp')
-rw-r--r-- | src/core/delegated_frame_node.cpp | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/src/core/delegated_frame_node.cpp b/src/core/delegated_frame_node.cpp index 149bd3b5e..51d69fd08 100644 --- a/src/core/delegated_frame_node.cpp +++ b/src/core/delegated_frame_node.cpp @@ -196,7 +196,7 @@ public: virtual void setupDebugBorderNode(QSGGeometry *, QSGFlatColorMaterial *, QSGNode *) = 0; virtual void setupYUVVideoNode(QSGTexture *, QSGTexture *, QSGTexture *, QSGTexture *, const QRectF &, const QRectF &, const QSizeF &, const QSizeF &, - YUVVideoMaterial::ColorSpace, float, float, const QRectF &, + gfx::ColorSpace, float, float, const QRectF &, QSGNode *) = 0; #ifdef GL_OES_EGL_image_external virtual void setupStreamVideoNode(MailboxTexture *, const QRectF &, @@ -283,7 +283,7 @@ public: void setupYUVVideoNode(QSGTexture *, QSGTexture *, QSGTexture *, QSGTexture *, const QRectF &, const QRectF &, const QSizeF &, const QSizeF &, - YUVVideoMaterial::ColorSpace, float, float, const QRectF &, + gfx::ColorSpace, float, float, const QRectF &, QSGNode *) override { Q_UNREACHABLE(); @@ -384,7 +384,7 @@ public: void setupYUVVideoNode(QSGTexture *yTexture, QSGTexture *uTexture, QSGTexture *vTexture, QSGTexture *aTexture, const QRectF &yaTexCoordRect, const QRectF &uvTexCoordRect, const QSizeF &yaTexSize, - const QSizeF &uvTexSize, YUVVideoMaterial::ColorSpace colorspace, + const QSizeF &uvTexSize, gfx::ColorSpace colorspace, float rMul, float rOff, const QRectF &rect, QSGNode *layerChain) override { @@ -751,20 +751,6 @@ void DelegatedFrameNode::preprocess() } } -static YUVVideoMaterial::ColorSpace toQt(viz::YUVVideoDrawQuad::ColorSpace color_space) -{ - switch (color_space) { - case viz::YUVVideoDrawQuad::REC_601: - return YUVVideoMaterial::REC_601; - case viz::YUVVideoDrawQuad::REC_709: - return YUVVideoMaterial::REC_709; - case viz::YUVVideoDrawQuad::JPEG: - return YUVVideoMaterial::JPEG; - } - Q_UNREACHABLE(); - return YUVVideoMaterial::REC_601; -} - static bool areSharedQuadStatesEqual(const viz::SharedQuadState *layerState, const viz::SharedQuadState *prevLayerState) { @@ -1186,7 +1172,7 @@ void DelegatedFrameNode::handleQuad( initAndHoldTexture(vResource, quad->ShouldDrawWithBlending()), aResource ? initAndHoldTexture(aResource, quad->ShouldDrawWithBlending()) : 0, toQt(vquad->ya_tex_coord_rect), toQt(vquad->uv_tex_coord_rect), - toQt(vquad->ya_tex_size), toQt(vquad->uv_tex_size), toQt(vquad->color_space), + toQt(vquad->ya_tex_size), toQt(vquad->uv_tex_size), vquad->video_color_space, vquad->resource_multiplier, vquad->resource_offset, toQt(quad->rect), currentLayerChain); break; @@ -1261,7 +1247,7 @@ void DelegatedFrameNode::fetchAndSyncMailboxes(QList<MailboxTexture *> &mailboxe for (MailboxTexture *mailboxTexture : qAsConst(mailboxesToFetch)) { gpu::SyncToken &syncToken = mailboxTexture->mailboxHolder().sync_token; const auto task = base::Bind(&DelegatedFrameNode::pullTexture, this, mailboxTexture); - if (!syncPointManager->WaitOutOfOrderNonThreadSafe(syncToken, gpuMessageLoop->task_runner(), std::move(task))) + if (!syncPointManager->WaitOutOfOrder(syncToken, std::move(task))) mailboxesToPull.append(mailboxTexture); } if (!mailboxesToPull.isEmpty()) { |