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