summaryrefslogtreecommitdiffstats
path: root/graphics
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-09-08 00:35:17 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-09-08 00:44:59 +0200
commitc1f79b40cf704cafc807250b177fc7d3444fe54f (patch)
tree31c0cf2b8d166976dc819f020e0185f9d8c2bdcd /graphics
parentfaa12382d4d7a44ab60fa5bf2a5024a34dbb2e8d (diff)
downloadiced-c1f79b40cf704cafc807250b177fc7d3444fe54f.tar.gz
iced-c1f79b40cf704cafc807250b177fc7d3444fe54f.tar.bz2
iced-c1f79b40cf704cafc807250b177fc7d3444fe54f.zip
Make `Application` and `Sandbox` return a `Result`
Diffstat (limited to 'graphics')
-rw-r--r--graphics/Cargo.toml1
-rw-r--r--graphics/src/error.rs7
-rw-r--r--graphics/src/lib.rs2
-rw-r--r--graphics/src/window/compositor.rs4
-rw-r--r--graphics/src/window/gl_compositor.rs4
5 files changed, 14 insertions, 4 deletions
diff --git a/graphics/Cargo.toml b/graphics/Cargo.toml
index 723b9232..dec24c59 100644
--- a/graphics/Cargo.toml
+++ b/graphics/Cargo.toml
@@ -15,6 +15,7 @@ opengl = []
bytemuck = "1.2"
glam = "0.9"
raw-window-handle = "0.3"
+thiserror = "1.0"
[dependencies.iced_native]
version = "0.2"
diff --git a/graphics/src/error.rs b/graphics/src/error.rs
new file mode 100644
index 00000000..c86e326a
--- /dev/null
+++ b/graphics/src/error.rs
@@ -0,0 +1,7 @@
+/// A graphical error that occurred while running an application.
+#[derive(Debug, thiserror::Error)]
+pub enum Error {
+ /// A suitable graphics adapter or device could not be found
+ #[error("a suitable graphics adapter or device could not be found")]
+ AdapterNotFound,
+}
diff --git a/graphics/src/lib.rs b/graphics/src/lib.rs
index d03f3b48..a3bd5364 100644
--- a/graphics/src/lib.rs
+++ b/graphics/src/lib.rs
@@ -9,6 +9,7 @@
#![forbid(rust_2018_idioms)]
#![cfg_attr(docsrs, feature(doc_cfg))]
mod antialiasing;
+mod error;
mod primitive;
mod renderer;
mod transformation;
@@ -29,6 +30,7 @@ pub use widget::*;
pub use antialiasing::Antialiasing;
pub use backend::Backend;
pub use defaults::Defaults;
+pub use error::Error;
pub use layer::Layer;
pub use primitive::Primitive;
pub use renderer::Renderer;
diff --git a/graphics/src/window/compositor.rs b/graphics/src/window/compositor.rs
index aa625f43..7674f227 100644
--- a/graphics/src/window/compositor.rs
+++ b/graphics/src/window/compositor.rs
@@ -1,4 +1,4 @@
-use crate::{Color, Viewport};
+use crate::{Color, Error, Viewport};
use iced_native::mouse;
use raw_window_handle::HasRawWindowHandle;
@@ -19,7 +19,7 @@ pub trait Compositor: Sized {
/// Creates a new [`Backend`].
///
/// [`Backend`]: trait.Backend.html
- fn new(settings: Self::Settings) -> (Self, Self::Renderer);
+ fn new(settings: Self::Settings) -> Result<(Self, Self::Renderer), Error>;
/// Crates a new [`Surface`] for the given window.
///
diff --git a/graphics/src/window/gl_compositor.rs b/graphics/src/window/gl_compositor.rs
index 2ba39d6e..1f37642e 100644
--- a/graphics/src/window/gl_compositor.rs
+++ b/graphics/src/window/gl_compositor.rs
@@ -1,4 +1,4 @@
-use crate::{Color, Size, Viewport};
+use crate::{Color, Error, Size, Viewport};
use iced_native::mouse;
use core::ffi::c_void;
@@ -41,7 +41,7 @@ pub trait GLCompositor: Sized {
unsafe fn new(
settings: Self::Settings,
loader_function: impl FnMut(&str) -> *const c_void,
- ) -> (Self, Self::Renderer);
+ ) -> Result<(Self, Self::Renderer), Error>;
/// Returns the amount of samples that should be used when configuring
/// an OpenGL context for this [`Compositor`].