blob: 2e9b2b548c571123aa59453b93e2ca2b999c9a66 [file] [log] [blame]
// Copyright 2016 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 "ui/gfx/ipc/color/gfx_param_traits.h"
#include "ipc/ipc_message_utils.h"
#include "ipc/param_traits_macros.h"
#include "ui/gfx/color_space.h"
#include "ui/gfx/display_color_spaces.h"
#include "ui/gfx/ipc/buffer_types/gfx_ipc_export.h"
#include "ui/gfx/ipc/buffer_types/gfx_param_traits_macros.h"
namespace IPC {
void ParamTraits<gfx::ColorSpace>::Write(base::Pickle* m,
const gfx::ColorSpace& p) {
WriteParam(m, p.primaries_);
WriteParam(m, p.transfer_);
WriteParam(m, p.matrix_);
WriteParam(m, p.range_);
WriteParam(m, p.custom_primary_matrix_);
WriteParam(m, p.transfer_params_);
}
bool ParamTraits<gfx::ColorSpace>::Read(const base::Pickle* m,
base::PickleIterator* iter,
gfx::ColorSpace* r) {
if (!ReadParam(m, iter, &r->primaries_))
return false;
if (!ReadParam(m, iter, &r->transfer_))
return false;
if (!ReadParam(m, iter, &r->matrix_))
return false;
if (!ReadParam(m, iter, &r->range_))
return false;
if (!ReadParam(m, iter, &r->custom_primary_matrix_))
return false;
if (!ReadParam(m, iter, &r->transfer_params_))
return false;
return true;
}
void ParamTraits<gfx::ColorSpace>::Log(const gfx::ColorSpace& p,
std::string* l) {
l->append("<gfx::ColorSpace>");
}
void ParamTraits<gfx::DisplayColorSpaces>::Write(
base::Pickle* m,
const gfx::DisplayColorSpaces& p) {
WriteParam(m, p.color_spaces_);
WriteParam(m, p.buffer_formats_);
WriteParam(m, p.sdr_white_level_);
}
bool ParamTraits<gfx::DisplayColorSpaces>::Read(const base::Pickle* m,
base::PickleIterator* iter,
gfx::DisplayColorSpaces* r) {
if (!ReadParam(m, iter, &r->color_spaces_))
return false;
if (!ReadParam(m, iter, &r->buffer_formats_))
return false;
if (!ReadParam(m, iter, &r->sdr_white_level_))
return false;
return true;
}
void ParamTraits<gfx::DisplayColorSpaces>::Log(const gfx::DisplayColorSpaces& p,
std::string* l) {
l->append("<gfx::DisplayColorSpaces>");
}
} // namespace IPC
// Generate param traits write methods.
#include "ipc/param_traits_write_macros.h"
namespace IPC {
#undef UI_GFX_IPC_COLOR_GFX_PARAM_TRAITS_MACROS_H_
#include "ui/gfx/ipc/color/gfx_param_traits_macros.h"
} // namespace IPC
// Generate param traits read methods.
#include "ipc/param_traits_read_macros.h"
namespace IPC {
#undef UI_GFX_IPC_COLOR_GFX_PARAM_TRAITS_MACROS_H_
#include "ui/gfx/ipc/color/gfx_param_traits_macros.h"
} // namespace IPC
// Generate param traits log methods.
#include "ipc/param_traits_log_macros.h"
namespace IPC {
#undef UI_GFX_IPC_COLOR_GFX_PARAM_TRAITS_MACROS_H_
#include "ui/gfx/ipc/color/gfx_param_traits_macros.h"
} // namespace IPC