Skip to content

Commit 1cd256c

Browse files
authored
Merge pull request #518 from kvark/api-update
Update khronos APIs to the latest, except for webgl
2 parents 51fb523 + 5b2ac3a commit 1cd256c

File tree

8 files changed

+23
-8
lines changed

8 files changed

+23
-8
lines changed

gl_generator/Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "gl_generator"
3-
version = "0.14.0"
3+
version = "0.14.1"
44
authors = [
55
"Brendan Zabarauskas <[email protected]>",
66
"Corey Richardson",
@@ -23,6 +23,6 @@ path = "lib.rs"
2323
unstable_generator_utils = []
2424

2525
[dependencies]
26-
khronos_api = { version = "3.1.0", path = "../khronos_api" }
26+
khronos_api = { version = "3.2.0", path = "../khronos_api" }
2727
log = "0.4"
2828
xml-rs = "0.8"

gl_generator/registry/mod.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ use Generator;
2525

2626
mod parse;
2727

28+
const BYTE_ORDER_MARK: &'static [u8] = &[0xef, 0xbb, 0xbf];
29+
2830
#[derive(Copy, Clone, Debug, PartialEq, Eq)]
2931
pub enum Api {
3032
Gl,
@@ -145,13 +147,19 @@ impl Registry {
145147
profile,
146148
};
147149

148-
let src = match api {
150+
let src_raw = match api {
149151
Api::Gl | Api::GlCore | Api::Gles1 | Api::Gles2 | Api::Glsc2 => khronos_api::GL_XML,
150152
Api::Glx => khronos_api::GLX_XML,
151153
Api::Wgl => khronos_api::WGL_XML,
152154
Api::Egl => khronos_api::EGL_XML,
153155
};
154156

157+
let src = if &src_raw[..BYTE_ORDER_MARK.len()] == BYTE_ORDER_MARK {
158+
&src_raw[BYTE_ORDER_MARK.len()..]
159+
} else {
160+
src_raw
161+
};
162+
155163
let mut registry = parse::from_xml(src, &filter, true);
156164
if filter.extensions.iter().any(|e| e.starts_with("GL_ANGLE_")) {
157165
registry += parse::from_xml(khronos_api::GL_ANGLE_EXT_XML, &filter, false);

gl_generator/registry/parse.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1077,6 +1077,10 @@ pub fn to_rust_ty<T: AsRef<str>>(ty: T) -> Cow<'static, str> {
10771077
"EGLOutputPortEXT *" => "*mut types::EGLOutputPortEXT",
10781078
"EGLuint64KHR *" => "*mut types::EGLuint64KHR",
10791079
"const struct AHardwareBuffer *" => "*const __gl_imports::raw::c_void", // humm
1080+
"char *" => "*const __gl_imports::raw::c_char",
1081+
"struct wl_buffer *" => "*const __gl_imports::raw::c_void",
1082+
"struct wl_display *" => "*const __gl_imports::raw::c_void",
1083+
"struct wl_resource *" => "*const __gl_imports::raw::c_void",
10801084

10811085
"GLeglClientBufferEXT" => "types::GLeglClientBufferEXT",
10821086
"GLVULKANPROCNV" => "types::GLVULKANPROCNV",

khronos_api/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "khronos_api"
3-
version = "3.1.0"
3+
version = "3.2.0"
44
authors = [
55
"Brendan Zabarauskas <[email protected]>",
66
"Corey Richardson",

khronos_api/api

Submodule api updated 554 files

khronos_api/api_angle

Submodule api_angle updated 2398 files

webgl_generator/utils.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,5 +77,8 @@ pub fn camel(name: &str) -> String {
7777
pub fn parse_defs(src: &[u8]) -> Vec<ast::Definition> {
7878
let src = str::from_utf8(src).expect("IDL contained invalid UTF-8");
7979

80-
webidl::parse_string(src).expect("Failed to parse IDL")
80+
match webidl::parse_string(src) {
81+
Ok(defs) => defs,
82+
Err(error) => panic!("Failed to parse IDL:\n{}\nError: {:?}", src, error),
83+
}
8184
}

0 commit comments

Comments
 (0)