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

Unified Diff: services/ui/ws/frame_generator.cc

Issue 2759933007: [mus]Add FrameGenerator::SetHighContrastMode(bool) (Closed)
Patch Set: Addressed nits Created 3 years, 9 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « services/ui/ws/frame_generator.h ('k') | services/ui/ws/frame_generator_delegate.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: services/ui/ws/frame_generator.cc
diff --git a/services/ui/ws/frame_generator.cc b/services/ui/ws/frame_generator.cc
index 41980cca1dbf0f6acdf4d41bc28ae71f093ceb64..87f0f1426288ac97294c4ec076df3ff790c908b7 100644
--- a/services/ui/ws/frame_generator.cc
+++ b/services/ui/ws/frame_generator.cc
@@ -13,7 +13,6 @@
#include "cc/quads/render_pass_draw_quad.h"
#include "cc/quads/shared_quad_state.h"
#include "cc/quads/surface_draw_quad.h"
-#include "services/ui/ws/frame_generator_delegate.h"
#include "services/ui/ws/server_window.h"
namespace ui {
@@ -21,13 +20,10 @@ namespace ui {
namespace ws {
FrameGenerator::FrameGenerator(
- FrameGeneratorDelegate* delegate,
ServerWindow* root_window,
std::unique_ptr<cc::CompositorFrameSink> compositor_frame_sink)
- : delegate_(delegate),
- root_window_(root_window),
+ : root_window_(root_window),
compositor_frame_sink_(std::move(compositor_frame_sink)) {
- DCHECK(delegate_);
compositor_frame_sink_->BindToClient(this);
}
@@ -43,6 +39,15 @@ void FrameGenerator::SetDeviceScaleFactor(float device_scale_factor) {
SetNeedsBeginFrame(true);
}
+void FrameGenerator::SetHighContrastMode(bool enabled) {
+ if (high_contrast_mode_enabled_ == enabled)
+ return;
+
+ high_contrast_mode_enabled_ = enabled;
+ if (window_manager_surface_info_.is_valid())
+ SetNeedsBeginFrame(true);
+}
+
void FrameGenerator::OnSurfaceCreated(const cc::SurfaceInfo& surface_info) {
DCHECK(surface_info.is_valid());
@@ -123,7 +128,7 @@ cc::CompositorFrame FrameGenerator::GenerateCompositorFrame(
cc::CompositorFrame frame;
frame.render_pass_list.push_back(std::move(render_pass));
- if (delegate_->IsInHighContrastMode()) {
+ if (high_contrast_mode_enabled_) {
std::unique_ptr<cc::RenderPass> invert_pass = cc::RenderPass::Create();
invert_pass->SetNew(2, output_rect, output_rect, gfx::Transform());
cc::SharedQuadState* shared_state =
@@ -134,7 +139,8 @@ cc::CompositorFrame FrameGenerator::GenerateCompositorFrame(
shared_state->SetAll(gfx::Transform(), scaled_bounds, output_rect,
output_rect, false, 1.f, SkBlendMode::kSrcOver, 0);
auto* quad = invert_pass->CreateAndAppendDrawQuad<cc::RenderPassDrawQuad>();
- render_pass->filters.Append(cc::FilterOperation::CreateInvertFilter(1.f));
+ frame.render_pass_list.back()->filters.Append(
+ cc::FilterOperation::CreateInvertFilter(1.f));
quad->SetNew(shared_state, output_rect, output_rect, render_pass_id,
0 /* mask_resource_id */, gfx::RectF() /* mask_uv_rect */,
gfx::Size() /* mask_texture_size */,
« no previous file with comments | « services/ui/ws/frame_generator.h ('k') | services/ui/ws/frame_generator_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698