blob: c75650acdf314c431b33b93e1a030fac8bc31803 [file] [log] [blame]
// 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;
}