mirror of
https://github.com/encounter/engine.git
synced 2026-03-30 11:09:55 -07:00
36 lines
1.3 KiB
C++
36 lines
1.3 KiB
C++
// Copyright 2013 The Flutter 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 "flutter/shell/platform/android/android_surface.h"
|
|
|
|
#include <utility>
|
|
|
|
#include "flutter/shell/platform/android/android_surface_gl.h"
|
|
#include "flutter/shell/platform/android/android_surface_software.h"
|
|
#if SHELL_ENABLE_VULKAN
|
|
#include "flutter/shell/platform/android/android_surface_vulkan.h"
|
|
#endif // SHELL_ENABLE_VULKAN
|
|
|
|
namespace flutter {
|
|
|
|
std::unique_ptr<AndroidSurface> AndroidSurface::Create(
|
|
bool use_software_rendering) {
|
|
if (use_software_rendering) {
|
|
auto software_surface = std::make_unique<AndroidSurfaceSoftware>();
|
|
return software_surface->IsValid() ? std::move(software_surface) : nullptr;
|
|
}
|
|
#if SHELL_ENABLE_VULKAN
|
|
auto vulkan_surface = std::make_unique<AndroidSurfaceVulkan>();
|
|
return vulkan_surface->IsValid() ? std::move(vulkan_surface) : nullptr;
|
|
#else // SHELL_ENABLE_VULKAN
|
|
auto gl_surface = std::make_unique<AndroidSurfaceGL>();
|
|
return gl_surface->IsOffscreenContextValid() ? std::move(gl_surface)
|
|
: nullptr;
|
|
#endif // SHELL_ENABLE_VULKAN
|
|
}
|
|
|
|
AndroidSurface::~AndroidSurface() = default;
|
|
|
|
} // namespace flutter
|