|  | // Copyright 2017 The Fuchsia 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 SRC_UI_EXAMPLES_ESCHER_COMMON_DEMO_HARNESS_GLFW_H_ | 
|  | #define SRC_UI_EXAMPLES_ESCHER_COMMON_DEMO_HARNESS_GLFW_H_ | 
|  |  | 
|  | #include "src/ui/examples/escher/common/demo_harness.h" | 
|  |  | 
|  | class DemoHarnessGlfw : public DemoHarness { | 
|  | public: | 
|  | DemoHarnessGlfw(WindowParams window_params); | 
|  |  | 
|  | // So that it can be called from GLFW callback. | 
|  | using DemoHarness::HandleKeyPress; | 
|  |  | 
|  | private: | 
|  | // |DemoHarness| | 
|  | std::string GetCacheDirectoryPath() override; | 
|  |  | 
|  | // |DemoHarness| | 
|  | // Called by Init(). | 
|  | void InitWindowSystem() override; | 
|  | vk::SurfaceKHR CreateWindowAndSurface(const WindowParams& window_params) override; | 
|  |  | 
|  | // |DemoHarness| | 
|  | // Called by Init() via CreateInstance(). | 
|  | void AppendPlatformSpecificInstanceExtensionNames(InstanceParams* params) override; | 
|  | void AppendPlatformSpecificDeviceExtensionNames(std::set<std::string>* names) override; | 
|  |  | 
|  | // |DemoHarness| | 
|  | // Called by Shutdown(). | 
|  | void ShutdownWindowSystem() override; | 
|  |  | 
|  | // |DemoHarness| | 
|  | // Called by Run(). | 
|  | void RunForPlatform(Demo* demo) override; | 
|  | }; | 
|  |  | 
|  | #endif  // SRC_UI_EXAMPLES_ESCHER_COMMON_DEMO_HARNESS_GLFW_H_ |