blob: f99f04fe903781f549915c53f80d7b91d0bbc953 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FLUTTER_SHELL_PLATFORM_WINDOWS_TESTING_VIEW_MODIFIER_H_
#define FLUTTER_SHELL_PLATFORM_WINDOWS_TESTING_VIEW_MODIFIER_H_
#include "flutter/fml/macros.h"
#include "flutter/shell/platform/windows/egl/window_surface.h"
#include "flutter/shell/platform/windows/flutter_windows_view.h"
namespace flutter {
// A test utility class providing the ability to access and alter various
// private fields in a |FlutterWindowsView| instance.
class ViewModifier {
public:
explicit ViewModifier(FlutterWindowsView* view) : view_(view) {}
// Override the EGL surface used by the view.
//
// Modifications are to the view, and will last for the lifetime of the
// view unless overwritten again.
void SetSurface(std::unique_ptr<egl::WindowSurface> surface) {
view_->surface_ = std::move(surface);
}
private:
FlutterWindowsView* view_;
FML_DISALLOW_COPY_AND_ASSIGN(ViewModifier);
};
} // namespace flutter
#endif // FLUTTER_SHELL_PLATFORM_WINDOWS_TESTING_VIEW_MODIFIER_H_