mirror of
https://github.com/gfx-rs/wgpu.git
synced 2025-12-08 21:26:17 +00:00
Mark some methods unsafe (#4596)
This commit is contained in:
parent
4b8835f6cd
commit
37fe6a5424
@ -57,11 +57,13 @@ fn main() {
|
|||||||
let mut command_buffer_id_manager = wgc::identity::IdentityManager::default();
|
let mut command_buffer_id_manager = wgc::identity::IdentityManager::default();
|
||||||
|
|
||||||
#[cfg(feature = "winit")]
|
#[cfg(feature = "winit")]
|
||||||
let surface = global.instance_create_surface(
|
let surface = unsafe {
|
||||||
|
global.instance_create_surface(
|
||||||
window.display_handle().unwrap().into(),
|
window.display_handle().unwrap().into(),
|
||||||
window.window_handle().unwrap().into(),
|
window.window_handle().unwrap().into(),
|
||||||
wgc::id::TypedId::zip(0, 1, wgt::Backend::Empty),
|
wgc::id::TypedId::zip(0, 1, wgt::Backend::Empty),
|
||||||
);
|
)
|
||||||
|
};
|
||||||
|
|
||||||
let device = match actions.pop() {
|
let device = match actions.pop() {
|
||||||
Some(trace::Action::Init { desc, backend }) => {
|
Some(trace::Action::Init { desc, backend }) => {
|
||||||
|
|||||||
@ -459,8 +459,13 @@ pub enum RequestAdapterError {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<G: GlobalIdentityHandlerFactory> Global<G> {
|
impl<G: GlobalIdentityHandlerFactory> Global<G> {
|
||||||
|
/// # Safety
|
||||||
|
///
|
||||||
|
/// - `display_handle` must be a valid object to create a surface upon.
|
||||||
|
/// - `window_handle` must remain valid as long as the returned
|
||||||
|
/// [`SurfaceId`] is being used.
|
||||||
#[cfg(feature = "raw-window-handle")]
|
#[cfg(feature = "raw-window-handle")]
|
||||||
pub fn instance_create_surface(
|
pub unsafe fn instance_create_surface(
|
||||||
&self,
|
&self,
|
||||||
display_handle: raw_window_handle::RawDisplayHandle,
|
display_handle: raw_window_handle::RawDisplayHandle,
|
||||||
window_handle: raw_window_handle::RawWindowHandle,
|
window_handle: raw_window_handle::RawWindowHandle,
|
||||||
|
|||||||
@ -588,14 +588,15 @@ impl crate::Context for Context {
|
|||||||
))
|
))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn instance_create_surface(
|
unsafe fn instance_create_surface(
|
||||||
&self,
|
&self,
|
||||||
display_handle: raw_window_handle::RawDisplayHandle,
|
display_handle: raw_window_handle::RawDisplayHandle,
|
||||||
window_handle: raw_window_handle::RawWindowHandle,
|
window_handle: raw_window_handle::RawWindowHandle,
|
||||||
) -> Result<(Self::SurfaceId, Self::SurfaceData), crate::CreateSurfaceError> {
|
) -> Result<(Self::SurfaceId, Self::SurfaceData), crate::CreateSurfaceError> {
|
||||||
let id = self
|
let id = unsafe {
|
||||||
.0
|
self.0
|
||||||
.instance_create_surface(display_handle, window_handle, ());
|
.instance_create_surface(display_handle, window_handle, ())
|
||||||
|
};
|
||||||
|
|
||||||
Ok((
|
Ok((
|
||||||
id,
|
id,
|
||||||
|
|||||||
@ -1085,7 +1085,7 @@ impl crate::context::Context for Context {
|
|||||||
Context(gpu)
|
Context(gpu)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn instance_create_surface(
|
unsafe fn instance_create_surface(
|
||||||
&self,
|
&self,
|
||||||
_display_handle: raw_window_handle::RawDisplayHandle,
|
_display_handle: raw_window_handle::RawDisplayHandle,
|
||||||
window_handle: raw_window_handle::RawWindowHandle,
|
window_handle: raw_window_handle::RawWindowHandle,
|
||||||
|
|||||||
@ -96,7 +96,7 @@ pub trait Context: Debug + WasmNotSend + WasmNotSync + Sized {
|
|||||||
type PopErrorScopeFuture: Future<Output = Option<Error>> + WasmNotSend + 'static;
|
type PopErrorScopeFuture: Future<Output = Option<Error>> + WasmNotSend + 'static;
|
||||||
|
|
||||||
fn init(instance_desc: wgt::InstanceDescriptor) -> Self;
|
fn init(instance_desc: wgt::InstanceDescriptor) -> Self;
|
||||||
fn instance_create_surface(
|
unsafe fn instance_create_surface(
|
||||||
&self,
|
&self,
|
||||||
display_handle: raw_window_handle::RawDisplayHandle,
|
display_handle: raw_window_handle::RawDisplayHandle,
|
||||||
window_handle: raw_window_handle::RawWindowHandle,
|
window_handle: raw_window_handle::RawWindowHandle,
|
||||||
@ -1204,7 +1204,7 @@ pub type SubmittedWorkDoneCallback = Box<dyn FnOnce() + 'static>;
|
|||||||
pub(crate) trait DynContext: Debug + WasmNotSend + WasmNotSync {
|
pub(crate) trait DynContext: Debug + WasmNotSend + WasmNotSync {
|
||||||
fn as_any(&self) -> &dyn Any;
|
fn as_any(&self) -> &dyn Any;
|
||||||
|
|
||||||
fn instance_create_surface(
|
unsafe fn instance_create_surface(
|
||||||
&self,
|
&self,
|
||||||
display_handle: raw_window_handle::RawDisplayHandle,
|
display_handle: raw_window_handle::RawDisplayHandle,
|
||||||
window_handle: raw_window_handle::RawWindowHandle,
|
window_handle: raw_window_handle::RawWindowHandle,
|
||||||
@ -2058,13 +2058,13 @@ where
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
fn instance_create_surface(
|
unsafe fn instance_create_surface(
|
||||||
&self,
|
&self,
|
||||||
display_handle: raw_window_handle::RawDisplayHandle,
|
display_handle: raw_window_handle::RawDisplayHandle,
|
||||||
window_handle: raw_window_handle::RawWindowHandle,
|
window_handle: raw_window_handle::RawWindowHandle,
|
||||||
) -> Result<(ObjectId, Box<crate::Data>), crate::CreateSurfaceError> {
|
) -> Result<(ObjectId, Box<crate::Data>), crate::CreateSurfaceError> {
|
||||||
let (surface, data) =
|
let (surface, data) =
|
||||||
Context::instance_create_surface(self, display_handle, window_handle)?;
|
unsafe { Context::instance_create_surface(self, display_handle, window_handle) }?;
|
||||||
Ok((surface.into(), Box::new(data) as _))
|
Ok((surface.into(), Box::new(data) as _))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1954,11 +1954,13 @@ impl Instance {
|
|||||||
inner: CreateSurfaceErrorKind::RawHandle(e),
|
inner: CreateSurfaceErrorKind::RawHandle(e),
|
||||||
})?
|
})?
|
||||||
.as_raw();
|
.as_raw();
|
||||||
let (id, data) = DynContext::instance_create_surface(
|
let (id, data) = unsafe {
|
||||||
|
DynContext::instance_create_surface(
|
||||||
&*self.context,
|
&*self.context,
|
||||||
raw_display_handle,
|
raw_display_handle,
|
||||||
raw_window_handle,
|
raw_window_handle,
|
||||||
)?;
|
)
|
||||||
|
}?;
|
||||||
Ok(Surface {
|
Ok(Surface {
|
||||||
context: Arc::clone(&self.context),
|
context: Arc::clone(&self.context),
|
||||||
id,
|
id,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user