Merge remote-tracking branch 'origin/master' into damage
This commit is contained in:
commit
199a016f44
5 changed files with 52 additions and 4 deletions
4
.github/CODEOWNERS
vendored
4
.github/CODEOWNERS
vendored
|
|
@ -10,8 +10,8 @@
|
||||||
# Wayland
|
# Wayland
|
||||||
/src/wayland @ids1024
|
/src/wayland @ids1024
|
||||||
|
|
||||||
# Web (no maintainer)
|
# Web
|
||||||
/src/web.rs
|
/src/web.rs @daxpedda
|
||||||
|
|
||||||
# Windows
|
# Windows
|
||||||
/src/win32.rs @notgull
|
/src/win32.rs @notgull
|
||||||
|
|
|
||||||
11
.github/workflows/ci.yml
vendored
11
.github/workflows/ci.yml
vendored
|
|
@ -118,3 +118,14 @@ jobs:
|
||||||
!contains(matrix.platform.target, 'freebsd') &&
|
!contains(matrix.platform.target, 'freebsd') &&
|
||||||
!contains(matrix.platform.target, 'netbsd')
|
!contains(matrix.platform.target, 'netbsd')
|
||||||
run: cargo clippy --all-targets --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES -- -Dwarnings
|
run: cargo clippy --all-targets --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES -- -Dwarnings
|
||||||
|
|
||||||
|
- name: Lint with rustdoc
|
||||||
|
shell: bash
|
||||||
|
if: >
|
||||||
|
(matrix.rust_version == 'stable') &&
|
||||||
|
!contains(matrix.platform.options, '--no-default-features') &&
|
||||||
|
!((matrix.platform.os == 'ubuntu-latest') && contains(matrix.platform.target, 'i686')) &&
|
||||||
|
!contains(matrix.platform.target, 'redox') &&
|
||||||
|
!contains(matrix.platform.target, 'freebsd') &&
|
||||||
|
!contains(matrix.platform.target, 'netbsd')
|
||||||
|
run: cargo doc --no-deps --target ${{ matrix.platform.target }} $OPTIONS --features $FEATURES --document-private-items
|
||||||
|
|
|
||||||
15
Cargo.toml
15
Cargo.toml
|
|
@ -29,13 +29,13 @@ thiserror = "1.0.30"
|
||||||
|
|
||||||
[target.'cfg(all(unix, not(any(target_vendor = "apple", target_os = "android", target_os = "redox"))))'.dependencies]
|
[target.'cfg(all(unix, not(any(target_vendor = "apple", target_os = "android", target_os = "redox"))))'.dependencies]
|
||||||
bytemuck = { version = "1.12.3", optional = true }
|
bytemuck = { version = "1.12.3", optional = true }
|
||||||
memmap2 = { version = "0.5.8", optional = true }
|
memmap2 = { version = "0.6.1", optional = true }
|
||||||
nix = { version = "0.26.1", optional = true }
|
nix = { version = "0.26.1", optional = true }
|
||||||
wayland-backend = { version = "0.1.0", features = ["client_system"], optional = true }
|
wayland-backend = { version = "0.1.0", features = ["client_system"], optional = true }
|
||||||
wayland-client = { version = "0.30.0", optional = true }
|
wayland-client = { version = "0.30.0", optional = true }
|
||||||
wayland-sys = "0.30.0"
|
wayland-sys = "0.30.0"
|
||||||
x11-dl = { version = "2.19.1", optional = true }
|
x11-dl = { version = "2.19.1", optional = true }
|
||||||
x11rb = { version = "0.11.0", features = ["allow-unsafe-code", "dl-libxcb", "shm"], optional = true }
|
x11rb = { version = "0.12.0", features = ["allow-unsafe-code", "dl-libxcb", "shm"], optional = true }
|
||||||
|
|
||||||
[target.'cfg(all(unix, not(any(target_vendor = "apple", target_os = "android", target_os = "redox", target_os = "linux", target_os = "freebsd"))))'.dependencies]
|
[target.'cfg(all(unix, not(any(target_vendor = "apple", target_os = "android", target_os = "redox", target_os = "linux", target_os = "freebsd"))))'.dependencies]
|
||||||
fastrand = { version = "1.8.0", optional = true }
|
fastrand = { version = "1.8.0", optional = true }
|
||||||
|
|
@ -85,3 +85,14 @@ rayon = "1.5.1"
|
||||||
members = [
|
members = [
|
||||||
"run-wasm",
|
"run-wasm",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[package.metadata.docs.rs]
|
||||||
|
all-features = true
|
||||||
|
rustdoc-args = ["--cfg", "docsrs"]
|
||||||
|
default-target = "x86_64-unknown-linux-gnu"
|
||||||
|
targets = [
|
||||||
|
"x86_64-pc-windows-msvc",
|
||||||
|
"x86_64-apple-darwin",
|
||||||
|
"x86_64-unknown-linux-gnu",
|
||||||
|
"wasm32-unknown-unknown",
|
||||||
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
#![doc = include_str!("../README.md")]
|
#![doc = include_str!("../README.md")]
|
||||||
#![deny(unsafe_op_in_unsafe_fn)]
|
#![deny(unsafe_op_in_unsafe_fn)]
|
||||||
#![warn(missing_docs)]
|
#![warn(missing_docs)]
|
||||||
|
#![cfg_attr(docsrs, feature(doc_auto_cfg))]
|
||||||
|
|
||||||
#[cfg(target_os = "macos")]
|
#[cfg(target_os = "macos")]
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
|
|
@ -35,6 +36,9 @@ use raw_window_handle::{
|
||||||
HasRawDisplayHandle, HasRawWindowHandle, RawDisplayHandle, RawWindowHandle,
|
HasRawDisplayHandle, HasRawWindowHandle, RawDisplayHandle, RawWindowHandle,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#[cfg(target_arch = "wasm32")]
|
||||||
|
pub use self::web::SurfaceExtWeb;
|
||||||
|
|
||||||
/// An instance of this struct contains the platform-specific data that must be managed in order to
|
/// An instance of this struct contains the platform-specific data that must be managed in order to
|
||||||
/// write to a window on that platform.
|
/// write to a window on that platform.
|
||||||
pub struct Context {
|
pub struct Context {
|
||||||
|
|
|
||||||
22
src/web.rs
22
src/web.rs
|
|
@ -11,6 +11,7 @@ use web_sys::ImageData;
|
||||||
use crate::error::SwResultExt;
|
use crate::error::SwResultExt;
|
||||||
use crate::{Rect, SoftBufferError};
|
use crate::{Rect, SoftBufferError};
|
||||||
use std::convert::TryInto;
|
use std::convert::TryInto;
|
||||||
|
use std::marker::PhantomData;
|
||||||
use std::num::NonZeroU32;
|
use std::num::NonZeroU32;
|
||||||
|
|
||||||
/// Display implementation for the web platform.
|
/// Display implementation for the web platform.
|
||||||
|
|
@ -62,6 +63,10 @@ impl WebImpl {
|
||||||
// We already made sure this was a canvas in `querySelector`.
|
// We already made sure this was a canvas in `querySelector`.
|
||||||
.unchecked_into();
|
.unchecked_into();
|
||||||
|
|
||||||
|
Self::from_canvas(canvas)
|
||||||
|
}
|
||||||
|
|
||||||
|
fn from_canvas(canvas: HtmlCanvasElement) -> Result<Self, SoftBufferError> {
|
||||||
let ctx = canvas
|
let ctx = canvas
|
||||||
.get_context("2d")
|
.get_context("2d")
|
||||||
.ok()
|
.ok()
|
||||||
|
|
@ -172,6 +177,23 @@ impl WebImpl {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Extension methods for the Wasm target on [`Surface`](crate::Surface).
|
||||||
|
pub trait SurfaceExtWeb: Sized {
|
||||||
|
/// Creates a new instance of this struct, using the provided [`HtmlCanvasElement`].
|
||||||
|
fn from_canvas(canvas: HtmlCanvasElement) -> Result<Self, SoftBufferError>;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl SurfaceExtWeb for crate::Surface {
|
||||||
|
fn from_canvas(canvas: HtmlCanvasElement) -> Result<Self, SoftBufferError> {
|
||||||
|
let imple = crate::SurfaceDispatch::Web(WebImpl::from_canvas(canvas)?);
|
||||||
|
|
||||||
|
Ok(Self {
|
||||||
|
surface_impl: Box::new(imple),
|
||||||
|
_marker: PhantomData,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub struct BufferImpl<'a> {
|
pub struct BufferImpl<'a> {
|
||||||
imp: &'a mut WebImpl,
|
imp: &'a mut WebImpl,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue