summaryrefslogtreecommitdiff
path: root/glfw/src/init.rs
diff options
context:
space:
mode:
Diffstat (limited to 'glfw/src/init.rs')
-rw-r--r--glfw/src/init.rs59
1 files changed, 0 insertions, 59 deletions
diff --git a/glfw/src/init.rs b/glfw/src/init.rs
deleted file mode 100644
index df5a989..0000000
--- a/glfw/src/init.rs
+++ /dev/null
@@ -1,59 +0,0 @@
-use std::ffi::c_int;
-use std::ptr::null_mut;
-
-use crate::util::is_main_thread;
-use crate::{get_glfw_error, Error};
-
-/// GLFW 3.x.x is supported
-static SUPPORTED_GLFW_VERSION_MAJOR: c_int = 3;
-
-/// Initializes GLFW and returns a initialization token.
-///
-/// # Errors
-/// Will return `Err` if
-/// - The current thread is not the main thread
-/// - A GLFW error occurs
-pub fn initialize() -> Result<Glfw, Error>
-{
- if !is_main_thread() {
- return Err(Error::NotInMainThread);
- }
-
- let mut major: c_int = 0;
-
- unsafe { crate::ffi::glfwGetVersion(&mut major, null_mut(), null_mut()) };
-
- if major != SUPPORTED_GLFW_VERSION_MAJOR {
- return Err(Error::UnsupportedVersion);
- }
-
- // SAFETY: The current thread is the main thread
- let success = unsafe { crate::ffi::glfwInit() };
-
- if success == crate::ffi::GLFW_FALSE {
- get_glfw_error()?;
- }
-
- Ok(Glfw { _priv: &() })
-}
-
-/// GLFW initialization token.
-#[derive(Debug)]
-pub struct Glfw
-{
- /// This field has two purposes
- /// - To make the struct not constructable without calling [`initialize`].
- /// - To make the struct `!Send` and `!Sync`.
- _priv: *const (),
-}
-
-impl Drop for Glfw
-{
- fn drop(&mut self)
- {
- // SAFETY: The current thread cannot be any other thread than the main thread
- // since the initialize function checks it and the GLFW initialization token is
- // neither Send or Sync
- unsafe { crate::ffi::glfwTerminate() };
- }
-}