1 // Copyright 2019 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "gpu/ipc/common/vulkan_ycbcr_info.h"
6
7 #include "base/check.h"
8
9 namespace gpu {
10
11 VulkanYCbCrInfo::VulkanYCbCrInfo() = default;
12
VulkanYCbCrInfo(uint32_t image_format,uint64_t external_format,uint32_t suggested_ycbcr_model,uint32_t suggested_ycbcr_range,uint32_t suggested_xchroma_offset,uint32_t suggested_ychroma_offset,uint32_t format_features)13 VulkanYCbCrInfo::VulkanYCbCrInfo(uint32_t image_format,
14 uint64_t external_format,
15 uint32_t suggested_ycbcr_model,
16 uint32_t suggested_ycbcr_range,
17 uint32_t suggested_xchroma_offset,
18 uint32_t suggested_ychroma_offset,
19 uint32_t format_features)
20 : image_format(image_format),
21 external_format(external_format),
22 suggested_ycbcr_model(suggested_ycbcr_model),
23 suggested_ycbcr_range(suggested_ycbcr_range),
24 suggested_xchroma_offset(suggested_xchroma_offset),
25 suggested_ychroma_offset(suggested_ychroma_offset),
26 format_features(format_features) {
27 // One and only one of the format fields must be non-zero.
28 DCHECK((image_format == 0) ^ (external_format == 0));
29
30 // |format_features| must be set for external images.
31 DCHECK(external_format == 0 || format_features != 0);
32 }
33
34 } // namespace gpu
35