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" | 10 #include "cc/proto/renderer_settings.pb.h" |
| 11 #include "cc/resources/platform_color.h" |
11 | 12 |
12 namespace cc { | 13 namespace cc { |
13 | 14 |
14 RendererSettings::RendererSettings() | 15 RendererSettings::RendererSettings() |
15 : allow_antialiasing(true), | 16 : allow_antialiasing(true), |
16 force_antialiasing(false), | 17 force_antialiasing(false), |
17 force_blending_with_shaders(false), | 18 force_blending_with_shaders(false), |
18 partial_swap_enabled(false), | 19 partial_swap_enabled(false), |
19 finish_rendering_on_resize(false), | 20 finish_rendering_on_resize(false), |
20 should_clear_root_render_pass(true), | 21 should_clear_root_render_pass(true), |
21 disable_display_vsync(false), | 22 disable_display_vsync(false), |
22 delay_releasing_overlay_resources(false), | 23 delay_releasing_overlay_resources(false), |
23 refresh_rate(60.0), | 24 refresh_rate(60.0), |
24 highp_threshold_min(0), | 25 highp_threshold_min(0), |
25 use_rgba_4444_textures(false), | |
26 texture_id_allocation_chunk_size(64), | 26 texture_id_allocation_chunk_size(64), |
27 use_gpu_memory_buffer_resources(false) {} | 27 use_gpu_memory_buffer_resources(false), |
| 28 preferred_tile_format(PlatformColor::BestTextureFormat()) {} |
28 | 29 |
29 RendererSettings::~RendererSettings() { | 30 RendererSettings::~RendererSettings() { |
30 } | 31 } |
31 | 32 |
32 void RendererSettings::ToProtobuf(proto::RendererSettings* proto) const { | 33 void RendererSettings::ToProtobuf(proto::RendererSettings* proto) const { |
33 proto->set_allow_antialiasing(allow_antialiasing); | 34 proto->set_allow_antialiasing(allow_antialiasing); |
34 proto->set_force_antialiasing(force_antialiasing); | 35 proto->set_force_antialiasing(force_antialiasing); |
35 proto->set_force_blending_with_shaders(force_blending_with_shaders); | 36 proto->set_force_blending_with_shaders(force_blending_with_shaders); |
36 proto->set_partial_swap_enabled(partial_swap_enabled); | 37 proto->set_partial_swap_enabled(partial_swap_enabled); |
37 proto->set_finish_rendering_on_resize(finish_rendering_on_resize); | 38 proto->set_finish_rendering_on_resize(finish_rendering_on_resize); |
38 proto->set_should_clear_root_render_pass(should_clear_root_render_pass); | 39 proto->set_should_clear_root_render_pass(should_clear_root_render_pass); |
39 proto->set_disable_display_vsync(disable_display_vsync); | 40 proto->set_disable_display_vsync(disable_display_vsync); |
40 proto->set_delay_releasing_overlay_resources( | 41 proto->set_delay_releasing_overlay_resources( |
41 delay_releasing_overlay_resources); | 42 delay_releasing_overlay_resources); |
42 proto->set_refresh_rate(refresh_rate); | 43 proto->set_refresh_rate(refresh_rate); |
43 proto->set_highp_threshold_min(highp_threshold_min); | 44 proto->set_highp_threshold_min(highp_threshold_min); |
44 proto->set_use_rgba_4444_textures(use_rgba_4444_textures); | |
45 proto->set_texture_id_allocation_chunk_size(texture_id_allocation_chunk_size); | 45 proto->set_texture_id_allocation_chunk_size(texture_id_allocation_chunk_size); |
46 proto->set_use_gpu_memory_buffer_resources(use_gpu_memory_buffer_resources); | 46 proto->set_use_gpu_memory_buffer_resources(use_gpu_memory_buffer_resources); |
| 47 proto->set_preferred_tile_format(preferred_tile_format); |
47 } | 48 } |
48 | 49 |
49 void RendererSettings::FromProtobuf(const proto::RendererSettings& proto) { | 50 void RendererSettings::FromProtobuf(const proto::RendererSettings& proto) { |
50 allow_antialiasing = proto.allow_antialiasing(); | 51 allow_antialiasing = proto.allow_antialiasing(); |
51 force_antialiasing = proto.force_antialiasing(); | 52 force_antialiasing = proto.force_antialiasing(); |
52 force_blending_with_shaders = proto.force_blending_with_shaders(); | 53 force_blending_with_shaders = proto.force_blending_with_shaders(); |
53 partial_swap_enabled = proto.partial_swap_enabled(); | 54 partial_swap_enabled = proto.partial_swap_enabled(); |
54 finish_rendering_on_resize = proto.finish_rendering_on_resize(); | 55 finish_rendering_on_resize = proto.finish_rendering_on_resize(); |
55 should_clear_root_render_pass = proto.should_clear_root_render_pass(); | 56 should_clear_root_render_pass = proto.should_clear_root_render_pass(); |
56 disable_display_vsync = proto.disable_display_vsync(); | 57 disable_display_vsync = proto.disable_display_vsync(); |
57 delay_releasing_overlay_resources = proto.delay_releasing_overlay_resources(); | 58 delay_releasing_overlay_resources = proto.delay_releasing_overlay_resources(); |
58 refresh_rate = proto.refresh_rate(); | 59 refresh_rate = proto.refresh_rate(); |
59 highp_threshold_min = proto.highp_threshold_min(); | 60 highp_threshold_min = proto.highp_threshold_min(); |
60 use_rgba_4444_textures = proto.use_rgba_4444_textures(); | |
61 texture_id_allocation_chunk_size = proto.texture_id_allocation_chunk_size(); | 61 texture_id_allocation_chunk_size = proto.texture_id_allocation_chunk_size(); |
62 use_gpu_memory_buffer_resources = proto.use_gpu_memory_buffer_resources(); | 62 use_gpu_memory_buffer_resources = proto.use_gpu_memory_buffer_resources(); |
| 63 |
| 64 DCHECK_LE(proto.preferred_tile_format(), |
| 65 static_cast<uint32_t>(RESOURCE_FORMAT_MAX)); |
| 66 preferred_tile_format = |
| 67 static_cast<ResourceFormat>(proto.preferred_tile_format()); |
63 } | 68 } |
64 | 69 |
65 bool RendererSettings::operator==(const RendererSettings& other) const { | 70 bool RendererSettings::operator==(const RendererSettings& other) const { |
66 return allow_antialiasing == other.allow_antialiasing && | 71 return allow_antialiasing == other.allow_antialiasing && |
67 force_antialiasing == other.force_antialiasing && | 72 force_antialiasing == other.force_antialiasing && |
68 force_blending_with_shaders == other.force_blending_with_shaders && | 73 force_blending_with_shaders == other.force_blending_with_shaders && |
69 partial_swap_enabled == other.partial_swap_enabled && | 74 partial_swap_enabled == other.partial_swap_enabled && |
70 finish_rendering_on_resize == other.finish_rendering_on_resize && | 75 finish_rendering_on_resize == other.finish_rendering_on_resize && |
71 should_clear_root_render_pass == other.should_clear_root_render_pass && | 76 should_clear_root_render_pass == other.should_clear_root_render_pass && |
72 disable_display_vsync == other.disable_display_vsync && | 77 disable_display_vsync == other.disable_display_vsync && |
73 delay_releasing_overlay_resources == | 78 delay_releasing_overlay_resources == |
74 other.delay_releasing_overlay_resources && | 79 other.delay_releasing_overlay_resources && |
75 refresh_rate == other.refresh_rate && | 80 refresh_rate == other.refresh_rate && |
76 highp_threshold_min == other.highp_threshold_min && | 81 highp_threshold_min == other.highp_threshold_min && |
77 use_rgba_4444_textures == other.use_rgba_4444_textures && | |
78 texture_id_allocation_chunk_size == | 82 texture_id_allocation_chunk_size == |
79 other.texture_id_allocation_chunk_size && | 83 other.texture_id_allocation_chunk_size && |
80 use_gpu_memory_buffer_resources == | 84 use_gpu_memory_buffer_resources == |
81 other.use_gpu_memory_buffer_resources; | 85 other.use_gpu_memory_buffer_resources && |
| 86 preferred_tile_format == other.preferred_tile_format; |
82 } | 87 } |
83 | 88 |
84 } // namespace cc | 89 } // namespace cc |
OLD | NEW |