Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
google
GitHub Repository: google/crosvm
Path: blob/main/gpu_display/src/vulkan/sys/unix.rs
5394 views
1
// Copyright 2023 The ChromiumOS Authors
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
use std::ffi::c_void;
6
use std::marker::PhantomData;
7
use std::sync::Arc;
8
9
use anyhow::Result;
10
use ash::vk;
11
use base::AsRawDescriptor;
12
use euclid::Size2D;
13
use euclid::UnknownUnit;
14
use vulkano::device::Device;
15
use vulkano::instance::Instance;
16
use vulkano::memory::ExternalMemoryHandleTypes;
17
use vulkano::memory::MemoryImportInfo;
18
19
use super::ApplicationState;
20
use super::ApplicationStateBuilder;
21
use super::Surface;
22
use super::Window;
23
use super::WindowEventLoop;
24
25
pub type NativeWindowType = *mut c_void;
26
27
pub(crate) struct StubWindow;
28
29
impl Window for StubWindow {
30
fn create_vulkan_surface(self: Arc<Self>, _instance: Arc<Instance>) -> Result<Arc<Surface>> {
31
unimplemented!();
32
}
33
34
fn get_inner_size(&self) -> Result<Size2D<u32, UnknownUnit>> {
35
unimplemented!()
36
}
37
}
38
39
pub struct StubWindowEventLoop<AppState: ApplicationState>(PhantomData<AppState>);
40
41
impl<AppState: ApplicationState> WindowEventLoop<AppState> for StubWindowEventLoop<AppState> {
42
type WindowType = StubWindow;
43
44
unsafe fn create<Builder>(
45
_parent: NativeWindowType,
46
_initial_window_size: &Size2D<i32, UnknownUnit>,
47
_application_state_builder: Builder,
48
) -> Result<Self>
49
where
50
Builder: ApplicationStateBuilder<Target = AppState>,
51
{
52
unimplemented!()
53
}
54
55
fn move_window(&self, _pos: &euclid::Box2D<i32, UnknownUnit>) -> Result<()> {
56
unimplemented!()
57
}
58
59
fn send_event(&self, _event: AppState::UserEvent) -> Result<()> {
60
unimplemented!()
61
}
62
}
63
64
pub(crate) fn create_post_image_external_memory_handle_types() -> ExternalMemoryHandleTypes {
65
unimplemented!()
66
}
67
68
// The ownership of the descriptor is transferred to the returned MemoryImportInfo.
69
pub(crate) fn create_post_image_memory_import_info(
70
_memory_descriptor: &dyn AsRawDescriptor,
71
) -> MemoryImportInfo {
72
unimplemented!()
73
}
74
75
pub(crate) fn import_semaphore_from_descriptor(
76
_device: &Arc<Device>,
77
_semaphore: vk::Semaphore,
78
_descriptor: &dyn AsRawDescriptor,
79
) -> vk::Result {
80
unimplemented!()
81
}
82
83