| // Copyright 2019 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. |
| |
| #include <stdlib.h> |
| |
| #include <cmath> |
| |
| #include "src/ui/examples/escher/common/demo_harness.h" |
| #include "src/ui/examples/escher/rainfall/rainfall_demo.h" |
| |
| std::unique_ptr<DemoHarness> CreateHarnessForDemo(std::string demo_name, uint32_t width, |
| uint32_t height, int argc, char** argv) { |
| bool use_fullscreen = false; |
| for (int i = 1; i < argc; ++i) { |
| if (!strcmp("--fullscreen", argv[i])) { |
| use_fullscreen = true; |
| } |
| } |
| |
| DemoHarness::WindowParams window_params{demo_name, width, height, 2, use_fullscreen}; |
| |
| DemoHarness::InstanceParams instance_params; |
| auto validation_layer_name = escher::VulkanInstance::GetValidationLayerName(); |
| if (validation_layer_name) { |
| instance_params.layer_names.insert(*validation_layer_name); |
| } |
| return DemoHarness::New(window_params, std::move(instance_params)); |
| } |
| |
| int main(int argc, char** argv) { |
| FX_LOGS(INFO) << "Running rainfall..."; |
| auto harness = CreateHarnessForDemo("Flatland Rainfall Demo", RainfallDemo::kDemoWidth, |
| RainfallDemo::kDemoHeight, argc, argv); |
| { |
| RainfallDemo demo(harness->escher()->GetWeakPtr(), argc, argv); |
| harness->Run(&demo); |
| } |
| harness->Shutdown(); |
| return 0; |
| } |