mirror of
https://github.com/slint-ui/slint.git
synced 2025-08-28 06:14:10 +00:00

This patch adds support for the `SLINT_KMS_ROTATION` environment variable, that instructs the Skia/FemtoVG renderers to rotate the scene before rendering.
69 lines
1.9 KiB
Rust
69 lines
1.9 KiB
Rust
// Copyright © SixtyFPS GmbH <info@slint.dev>
|
|
// SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-Slint-Royalty-free-1.1 OR LicenseRef-Slint-commercial
|
|
|
|
#![doc = include_str!("README.md")]
|
|
#![doc(html_logo_url = "https://slint.dev/logo/slint-logo-square-light.svg")]
|
|
|
|
#[cfg(target_os = "linux")]
|
|
mod fullscreenwindowadapter;
|
|
|
|
#[cfg(target_os = "linux")]
|
|
use std::os::fd::AsFd;
|
|
|
|
#[cfg(target_os = "linux")]
|
|
type DeviceOpener<'a> = dyn Fn(&std::path::Path) -> Result<std::sync::Arc<dyn AsFd>, i_slint_core::platform::PlatformError>
|
|
+ 'a;
|
|
|
|
#[cfg(target_os = "linux")]
|
|
mod display;
|
|
|
|
#[cfg(target_os = "linux")]
|
|
mod renderer {
|
|
#[cfg(any(feature = "renderer-skia-opengl", feature = "renderer-skia-vulkan"))]
|
|
pub mod skia;
|
|
|
|
#[cfg(feature = "renderer-femtovg")]
|
|
pub mod femtovg;
|
|
|
|
pub fn try_skia_then_femtovg(
|
|
_device_opener: &crate::DeviceOpener,
|
|
) -> Result<
|
|
Box<dyn crate::fullscreenwindowadapter::FullscreenRenderer>,
|
|
i_slint_core::platform::PlatformError,
|
|
> {
|
|
#[allow(unused_mut, unused_assignments)]
|
|
let mut result = Err(format!("No renderer configured").into());
|
|
|
|
#[cfg(any(feature = "renderer-skia-opengl", feature = "renderer-skia-vulkan"))]
|
|
{
|
|
result = skia::SkiaRendererAdapter::new_try_vulkan_then_opengl(_device_opener);
|
|
}
|
|
|
|
#[cfg(feature = "renderer-femtovg")]
|
|
if result.is_err() {
|
|
result = femtovg::FemtoVGRendererAdapter::new(_device_opener);
|
|
}
|
|
|
|
result
|
|
}
|
|
}
|
|
|
|
#[cfg(target_os = "linux")]
|
|
mod calloop_backend;
|
|
|
|
#[cfg(target_os = "linux")]
|
|
pub use calloop_backend::*;
|
|
|
|
#[cfg(not(target_os = "linux"))]
|
|
mod noop_backend;
|
|
#[cfg(not(target_os = "linux"))]
|
|
pub use noop_backend::*;
|
|
|
|
#[doc(hidden)]
|
|
pub type NativeWidgets = ();
|
|
#[doc(hidden)]
|
|
pub type NativeGlobals = ();
|
|
#[doc(hidden)]
|
|
pub const HAS_NATIVE_STYLE: bool = false;
|
|
#[doc(hidden)]
|
|
pub mod native_widgets {}
|