Merge pull request #749 from bjz/update-gl_generator

Update gl_generator to v0.5
This commit is contained in:
tomaka 2016-03-24 07:31:47 +01:00
commit 261a3ef6b5
2 changed files with 102 additions and 143 deletions

View file

@ -16,8 +16,7 @@ libc = "0.2"
shared_library = "0.1.0"
[build-dependencies]
gl_generator = "0.4"
khronos_api = "1.0"
gl_generator = "0.5"
[target.arm-linux-androideabi.dependencies.android_glue]
version = "0.1"

242
build.rs
View file

@ -1,6 +1,6 @@
extern crate gl_generator;
extern crate khronos_api;
use gl_generator::{Registry, Api, Profile, Fallbacks};
use std::env;
use std::fs::File;
use std::path::PathBuf;
@ -13,175 +13,135 @@ fn main() {
if target.contains("windows") {
let mut file = File::create(&dest.join("wgl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StaticGenerator,
gl_generator::registry::Ns::Wgl,
gl_generator::Fallbacks::All,
khronos_api::WGL_XML, vec![],
"1.0", "core", &mut file).unwrap();
Registry::new(Api::Wgl, (1, 0), Profile::Core, Fallbacks::All, [])
.write_bindings(gl_generator::StaticGenerator, &mut file)
.unwrap();
let mut file = File::create(&dest.join("wgl_extra_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator,
gl_generator::registry::Ns::Wgl,
gl_generator::Fallbacks::All,
khronos_api::WGL_XML,
vec![
"WGL_ARB_create_context".to_string(),
"WGL_ARB_create_context_profile".to_string(),
"WGL_ARB_create_context_robustness".to_string(),
"WGL_ARB_context_flush_control".to_string(),
"WGL_ARB_extensions_string".to_string(),
"WGL_ARB_framebuffer_sRGB".to_string(),
"WGL_ARB_multisample".to_string(),
"WGL_ARB_pixel_format".to_string(),
"WGL_ARB_pixel_format_float".to_string(),
"WGL_EXT_create_context_es2_profile".to_string(),
"WGL_EXT_extensions_string".to_string(),
"WGL_EXT_framebuffer_sRGB".to_string(),
"WGL_EXT_swap_control".to_string(),
],
"1.0", "core", &mut file).unwrap();
Registry::new(Api::Wgl, (1, 0), Profile::Core, Fallbacks::All, [
"WGL_ARB_create_context",
"WGL_ARB_create_context_profile",
"WGL_ARB_create_context_robustness",
"WGL_ARB_context_flush_control",
"WGL_ARB_extensions_string",
"WGL_ARB_framebuffer_sRGB",
"WGL_ARB_multisample",
"WGL_ARB_pixel_format",
"WGL_ARB_pixel_format_float",
"WGL_EXT_create_context_es2_profile",
"WGL_EXT_extensions_string",
"WGL_EXT_framebuffer_sRGB",
"WGL_EXT_swap_control",
])
.write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator,
gl_generator::registry::Ns::Egl,
gl_generator::Fallbacks::All,
khronos_api::EGL_XML,
vec![
"EGL_KHR_create_context".to_string(),
"EGL_EXT_create_context_robustness".to_string(),
"EGL_KHR_create_context_no_error".to_string(),
"EGL_KHR_platform_x11".to_string(),
"EGL_KHR_platform_android".to_string(),
"EGL_KHR_platform_wayland".to_string(),
"EGL_KHR_platform_gbm".to_string(),
"EGL_EXT_platform_base".to_string(),
"EGL_EXT_platform_x11".to_string(),
"EGL_MESA_platform_gbm".to_string(),
"EGL_EXT_platform_wayland".to_string(),
"EGL_EXT_platform_device".to_string(),
],
"1.5", "core", &mut file).unwrap();
Registry::new(Api::Egl, (1, 5), Profile::Core, Fallbacks::All, [
"EGL_KHR_create_context",
"EGL_EXT_create_context_robustness",
"EGL_KHR_create_context_no_error",
"EGL_KHR_platform_x11",
"EGL_KHR_platform_android",
"EGL_KHR_platform_wayland",
"EGL_KHR_platform_gbm",
"EGL_EXT_platform_base",
"EGL_EXT_platform_x11",
"EGL_MESA_platform_gbm",
"EGL_EXT_platform_wayland",
"EGL_EXT_platform_device",
])
.write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
}
if target.contains("linux") || target.contains("dragonfly") || target.contains("freebsd") || target.contains("openbsd") {
let mut file = File::create(&dest.join("glx_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator,
gl_generator::registry::Ns::Glx,
gl_generator::Fallbacks::All,
khronos_api::GLX_XML, vec![],
"1.4", "core", &mut file).unwrap();
Registry::new(Api::Glx, (1, 4), Profile::Core, Fallbacks::All, [])
.write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
let mut file = File::create(&dest.join("glx_extra_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator,
gl_generator::registry::Ns::Glx,
gl_generator::Fallbacks::All,
khronos_api::GLX_XML,
vec![
"GLX_ARB_create_context".to_string(),
"GLX_ARB_create_context_profile".to_string(),
"GLX_ARB_create_context_robustness".to_string(),
"GLX_ARB_context_flush_control".to_string(),
"GLX_ARB_fbconfig_float".to_string(),
"GLX_ARB_framebuffer_sRGB".to_string(),
"GLX_EXT_framebuffer_sRGB".to_string(),
"GLX_ARB_multisample".to_string(),
"GLX_EXT_swap_control".to_string(),
"GLX_SGI_swap_control".to_string()
],
"1.4", "core", &mut file).unwrap();
Registry::new(Api::Glx, (1, 4), Profile::Core, Fallbacks::All, [
"GLX_ARB_create_context",
"GLX_ARB_create_context_profile",
"GLX_ARB_create_context_robustness",
"GLX_ARB_context_flush_control",
"GLX_ARB_fbconfig_float",
"GLX_ARB_framebuffer_sRGB",
"GLX_EXT_framebuffer_sRGB",
"GLX_ARB_multisample",
"GLX_EXT_swap_control",
"GLX_SGI_swap_control"
])
.write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator,
gl_generator::registry::Ns::Egl,
gl_generator::Fallbacks::All,
khronos_api::EGL_XML,
vec![
"EGL_KHR_create_context".to_string(),
"EGL_EXT_create_context_robustness".to_string(),
"EGL_KHR_create_context_no_error".to_string(),
"EGL_KHR_platform_x11".to_string(),
"EGL_KHR_platform_android".to_string(),
"EGL_KHR_platform_wayland".to_string(),
"EGL_KHR_platform_gbm".to_string(),
"EGL_EXT_platform_base".to_string(),
"EGL_EXT_platform_x11".to_string(),
"EGL_MESA_platform_gbm".to_string(),
"EGL_EXT_platform_wayland".to_string(),
"EGL_EXT_platform_device".to_string(),
],
"1.5", "core", &mut file).unwrap();
Registry::new(Api::Egl, (1, 5), Profile::Core, Fallbacks::All, [
"EGL_KHR_create_context",
"EGL_EXT_create_context_robustness",
"EGL_KHR_create_context_no_error",
"EGL_KHR_platform_x11",
"EGL_KHR_platform_android",
"EGL_KHR_platform_wayland",
"EGL_KHR_platform_gbm",
"EGL_EXT_platform_base",
"EGL_EXT_platform_x11",
"EGL_MESA_platform_gbm",
"EGL_EXT_platform_wayland",
"EGL_EXT_platform_device",
])
.write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
}
if target.contains("android") {
let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StaticStructGenerator,
gl_generator::registry::Ns::Egl,
gl_generator::Fallbacks::All,
khronos_api::EGL_XML,
vec![
"EGL_KHR_create_context".to_string(),
"EGL_EXT_create_context_robustness".to_string(),
"EGL_KHR_create_context_no_error".to_string(),
"EGL_KHR_platform_x11".to_string(),
"EGL_KHR_platform_android".to_string(),
"EGL_KHR_platform_wayland".to_string(),
"EGL_KHR_platform_gbm".to_string(),
"EGL_EXT_platform_base".to_string(),
"EGL_EXT_platform_x11".to_string(),
"EGL_MESA_platform_gbm".to_string(),
"EGL_EXT_platform_wayland".to_string(),
"EGL_EXT_platform_device".to_string(),
],
"1.5", "core", &mut file).unwrap();
Registry::new(Api::Egl, (1, 5), Profile::Core, Fallbacks::All, [
"EGL_KHR_create_context",
"EGL_EXT_create_context_robustness",
"EGL_KHR_create_context_no_error",
"EGL_KHR_platform_x11",
"EGL_KHR_platform_android",
"EGL_KHR_platform_wayland",
"EGL_KHR_platform_gbm",
"EGL_EXT_platform_base",
"EGL_EXT_platform_x11",
"EGL_MESA_platform_gbm",
"EGL_EXT_platform_wayland",
"EGL_EXT_platform_device",
])
.write_bindings(gl_generator::StaticStructGenerator, &mut file).unwrap();
}
if target.contains("ios") {
let mut file = File::create(&dest.join("egl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StaticStructGenerator,
gl_generator::registry::Ns::Egl,
gl_generator::Fallbacks::All,
khronos_api::EGL_XML,
vec![
"EGL_KHR_create_context".to_string(),
"EGL_EXT_create_context_robustness".to_string(),
"EGL_KHR_create_context_no_error".to_string(),
"EGL_KHR_platform_x11".to_string(),
"EGL_KHR_platform_android".to_string(),
"EGL_KHR_platform_wayland".to_string(),
"EGL_KHR_platform_gbm".to_string(),
"EGL_EXT_platform_base".to_string(),
"EGL_EXT_platform_x11".to_string(),
"EGL_MESA_platform_gbm".to_string(),
"EGL_EXT_platform_wayland".to_string(),
"EGL_EXT_platform_device".to_string(),
],
"1.5", "core", &mut file).unwrap();
Registry::new(Api::Egl, (1, 5), Profile::Core, Fallbacks::All, [
"EGL_KHR_create_context",
"EGL_EXT_create_context_robustness",
"EGL_KHR_create_context_no_error",
"EGL_KHR_platform_x11",
"EGL_KHR_platform_android",
"EGL_KHR_platform_wayland",
"EGL_KHR_platform_gbm",
"EGL_EXT_platform_base",
"EGL_EXT_platform_x11",
"EGL_MESA_platform_gbm",
"EGL_EXT_platform_wayland",
"EGL_EXT_platform_device",
])
.write_bindings(gl_generator::StaticStructGenerator, &mut file).unwrap();
let mut file = File::create(&dest.join("gles2_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StaticStructGenerator,
gl_generator::registry::Ns::Gles2,
gl_generator::Fallbacks::None,
khronos_api::GL_XML,
vec![],
"2.0", "core", &mut file).unwrap();
Registry::new(Api::Gles2, (2, 0), Profile::Core, Fallbacks::None, [])
.write_bindings(gl_generator::StaticStructGenerator, &mut file).unwrap();
}
if target.contains("darwin") {
let mut file = File::create(&dest.join("gl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::GlobalGenerator,
gl_generator::registry::Ns::Gl,
gl_generator::Fallbacks::All,
khronos_api::GL_XML,
vec!["GL_EXT_framebuffer_object".to_string()],
"3.2", "core", &mut file).unwrap();
Registry::new(Api::Gl, (3, 2), Profile::Core, Fallbacks::All, ["GL_EXT_framebuffer_object"])
.write_bindings(gl_generator::GlobalGenerator, &mut file).unwrap();
}
// TODO: only build the bindings below if we run tests/examples
let mut file = File::create(&dest.join("test_gl_bindings.rs")).unwrap();
gl_generator::generate_bindings(gl_generator::StructGenerator,
gl_generator::registry::Ns::Gles2,
gl_generator::Fallbacks::All,
khronos_api::GL_XML, vec![],
"3.0", "core", &mut file).unwrap();
Registry::new(Api::Gles2, (3, 0), Profile::Core, Fallbacks::All, [])
.write_bindings(gl_generator::StructGenerator, &mut file).unwrap();
}