From 89f6c6dbf0b88654b8b23ef5df9998e3d2d4c6c8 Mon Sep 17 00:00:00 2001 From: Simon Sapin Date: Mon, 25 Jun 2018 21:14:19 +0200 Subject: [PATCH] egl-configs: get the number of configs --- support/android/egl-configs/src/main.rs | 34 ++++++++++++++++++++++--- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/support/android/egl-configs/src/main.rs b/support/android/egl-configs/src/main.rs index d04fc204b1c..d091a28d606 100644 --- a/support/android/egl-configs/src/main.rs +++ b/support/android/egl-configs/src/main.rs @@ -1,5 +1,8 @@ -mod ffi; use ffi::*; +use ffi::types::*; +use std::ptr::null_mut; + +mod ffi; fn main() { unsafe { @@ -7,6 +10,31 @@ fn main() { } } -unsafe fn run() { - let _display = GetDisplay(DEFAULT_DISPLAY as *mut _); +macro_rules! check { + ($name: ident ( $($arg: expr),* )) => { + check($name( $($arg),* ), stringify!($name)) + } +} + +unsafe fn run() { + let display = GetDisplay(DEFAULT_DISPLAY as *mut _); + assert!(!display.is_null()); + + check!(Initialize(display, null_mut(), null_mut())); + + let mut num_config = -1; + check!(GetConfigs(display, null_mut(), 0, &mut num_config)); + println!("Got {} configs", num_config); +} + +unsafe fn check(result: EGLBoolean, function_name: &str) { + check_error(); + assert_eq!(result, TRUE, "{} failed", function_name); +} + +unsafe fn check_error() { + let status = GetError(); + if status != SUCCESS as i32 { + println!("Error: 0x{:x}", status); + } }