Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(83)

Side by Side Diff: cc/output/renderer_settings.cc

Issue 1379783002: Allow one-copy task tile worker pool to use compressed textures. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove needs_conversion, fix tile size unit test and move modulo 4 DCHECK (for tests) Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698