[//cc] Move alpha type from TextureDrawQuad to TransferableResource
* Adds `alpha_type` to TransferableResource * Removes `premultiplied_alpha` from TextureDrawQuad * Has all sites that set the latter instead correspondingly set the former [*] * Changes SkiaRenderer to read the former instead of the latter [*] The only subtle change is in video_resource_updater.cc. The reasoning for the change is as follows: * The texture quad has its resource id set to `frame_resource_id_`. * That resource id is what identifies the TransferableResource associated with that texture quad. * `frame_resource_id_` is assigned at [1]. * Hence, we need to set `alpha_type` on the TransferableResource that was linked to `frame_resource_id_` in [1]. * That TransferableResource is created here [2], which is where I've added the setting of `alpha_type`. [1] https://source.chromium.org/chromium/chromium/src/+/main:media/renderers/video_resource_updater.cc;l=532-534?q=video_resource_updater.cc&ss=chromium [2] https://source.chromium.org/chromium/chromium/src/+/main:media/renderers/video_resource_updater.cc;l=522-523?q=video_resource_updater.cc&ss=chromium Bug: 410591523 Change-Id: Id97743a4d49a8aa1ed129a4a769b17916435ee28 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6544948 Commit-Queue: Colin Blundell <blundell@chromium.org> Reviewed-by: Antonio Sartori <antoniosartori@chromium.org> Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org> Cr-Commit-Position: refs/heads/main@{#1460544}
This commit is contained in:

committed by
Chromium LUCI CQ

parent
e71e7f22c9
commit
bbe2e76293
cc/layers
components/viz
common
service
media/renderers
services/viz/public
cpp
compositing
mojom
compositing
third_party/blink/renderer/platform/graphics
@ -159,7 +159,6 @@ bool StructTraits<viz::mojom::TextureQuadStateDataView, viz::DrawQuad>::Read(
|
||||
return false;
|
||||
}
|
||||
|
||||
quad->premultiplied_alpha = data.premultiplied_alpha();
|
||||
gfx::ProtectedVideoType protected_video_type =
|
||||
gfx::ProtectedVideoType::kClear;
|
||||
viz::OverlayPriority overlay_priority_hint = viz::OverlayPriority::kLow;
|
||||
|
@ -416,12 +416,6 @@ struct StructTraits<viz::mojom::TextureQuadStateDataView, viz::DrawQuad> {
|
||||
return quad->rounded_display_masks_info;
|
||||
}
|
||||
|
||||
static bool premultiplied_alpha(const viz::DrawQuad& input) {
|
||||
const viz::TextureDrawQuad* quad =
|
||||
viz::TextureDrawQuad::MaterialCast(&input);
|
||||
return quad->premultiplied_alpha;
|
||||
}
|
||||
|
||||
static const gfx::PointF& uv_top_left(const viz::DrawQuad& input) {
|
||||
const viz::TextureDrawQuad* quad =
|
||||
viz::TextureDrawQuad::MaterialCast(&input);
|
||||
|
@ -168,7 +168,7 @@ bool StructTraits<viz::mojom::TransferableResourceDataView,
|
||||
!data.ReadHdrMetadata(&out->hdr_metadata) ||
|
||||
!data.ReadYcbcrInfo(&out->ycbcr_info) || !data.ReadId(&id) ||
|
||||
!data.ReadSynchronizationType(&out->synchronization_type) ||
|
||||
!data.ReadOrigin(&out->origin) ||
|
||||
!data.ReadOrigin(&out->origin) || !data.ReadAlphaType(&out->alpha_type) ||
|
||||
!data.ReadResourceSource(&out->resource_source)) {
|
||||
return false;
|
||||
}
|
||||
|
@ -14,6 +14,7 @@
|
||||
#include "gpu/ipc/common/vulkan_ycbcr_info_mojom_traits.h"
|
||||
#include "services/viz/public/cpp/compositing/shared_image_format_mojom_traits.h"
|
||||
#include "services/viz/public/mojom/compositing/transferable_resource.mojom-shared.h"
|
||||
#include "skia/public/mojom/image_info_mojom_traits.h"
|
||||
#include "skia/public/mojom/surface_origin_mojom_traits.h"
|
||||
#include "ui/gfx/ipc/color/gfx_param_traits.h"
|
||||
|
||||
@ -131,6 +132,10 @@ struct StructTraits<viz::mojom::TransferableResourceDataView,
|
||||
return resource.origin;
|
||||
}
|
||||
|
||||
static SkAlphaType alpha_type(const viz::TransferableResource& resource) {
|
||||
return resource.alpha_type;
|
||||
}
|
||||
|
||||
static viz::TransferableResource::ResourceSource resource_source(
|
||||
const viz::TransferableResource& resource) {
|
||||
return resource.resource_source;
|
||||
|
@ -88,7 +88,6 @@ struct SurfaceQuadState {
|
||||
|
||||
struct TextureQuadState {
|
||||
ResourceId resource_id;
|
||||
bool premultiplied_alpha;
|
||||
gfx.mojom.PointF uv_top_left;
|
||||
gfx.mojom.PointF uv_bottom_right;
|
||||
skia.mojom.SkColor4f background_color;
|
||||
|
@ -12,6 +12,7 @@ import "services/viz/public/mojom/compositing/resource_id.mojom";
|
||||
import "ui/gfx/geometry/mojom/geometry.mojom";
|
||||
import "ui/gfx/mojom/color_space.mojom";
|
||||
import "ui/gfx/mojom/hdr_metadata.mojom";
|
||||
import "skia/public/mojom/image_info.mojom";
|
||||
import "skia/public/mojom/surface_origin.mojom";
|
||||
|
||||
// See viz::TransferableResource::SynchronizationType in
|
||||
@ -70,5 +71,6 @@ struct TransferableResource {
|
||||
bool needs_detiling;
|
||||
gpu.mojom.VulkanYCbCrInfo? ycbcr_info;
|
||||
skia.mojom.SurfaceOrigin origin;
|
||||
skia.mojom.AlphaType alpha_type;
|
||||
ResourceSource resource_source;
|
||||
};
|
||||
|
Reference in New Issue
Block a user