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

Records