blob: cc894f7a69a6c1bf86bfd19da3b72097a21dec1d [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/viz/service/display_embedder/image_context.h"
#include "gpu/command_buffer/service/shared_image_representation.h"
#include "third_party/skia/include/core/SkPromiseImageTexture.h"
namespace viz {
ImageContext::ImageContext(const gpu::Mailbox& mailbox,
const gfx::Size& size,
ResourceFormat resource_format,
sk_sp<SkColorSpace> color_space,
SkAlphaType alpha_type,
GrSurfaceOrigin origin,
const gpu::SyncToken& sync_token)
: mailbox(mailbox),
size(size),
resource_format(resource_format),
color_space(std::move(color_space)),
alpha_type(alpha_type),
origin(origin),
sync_token(sync_token) {}
ImageContext::ImageContext(const ResourceMetadata& metadata)
: ImageContext(metadata.mailbox_holder.mailbox,
metadata.size,
metadata.resource_format,
metadata.color_space.ToSkColorSpace(),
metadata.alpha_type,
metadata.origin,
metadata.mailbox_holder.sync_token) {}
ImageContext::ImageContext(RenderPassId render_pass_id,
const gfx::Size& size,
ResourceFormat resource_format,
bool mipmap,
sk_sp<SkColorSpace> color_space)
: render_pass_id(render_pass_id),
size(size),
resource_format(resource_format),
mipmap(mipmap ? GrMipMapped::kYes : GrMipMapped::kNo),
color_space(std::move(color_space)) {}
ImageContext::~ImageContext() {
DCHECK(!representation_is_being_accessed);
}
} // namespace viz