blob: 133fb33789db6a8708c37fe8bd405ee01c3e131c [file] [log] [blame]
// Copyright 2014 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 "cc/output/renderer_settings.h"
#include <limits>
#include "base/logging.h"
#include "cc/proto/renderer_settings.pb.h"
namespace cc {
RendererSettings::RendererSettings()
: allow_antialiasing(true),
force_antialiasing(false),
force_blending_with_shaders(false),
partial_swap_enabled(false),
finish_rendering_on_resize(false),
should_clear_root_render_pass(true),
disable_display_vsync(false),
release_overlay_resources_on_swap_complete(false),
refresh_rate(60.0),
highp_threshold_min(0),
use_rgba_4444_textures(false),
texture_id_allocation_chunk_size(64),
use_gpu_memory_buffer_resources(false) {}
RendererSettings::~RendererSettings() {
}
void RendererSettings::ToProtobuf(proto::RendererSettings* proto) const {
proto->set_allow_antialiasing(allow_antialiasing);
proto->set_force_antialiasing(force_antialiasing);
proto->set_force_blending_with_shaders(force_blending_with_shaders);
proto->set_partial_swap_enabled(partial_swap_enabled);
proto->set_finish_rendering_on_resize(finish_rendering_on_resize);
proto->set_should_clear_root_render_pass(should_clear_root_render_pass);
proto->set_disable_display_vsync(disable_display_vsync);
proto->set_release_overlay_resources_on_swap_complete(
release_overlay_resources_on_swap_complete);
proto->set_refresh_rate(refresh_rate);
proto->set_highp_threshold_min(highp_threshold_min);
proto->set_use_rgba_4444_textures(use_rgba_4444_textures);
proto->set_texture_id_allocation_chunk_size(texture_id_allocation_chunk_size);
proto->set_use_gpu_memory_buffer_resources(use_gpu_memory_buffer_resources);
}
void RendererSettings::FromProtobuf(const proto::RendererSettings& proto) {
allow_antialiasing = proto.allow_antialiasing();
force_antialiasing = proto.force_antialiasing();
force_blending_with_shaders = proto.force_blending_with_shaders();
partial_swap_enabled = proto.partial_swap_enabled();
finish_rendering_on_resize = proto.finish_rendering_on_resize();
should_clear_root_render_pass = proto.should_clear_root_render_pass();
disable_display_vsync = proto.disable_display_vsync();
release_overlay_resources_on_swap_complete =
proto.release_overlay_resources_on_swap_complete();
refresh_rate = proto.refresh_rate();
highp_threshold_min = proto.highp_threshold_min();
use_rgba_4444_textures = proto.use_rgba_4444_textures();
texture_id_allocation_chunk_size = proto.texture_id_allocation_chunk_size();
use_gpu_memory_buffer_resources = proto.use_gpu_memory_buffer_resources();
}
bool RendererSettings::operator==(const RendererSettings& other) const {
return allow_antialiasing == other.allow_antialiasing &&
force_antialiasing == other.force_antialiasing &&
force_blending_with_shaders == other.force_blending_with_shaders &&
partial_swap_enabled == other.partial_swap_enabled &&
finish_rendering_on_resize == other.finish_rendering_on_resize &&
should_clear_root_render_pass == other.should_clear_root_render_pass &&
disable_display_vsync == other.disable_display_vsync &&
release_overlay_resources_on_swap_complete ==
other.release_overlay_resources_on_swap_complete &&
refresh_rate == other.refresh_rate &&
highp_threshold_min == other.highp_threshold_min &&
use_rgba_4444_textures == other.use_rgba_4444_textures &&
texture_id_allocation_chunk_size ==
other.texture_id_allocation_chunk_size &&
use_gpu_memory_buffer_resources ==
other.use_gpu_memory_buffer_resources;
}
} // namespace cc