| 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 */,
|
|
|