| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/output/renderer_settings.h" | 5 #include "cc/output/renderer_settings.h" |
| 6 | 6 |
| 7 #include <limits> | 7 #include <limits> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "cc/proto/renderer_settings.pb.h" | |
| 11 #include "cc/resources/platform_color.h" | 10 #include "cc/resources/platform_color.h" |
| 12 | 11 |
| 13 namespace cc { | 12 namespace cc { |
| 14 | 13 |
| 15 RendererSettings::RendererSettings() | 14 RendererSettings::RendererSettings() |
| 16 : allow_antialiasing(true), | 15 : allow_antialiasing(true), |
| 17 force_antialiasing(false), | 16 force_antialiasing(false), |
| 18 force_blending_with_shaders(false), | 17 force_blending_with_shaders(false), |
| 19 partial_swap_enabled(false), | 18 partial_swap_enabled(false), |
| 20 finish_rendering_on_resize(false), | 19 finish_rendering_on_resize(false), |
| 21 should_clear_root_render_pass(true), | 20 should_clear_root_render_pass(true), |
| 22 disable_display_vsync(false), | 21 disable_display_vsync(false), |
| 23 release_overlay_resources_after_gpu_query(false), | 22 release_overlay_resources_after_gpu_query(false), |
| 24 gl_composited_texture_quad_border(false), | 23 gl_composited_texture_quad_border(false), |
| 25 refresh_rate(60.0), | 24 refresh_rate(60.0), |
| 26 highp_threshold_min(0), | 25 highp_threshold_min(0), |
| 27 texture_id_allocation_chunk_size(64), | 26 texture_id_allocation_chunk_size(64), |
| 28 use_gpu_memory_buffer_resources(false), | 27 use_gpu_memory_buffer_resources(false), |
| 29 preferred_tile_format(PlatformColor::BestTextureFormat()) {} | 28 preferred_tile_format(PlatformColor::BestTextureFormat()) {} |
| 30 | 29 |
| 31 RendererSettings::RendererSettings(const RendererSettings& other) = default; | 30 RendererSettings::RendererSettings(const RendererSettings& other) = default; |
| 32 | 31 |
| 33 RendererSettings::~RendererSettings() { | 32 RendererSettings::~RendererSettings() { |
| 34 } | 33 } |
| 35 | 34 |
| 36 void RendererSettings::ToProtobuf(proto::RendererSettings* proto) const { | |
| 37 proto->set_allow_antialiasing(allow_antialiasing); | |
| 38 proto->set_force_antialiasing(force_antialiasing); | |
| 39 proto->set_force_blending_with_shaders(force_blending_with_shaders); | |
| 40 proto->set_partial_swap_enabled(partial_swap_enabled); | |
| 41 proto->set_finish_rendering_on_resize(finish_rendering_on_resize); | |
| 42 proto->set_should_clear_root_render_pass(should_clear_root_render_pass); | |
| 43 proto->set_disable_display_vsync(disable_display_vsync); | |
| 44 proto->set_release_overlay_resources_after_gpu_query( | |
| 45 release_overlay_resources_after_gpu_query); | |
| 46 proto->set_refresh_rate(refresh_rate); | |
| 47 proto->set_highp_threshold_min(highp_threshold_min); | |
| 48 proto->set_texture_id_allocation_chunk_size(texture_id_allocation_chunk_size); | |
| 49 proto->set_use_gpu_memory_buffer_resources(use_gpu_memory_buffer_resources); | |
| 50 proto->set_preferred_tile_format(preferred_tile_format); | |
| 51 | |
| 52 for (const auto& target : buffer_to_texture_target_map) { | |
| 53 auto* proto_target = proto->add_buffer_to_texture_target(); | |
| 54 proto_target->set_buffer_usage(static_cast<uint32_t>(target.first.first)); | |
| 55 proto_target->set_buffer_format(static_cast<uint32_t>(target.first.second)); | |
| 56 proto_target->set_texture_target(target.second); | |
| 57 } | |
| 58 } | |
| 59 | |
| 60 void RendererSettings::FromProtobuf(const proto::RendererSettings& proto) { | |
| 61 allow_antialiasing = proto.allow_antialiasing(); | |
| 62 force_antialiasing = proto.force_antialiasing(); | |
| 63 force_blending_with_shaders = proto.force_blending_with_shaders(); | |
| 64 partial_swap_enabled = proto.partial_swap_enabled(); | |
| 65 finish_rendering_on_resize = proto.finish_rendering_on_resize(); | |
| 66 should_clear_root_render_pass = proto.should_clear_root_render_pass(); | |
| 67 disable_display_vsync = proto.disable_display_vsync(); | |
| 68 release_overlay_resources_after_gpu_query = | |
| 69 proto.release_overlay_resources_after_gpu_query(); | |
| 70 refresh_rate = proto.refresh_rate(); | |
| 71 highp_threshold_min = proto.highp_threshold_min(); | |
| 72 texture_id_allocation_chunk_size = proto.texture_id_allocation_chunk_size(); | |
| 73 use_gpu_memory_buffer_resources = proto.use_gpu_memory_buffer_resources(); | |
| 74 | |
| 75 DCHECK_LE(proto.preferred_tile_format(), | |
| 76 static_cast<uint32_t>(RESOURCE_FORMAT_MAX)); | |
| 77 preferred_tile_format = | |
| 78 static_cast<ResourceFormat>(proto.preferred_tile_format()); | |
| 79 | |
| 80 // |buffer_to_texture_target_map| may contain existing values, so clear first. | |
| 81 buffer_to_texture_target_map.clear(); | |
| 82 for (const auto& proto_target : proto.buffer_to_texture_target()) { | |
| 83 buffer_to_texture_target_map.insert(BufferToTextureTargetMap::value_type( | |
| 84 BufferToTextureTargetKey( | |
| 85 static_cast<gfx::BufferUsage>(proto_target.buffer_usage()), | |
| 86 static_cast<gfx::BufferFormat>(proto_target.buffer_format())), | |
| 87 proto_target.texture_target())); | |
| 88 } | |
| 89 } | |
| 90 | |
| 91 bool RendererSettings::operator==(const RendererSettings& other) const { | 35 bool RendererSettings::operator==(const RendererSettings& other) const { |
| 92 return allow_antialiasing == other.allow_antialiasing && | 36 return allow_antialiasing == other.allow_antialiasing && |
| 93 force_antialiasing == other.force_antialiasing && | 37 force_antialiasing == other.force_antialiasing && |
| 94 force_blending_with_shaders == other.force_blending_with_shaders && | 38 force_blending_with_shaders == other.force_blending_with_shaders && |
| 95 partial_swap_enabled == other.partial_swap_enabled && | 39 partial_swap_enabled == other.partial_swap_enabled && |
| 96 finish_rendering_on_resize == other.finish_rendering_on_resize && | 40 finish_rendering_on_resize == other.finish_rendering_on_resize && |
| 97 should_clear_root_render_pass == other.should_clear_root_render_pass && | 41 should_clear_root_render_pass == other.should_clear_root_render_pass && |
| 98 disable_display_vsync == other.disable_display_vsync && | 42 disable_display_vsync == other.disable_display_vsync && |
| 99 release_overlay_resources_after_gpu_query == | 43 release_overlay_resources_after_gpu_query == |
| 100 other.release_overlay_resources_after_gpu_query && | 44 other.release_overlay_resources_after_gpu_query && |
| 101 refresh_rate == other.refresh_rate && | 45 refresh_rate == other.refresh_rate && |
| 102 highp_threshold_min == other.highp_threshold_min && | 46 highp_threshold_min == other.highp_threshold_min && |
| 103 texture_id_allocation_chunk_size == | 47 texture_id_allocation_chunk_size == |
| 104 other.texture_id_allocation_chunk_size && | 48 other.texture_id_allocation_chunk_size && |
| 105 use_gpu_memory_buffer_resources == | 49 use_gpu_memory_buffer_resources == |
| 106 other.use_gpu_memory_buffer_resources && | 50 other.use_gpu_memory_buffer_resources && |
| 107 preferred_tile_format == other.preferred_tile_format && | 51 preferred_tile_format == other.preferred_tile_format && |
| 108 buffer_to_texture_target_map == other.buffer_to_texture_target_map; | 52 buffer_to_texture_target_map == other.buffer_to_texture_target_map; |
| 109 } | 53 } |
| 110 | 54 |
| 111 } // namespace cc | 55 } // namespace cc |
| OLD | NEW |