class DemoHarness
Defined at line 28 of file ../../src/ui/examples/escher/common/demo_harness.h
DemoHarness is responsible for initializing Vulkan and its connection to the
window system, and handling mouse/touch/keyboard input. Subclasses provide
platform-specific implementations of this functionality.
Protected Members
RefPtr filesystem_
Public Methods
void ~DemoHarness ()
Defined at line 34 of file ../../src/ui/examples/escher/common/demo_harness.cc
const WindowParams & GetWindowParams ()
Defined at line 44 of file ../../src/ui/examples/escher/common/demo_harness.h
escher::VulkanSwapchain GetVulkanSwapchain ()
Defined at line 46 of file ../../src/ui/examples/escher/common/demo_harness.h
const escher::VulkanDeviceQueuesPtr & device_queues ()
Defined at line 47 of file ../../src/ui/examples/escher/common/demo_harness.h
const escher::HackFilesystemPtr & filesystem ()
Defined at line 48 of file ../../src/ui/examples/escher/common/demo_harness.h
void SetShouldQuit ()
Notify the demo that it should stop looping and quit.
Defined at line 51 of file ../../src/ui/examples/escher/common/demo_harness.h
bool ShouldQuit ()
Defined at line 52 of file ../../src/ui/examples/escher/common/demo_harness.h
Demo * GetRunningDemo ()
Defined at line 56 of file ../../src/ui/examples/escher/common/demo_harness.h
escher::VulkanContext GetVulkanContext ()
Defined at line 385 of file ../../src/ui/examples/escher/common/demo_harness.cc
void Run (Demo * demo)
Start scheduling/rendering frames until SetShouldQuit() is called.
Defined at line 483 of file ../../src/ui/examples/escher/common/demo_harness.cc
void Shutdown ()
Must be called before harness is destroyed.
Defined at line 57 of file ../../src/ui/examples/escher/common/demo_harness.cc
escher::Escher * escher ()
Defined at line 61 of file ../../src/ui/examples/escher/common/demo_harness.h
std::unique_ptr<DemoHarness> New (DemoHarness::WindowParams window_params, InstanceParams instance_params)
When running on Linux, New() instantiates a DemoHarnessGlfw.
Defined at line 130 of file ../../src/ui/examples/escher/common/demo_harness_glfw.cc
Protected Methods
uint32_t transfer_queue_family ()
Defined at line 87 of file ../../src/ui/examples/escher/common/demo_harness.h
void DemoHarness (WindowParams window_params)
Create via DemoHarness::New().
Defined at line 30 of file ../../src/ui/examples/escher/common/demo_harness.cc
vk::Device device ()
Defined at line 80 of file ../../src/ui/examples/escher/common/demo_harness.h
vk::PhysicalDevice physical_device ()
Defined at line 81 of file ../../src/ui/examples/escher/common/demo_harness.h
vk::Instance instance ()
Defined at line 82 of file ../../src/ui/examples/escher/common/demo_harness.h
vk::SurfaceKHR surface ()
Defined at line 83 of file ../../src/ui/examples/escher/common/demo_harness.h
vk::Queue main_queue ()
Defined at line 84 of file ../../src/ui/examples/escher/common/demo_harness.h
uint32_t main_queue_family ()
Defined at line 85 of file ../../src/ui/examples/escher/common/demo_harness.h
vk::Queue transfer_queue ()
Defined at line 86 of file ../../src/ui/examples/escher/common/demo_harness.h
const escher::VulkanInstance::ProcAddrs & instance_proc_addrs ()
Defined at line 89 of file ../../src/ui/examples/escher/common/demo_harness.h
bool MaybeDrawFrame ()
Draw a frame, unless too many unfinished frames are in flight. Return
true if a frame was drawn and false otherwise.
Defined at line 387 of file ../../src/ui/examples/escher/common/demo_harness.cc
bool HandleKeyPress (std::string key)
|key| must contain either a single alpha-numeric character (uppercase
only), or one of the special values "ESCAPE", "SPACE", and "RETURN".
Return true if the key-press was handled, and false otherwise.
Defined at line 456 of file ../../src/ui/examples/escher/common/demo_harness.cc
void RunForPlatform (Demo * demo)
Subclasses must implement. Contains platform-specific logic for scheduling frames.
void BeginRun (Demo * demo)
Called by Run(), before RunForPlatform().
Defined at line 489 of file ../../src/ui/examples/escher/common/demo_harness.cc
void EndRun ()
Called by Run(), after RunForPlatform().
Defined at line 498 of file ../../src/ui/examples/escher/common/demo_harness.cc