summary refs log tree commit diff
path: root/gpu_buffer/src
diff options
context:
space:
mode:
Diffstat (limited to 'gpu_buffer/src')
-rw-r--r--gpu_buffer/src/lib.rs11
1 files changed, 10 insertions, 1 deletions
diff --git a/gpu_buffer/src/lib.rs b/gpu_buffer/src/lib.rs
index 16aae50..53fca92 100644
--- a/gpu_buffer/src/lib.rs
+++ b/gpu_buffer/src/lib.rs
@@ -35,10 +35,11 @@ mod raw;
 pub mod rendernode;
 
 use std::cmp::min;
+use std::ffi::CStr;
 use std::fmt::{self, Display};
 use std::fs::File;
 use std::isize;
-use std::os::raw::c_void;
+use std::os::raw::{c_char, c_void};
 use std::os::unix::io::{AsRawFd, FromRawFd, RawFd};
 use std::ptr::null_mut;
 use std::rc::Rc;
@@ -379,6 +380,14 @@ impl Device {
         }
     }
 
+    /// Copies and returns name of GBM backend.
+    pub fn get_backend_name(&self) -> String {
+        let backend_name: *const c_char = unsafe { gbm_device_get_backend_name(self.0.gbm) };
+        let c_str: &CStr = unsafe { CStr::from_ptr(backend_name) };
+        let str_slice: &str = c_str.to_str().unwrap_or("");
+        str_slice.to_owned()
+    }
+
     /// Creates a new buffer with the given metadata.
     pub fn create_buffer(
         &self,