From 7cbc4472ae2b91022f3001886074deff79c44a39 Mon Sep 17 00:00:00 2001 From: Siddharth Date: Fri, 18 Jul 2014 23:14:21 +0530 Subject: [PATCH 1/2] updated to rust nightly on Fri, 18 July --- cgl.rs | 10 ++-- gl2.rs | 181 +++++++++++++++++++++++++++++---------------------------- glx.rs | 34 +++++------ 3 files changed, 114 insertions(+), 111 deletions(-) diff --git a/cgl.rs b/cgl.rs index f5bc2aa..23101e2 100644 --- a/cgl.rs +++ b/cgl.rs @@ -14,11 +14,11 @@ use gl2::{GLenum, GLint, GLsizei, GLuint}; use libc::{c_void, c_int}; -pub type CGLContextObj = *c_void; +pub type CGLContextObj = *const c_void; pub type CGLError = c_int; pub type CGLPixelFormatAttribute = c_int; -pub type CGLPixelFormatObj = *c_void; -pub type IOSurfaceRef = *c_void; +pub type CGLPixelFormatObj = *const c_void; +pub type IOSurfaceRef = *const c_void; pub static kCGLNoError: CGLError = 0; @@ -112,7 +112,7 @@ extern { // OpenGL.h // Pixel format functions - pub fn CGLChoosePixelFormat(attribs: *CGLPixelFormatAttribute, + pub fn CGLChoosePixelFormat(attribs: *const CGLPixelFormatAttribute, pix: *mut CGLPixelFormatObj, npix: *mut GLint) -> CGLError; pub fn CGLDescribePixelFormat(pix: CGLPixelFormatObj, @@ -122,7 +122,7 @@ extern { pub fn CGLDestroyPixelFormat(pix: CGLPixelFormatObj); // Context functions - pub fn CGLCreateContext(pix: CGLPixelFormatObj, share: CGLContextObj, ctx: *CGLContextObj) -> + pub fn CGLCreateContext(pix: CGLPixelFormatObj, share: CGLContextObj, ctx: *const CGLContextObj) -> CGLError; pub fn CGLGetPixelFormat(ctx: CGLContextObj) -> CGLPixelFormatObj; diff --git a/gl2.rs b/gl2.rs index e367913..8cbea80 100644 --- a/gl2.rs +++ b/gl2.rs @@ -10,9 +10,12 @@ /* automatically generated by rust-bindgen */ use libc::{c_uint, c_uchar, c_void, c_char, int8_t, c_short, c_int, uint8_t, c_ushort}; -use libc::{int32_t, intptr_t, ssize_t}; -use std::cast; -use std::cast::transmute; +use libc::{int32_t,intptr_t, ssize_t}; +use std::string::String; +use std::vec::Vec; + +use std::mem; +use std::mem::transmute; use std::cmp; use std::ptr; use std::str::from_utf8; @@ -361,7 +364,7 @@ pub type GLintptr = intptr_t; pub type GLsizeiptr = ssize_t; // gl2ext -pub type GLeglImageOES = *c_void; +pub type GLeglImageOES = *const c_void; // Exposed Rust API using Rust naming conventions @@ -447,7 +450,7 @@ pub fn buffer_data(target: GLenum, data: &[T], usage: GLenum) { unsafe { glBufferData(target, (data.len() * size_of::()) as GLsizeiptr, - data.as_ptr() as *GLvoid, + data.as_ptr() as *const GLvoid, usage); } } @@ -459,7 +462,7 @@ pub fn buffer_data(target: GLenum, data: &[f32], usage: GLenum) { unsafe { glBufferData(target, (data.len() * size_of::()) as GLsizeiptr, - data.as_ptr() as *GLvoid, + data.as_ptr() as *const GLvoid, usage); } } @@ -472,7 +475,7 @@ pub fn buffer_sub_data(target: GLenum, element_offset_index: uint, data: &[T] glBufferSubData(target, (element_offset_index * size) as GLintptr, (data.len() * size) as GLsizeiptr, - data.as_ptr() as *GLvoid); + data.as_ptr() as *const GLvoid); } } @@ -587,7 +590,7 @@ pub fn draw_elements(mode: GLenum, count: GLsizei, element_type: GLenum, indices }, element_type, match indices { - Some(ref i) => cast::transmute(&i[0]), + Some(ref i) => mem::transmute(&i[0]), None => ptr::null(), }) } @@ -612,9 +615,9 @@ pub fn draw_elements_instanced(mode: GLenum, count: GLsizei, element_type: GLenu }, element_type, match indices { - Some(ref i) => cast::transmute(&i[0]), + Some(ref i) => mem::transmute(&i[0]), None => ptr::null(), - }, + }, primcount); } } @@ -708,7 +711,7 @@ pub fn gen_vertex_arrays(n: GLsizei) -> Vec { pub fn get_attrib_location(program: GLuint, name: &str) -> c_int { unsafe { name.to_c_str().with_ref(|name_bytes| { - glGetAttribLocation(program, name_bytes as *GLchar) + glGetAttribLocation(program, name_bytes as *const GLchar) }) } } @@ -725,16 +728,16 @@ pub fn get_integer_v(pname: GLenum, result: &mut [GLint]) { } } -pub fn get_program_info_log(program: GLuint) -> ~str { +pub fn get_program_info_log(program: GLuint) -> String { unsafe { let mut result = Vec::from_elem(1024u, 0u8); let result_len: GLsizei = 0 as GLsizei; glGetProgramInfoLog(program, 1024 as GLsizei, &result_len, - result.as_ptr() as *GLchar); - result.truncate(if result_len > 0 {result_len-1} else {0} as uint); - from_utf8(result.as_slice()).unwrap().to_owned() + result.as_ptr() as *const GLchar); + result.truncate(if result_len > 0 {(result_len - 1) as uint} else {0} as uint); + String::from_str(from_utf8(result.as_slice()).unwrap()) } } @@ -746,26 +749,26 @@ pub fn get_program_iv(program: GLuint, pname: GLenum) -> GLint { } } -pub fn get_shader_info_log(shader: GLuint) -> ~str { +pub fn get_shader_info_log(shader: GLuint) -> String { unsafe { let mut result = Vec::from_elem(1024u, 0u8); let result_len: GLsizei = 0 as GLsizei; glGetShaderInfoLog(shader, 1024 as GLsizei, &result_len, - result.as_ptr() as *GLchar); - result.truncate(if result_len > 0 {result_len-1} else {0} as uint); + result.as_ptr() as *const GLchar); + result.truncate(if result_len > 0 {(result_len-1) as uint} else {0} as uint); from_utf8(result.as_slice()).unwrap().to_owned() } } -pub fn get_string(which: GLenum) -> ~str { +pub fn get_string(which: GLenum) -> String { unsafe { let llstr = glGetString(which); if !llstr.is_null() { - return from_c_str(llstr as *c_char); + return from_c_str(llstr as *const c_char); } else { - return "".to_owned(); + return String::new(); } } } @@ -781,7 +784,7 @@ pub fn get_shader_iv(shader: GLuint, pname: GLenum) -> GLint { pub fn get_uniform_location(program: GLuint, name: &str) -> c_int { unsafe { name.to_c_str().with_ref(|name_bytes| { - glGetUniformLocation(program, name_bytes as *GLchar) + glGetUniformLocation(program, name_bytes as *const GLchar) }) } } @@ -885,11 +888,11 @@ pub fn scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei) { } pub fn shader_source(shader: GLuint, strings: &[&[u8]]) { - let pointers: ~[*u8] = strings.iter().map(|string| (*string).as_ptr()).collect(); - let lengths: ~[GLint] = strings.iter().map(|string| string.len() as GLint).collect(); + let pointers: Vec<*const u8> = strings.iter().map(|string| (*string).as_ptr()).collect(); + let lengths: Vec = strings.iter().map(|string| string.len() as GLint).collect(); unsafe { glShaderSource(shader, pointers.len() as GLsizei, - pointers.as_ptr() as **GLchar, lengths.as_ptr()); + pointers.as_ptr() as *const *const GLchar, lengths.as_ptr()); } drop(lengths); drop(pointers); @@ -990,7 +993,7 @@ pub fn uniform_matrix_4fv(location: GLint, transpose: bool, value: &[f32]) { glUniformMatrix4fv(location, 1 as GLsizei, transpose as GLboolean, - cast::transmute(&value[0])); + mem::transmute(&value[0])); } } @@ -1100,7 +1103,7 @@ pub fn egl_image_target_renderbuffer_storage_oes(target: GLenum, image: GLeglIma #[cfg(target_os="macos")] pub mod apple { use super::{GLenum, GLsizei}; - use std::cast::transmute; + use std::mem::transmute; pub unsafe fn texture_range(target: GLenum, buffer: &[u8]) { super::glTextureRangeAPPLE(target, buffer.len() as GLsizei, transmute(buffer.as_ptr())); @@ -1115,7 +1118,7 @@ pub fn glActiveTexture(texture: GLenum); pub fn glAttachShader(program: GLuint, shader: GLuint); -pub fn glBindAttribLocation(program: GLuint, index: GLuint, name: *GLchar); +pub fn glBindAttribLocation(program: GLuint, index: GLuint, name: *const GLchar); pub fn glBindBuffer(target: GLenum, buffer: GLuint); @@ -1140,9 +1143,9 @@ pub fn glBlendFunc(sfactor: GLenum, dfactor: GLenum); pub fn glBlendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum); #[cfg(not(mac_10_6))] -pub fn glBufferData(target: GLenum, size: GLsizeiptr, data: *GLvoid, usage: GLenum); +pub fn glBufferData(target: GLenum, size: GLsizeiptr, data: *const GLvoid, usage: GLenum); -pub fn glBufferSubData(target: GLenum, offset: GLintptr, size: GLsizeiptr, data: *GLvoid); +pub fn glBufferSubData(target: GLenum, offset: GLintptr, size: GLsizeiptr, data: *const GLvoid); pub fn glCheckFramebufferStatus(target: GLenum) -> GLenum; @@ -1159,9 +1162,9 @@ pub fn glColorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLb pub fn glCompileShader(shader: GLuint); -pub fn glCompressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, data: *GLvoid); +pub fn glCompressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, data: *const GLvoid); -pub fn glCompressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, data: *GLvoid); +pub fn glCompressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, data: *const GLvoid); pub fn glCopyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint); @@ -1173,17 +1176,17 @@ pub fn glCreateShader(_type: GLenum) -> GLuint; pub fn glCullFace(mode: GLenum); -pub fn glDeleteBuffers(n: GLsizei, buffers: *GLuint); +pub fn glDeleteBuffers(n: GLsizei, buffers: *const GLuint); -pub fn glDeleteFramebuffers(n: GLsizei, framebuffers: *GLuint); +pub fn glDeleteFramebuffers(n: GLsizei, framebuffers: *const GLuint); pub fn glDeleteProgram(program: GLuint); -pub fn glDeleteRenderbuffers(n: GLsizei, renderbuffers: *GLuint); +pub fn glDeleteRenderbuffers(n: GLsizei, renderbuffers: *const GLuint); pub fn glDeleteShader(shader: GLuint); -pub fn glDeleteTextures(n: GLsizei, textures: *GLuint); +pub fn glDeleteTextures(n: GLsizei, textures: *const GLuint); pub fn glDepthFunc(func: GLenum); @@ -1200,7 +1203,7 @@ pub fn glDisableVertexAttribArray(index: GLuint); pub fn glDrawArrays(mode: GLenum, first: GLint, count: GLsizei); -pub fn glDrawElements(mode: GLenum, count: GLsizei, _type: GLenum, indices: *GLvoid); +pub fn glDrawElements(mode: GLenum, count: GLsizei, _type: GLenum, indices: *const GLvoid); #[cfg(not(target_os="android"), not(target_os="macos"))] #[cfg(not(target_os="android"), not(mac_10_6))] @@ -1208,7 +1211,7 @@ pub fn glDrawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, primcou #[cfg(not(target_os="android"), not(target_os="macos"))] #[cfg(not(target_os="android"), not(mac_10_6))] -pub fn glDrawElementsInstanced(mode: GLenum, count: GLsizei, _type: GLenum, indices: *GLvoid, primcount: GLsizei); +pub fn glDrawElementsInstanced(mode: GLenum, count: GLsizei, _type: GLenum, indices: *const GLvoid, primcount: GLsizei); pub fn glEnable(cap: GLenum); @@ -1224,72 +1227,72 @@ pub fn glFramebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLe pub fn glFrontFace(mode: GLenum); -pub fn glGenBuffers(n: GLsizei, buffers: *GLuint); +pub fn glGenBuffers(n: GLsizei, buffers: *const GLuint); pub fn glGenerateMipmap(target: GLenum); -pub fn glGenFramebuffers(n: GLsizei, framebuffers: *GLuint); +pub fn glGenFramebuffers(n: GLsizei, framebuffers: *const GLuint); -pub fn glGenRenderbuffers(n: GLsizei, renderbuffers: *GLuint); +pub fn glGenRenderbuffers(n: GLsizei, renderbuffers: *const GLuint); -pub fn glGenTextures(n: GLsizei, textures: *GLuint); +pub fn glGenTextures(n: GLsizei, textures: *const GLuint); #[cfg(not(target_os="android"), not(target_os="macos"))] #[cfg(not(target_os="android"), not(mac_10_6))] -pub fn glGenVertexArrays(n: GLsizei, arrays: *GLuint); +pub fn glGenVertexArrays(n: GLsizei, arrays: *const GLuint); -pub fn glGetActiveAttrib(program: GLuint, index: GLuint, bufsize: GLsizei, length: *GLsizei, size: *GLint, _type: *GLenum, name: *GLchar); +pub fn glGetActiveAttrib(program: GLuint, index: GLuint, bufsize: GLsizei, length: *const GLsizei, size: *const GLint, _type: *const GLenum, name: *const GLchar); -pub fn glGetActiveUniform(program: GLuint, index: GLuint, bufsize: GLsizei, length: *GLsizei, size: *GLint, _type: *GLenum, name: *GLchar); +pub fn glGetActiveUniform(program: GLuint, index: GLuint, bufsize: GLsizei, length: *const GLsizei, size: *const GLint, _type: *const GLenum, name: *const GLchar); -pub fn glGetAttachedShaders(program: GLuint, maxcount: GLsizei, count: *GLsizei, shaders: *GLuint); +pub fn glGetAttachedShaders(program: GLuint, maxcount: GLsizei, count: *const GLsizei, shaders: *const GLuint); -pub fn glGetAttribLocation(program: GLuint, name: *GLchar) -> c_int; +pub fn glGetAttribLocation(program: GLuint, name: *const GLchar) -> c_int; -pub fn glGetBooleanv(pname: GLenum, params: *GLboolean); +pub fn glGetBooleanv(pname: GLenum, params: *const GLboolean); -pub fn glGetBufferParameteriv(target: GLenum, pname: GLenum, params: *GLint); +pub fn glGetBufferParameteriv(target: GLenum, pname: GLenum, params: *const GLint); pub fn glGetError() -> GLenum; -pub fn glGetFloatv(pname: GLenum, params: *GLfloat); +pub fn glGetFloatv(pname: GLenum, params: *const GLfloat); -pub fn glGetFramebufferAttachmentParameteriv(target: GLenum, attachment: GLenum, pname: GLenum, params: *GLint); +pub fn glGetFramebufferAttachmentParameteriv(target: GLenum, attachment: GLenum, pname: GLenum, params: *const GLint); -pub fn glGetIntegerv(pname: GLenum, params: *GLint); +pub fn glGetIntegerv(pname: GLenum, params: *const GLint); -pub fn glGetProgramiv(program: GLuint, pname: GLenum, params: *GLint); +pub fn glGetProgramiv(program: GLuint, pname: GLenum, params: *const GLint); -pub fn glGetProgramInfoLog(program: GLuint, bufsize: GLsizei, length: *GLsizei, infolog: *GLchar); +pub fn glGetProgramInfoLog(program: GLuint, bufsize: GLsizei, length: *const GLsizei, infolog: *const GLchar); -pub fn glGetRenderbufferParameteriv(target: GLenum, pname: GLenum, params: *GLint); +pub fn glGetRenderbufferParameteriv(target: GLenum, pname: GLenum, params: *const GLint); -pub fn glGetShaderiv(shader: GLuint, pname: GLenum, params: *GLint); +pub fn glGetShaderiv(shader: GLuint, pname: GLenum, params: *const GLint); -pub fn glGetShaderInfoLog(shader: GLuint, bufsize: GLsizei, length: *GLsizei, infolog: *GLchar); +pub fn glGetShaderInfoLog(shader: GLuint, bufsize: GLsizei, length: *const GLsizei, infolog: *const GLchar); // Unsupported on Mac: //fn glGetShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum, range: *GLint, precision: *GLint); -pub fn glGetShaderSource(shader: GLuint, bufsize: GLsizei, length: *GLsizei, source: *GLchar); +pub fn glGetShaderSource(shader: GLuint, bufsize: GLsizei, length: *const GLsizei, source: *const GLchar); -pub fn glGetString(name: GLenum) -> *GLubyte; +pub fn glGetString(name: GLenum) -> *const GLubyte; -pub fn glGetTexParameterfv(target: GLenum, pname: GLenum, params: *GLfloat); +pub fn glGetTexParameterfv(target: GLenum, pname: GLenum, params: *const GLfloat); -pub fn glGetTexParameteriv(target: GLenum, pname: GLenum, params: *GLint); +pub fn glGetTexParameteriv(target: GLenum, pname: GLenum, params: *const GLint); -pub fn glGetUniformfv(program: GLuint, location: GLint, params: *GLfloat); +pub fn glGetUniformfv(program: GLuint, location: GLint, params: *const GLfloat); -pub fn glGetUniformiv(program: GLuint, location: GLint, params: *GLint); +pub fn glGetUniformiv(program: GLuint, location: GLint, params: *const GLint); -pub fn glGetUniformLocation(program: GLuint, name: *GLchar) -> c_int; +pub fn glGetUniformLocation(program: GLuint, name: *const GLchar) -> c_int; -pub fn glGetVertexAttribfv(index: GLuint, pname: GLenum, params: *GLfloat); +pub fn glGetVertexAttribfv(index: GLuint, pname: GLenum, params: *const GLfloat); -pub fn glGetVertexAttribiv(index: GLuint, pname: GLenum, params: *GLint); +pub fn glGetVertexAttribiv(index: GLuint, pname: GLenum, params: *const GLint); -pub fn glGetVertexAttribPointerv(index: GLuint, pname: GLenum, pointer: **GLvoid); +pub fn glGetVertexAttribPointerv(index: GLuint, pname: GLenum, pointer: *const *const GLvoid); pub fn glHint(target: GLenum, mode: GLenum); @@ -1332,7 +1335,7 @@ pub fn glScissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei); // Unsupported on Mac: //fn glShaderBinary(n: GLsizei, shaders: *GLuint, binaryformat: GLenum, binary: *GLvoid, length: GLsizei); -pub fn glShaderSource(shader: GLuint, count: GLsizei, string: **GLchar, length: *GLint); +pub fn glShaderSource(shader: GLuint, count: GLsizei, string: *const *const GLchar, length: *const GLint); pub fn glStencilFunc(func: GLenum, reference: GLint, mask: GLuint); @@ -1346,55 +1349,55 @@ pub fn glStencilOp(_fail: GLenum, zfail: GLenum, zpass: GLenum); pub fn glStencilOpSeparate(face: GLenum, _fail: GLenum, zfail: GLenum, zpass: GLenum); -pub fn glTexImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, _type: GLenum, pixels: *GLvoid); +pub fn glTexImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, _type: GLenum, pixels: *const GLvoid); pub fn glTexParameterf(target: GLenum, pname: GLenum, param: GLfloat); -pub fn glTexParameterfv(target: GLenum, pname: GLenum, params: *GLfloat); +pub fn glTexParameterfv(target: GLenum, pname: GLenum, params: *const GLfloat); pub fn glTexParameteri(target: GLenum, pname: GLenum, param: GLint); -pub fn glTexParameteriv(target: GLenum, pname: GLenum, params: *GLint); +pub fn glTexParameteriv(target: GLenum, pname: GLenum, params: *const GLint); -pub fn glTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, _type: GLenum, pixels: *GLvoid); +pub fn glTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, _type: GLenum, pixels: *const GLvoid); pub fn glUniform1f(location: GLint, x: GLfloat); -pub fn glUniform1fv(location: GLint, count: GLsizei, v: *GLfloat); +pub fn glUniform1fv(location: GLint, count: GLsizei, v: *const GLfloat); pub fn glUniform1i(location: GLint, x: GLint); -pub fn glUniform1iv(location: GLint, count: GLsizei, v: *GLint); +pub fn glUniform1iv(location: GLint, count: GLsizei, v: *const GLint); pub fn glUniform2f(location: GLint, x: GLfloat, y: GLfloat); -pub fn glUniform2fv(location: GLint, count: GLsizei, v: *GLfloat); +pub fn glUniform2fv(location: GLint, count: GLsizei, v: *const GLfloat); pub fn glUniform2i(location: GLint, x: GLint, y: GLint); -pub fn glUniform2iv(location: GLint, count: GLsizei, v: *GLint); +pub fn glUniform2iv(location: GLint, count: GLsizei, v: *const GLint); pub fn glUniform3f(location: GLint, x: GLfloat, y: GLfloat, z: GLfloat); -pub fn glUniform3fv(location: GLint, count: GLsizei, v: *GLfloat); +pub fn glUniform3fv(location: GLint, count: GLsizei, v: *const GLfloat); pub fn glUniform3i(location: GLint, x: GLint, y: GLint, z: GLint); -pub fn glUniform3iv(location: GLint, count: GLsizei, v: *GLint); +pub fn glUniform3iv(location: GLint, count: GLsizei, v: *const GLint); pub fn glUniform4f(location: GLint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat); -pub fn glUniform4fv(location: GLint, count: GLsizei, v: *GLfloat); +pub fn glUniform4fv(location: GLint, count: GLsizei, v: *const GLfloat); pub fn glUniform4i(location: GLint, x: GLint, y: GLint, z: GLint, w: GLint); -pub fn glUniform4iv(location: GLint, count: GLsizei, v: *GLint); +pub fn glUniform4iv(location: GLint, count: GLsizei, v: *const GLint); -pub fn glUniformMatrix2fv(location: GLint, count: GLsizei, transpose: GLboolean, value: *GLfloat); +pub fn glUniformMatrix2fv(location: GLint, count: GLsizei, transpose: GLboolean, value: *const GLfloat); -pub fn glUniformMatrix3fv(location: GLint, count: GLsizei, transpose: GLboolean, value: *GLfloat); +pub fn glUniformMatrix3fv(location: GLint, count: GLsizei, transpose: GLboolean, value: *const GLfloat); -pub fn glUniformMatrix4fv(location: GLint, count: GLsizei, transpose: GLboolean, value: *GLfloat); +pub fn glUniformMatrix4fv(location: GLint, count: GLsizei, transpose: GLboolean, value: *const GLfloat); pub fn glUseProgram(program: GLuint); @@ -1402,21 +1405,21 @@ pub fn glValidateProgram(program: GLuint); pub fn glVertexAttrib1f(indx: GLuint, x: GLfloat); -pub fn glVertexAttrib1fv(indx: GLuint, values: *GLfloat); +pub fn glVertexAttrib1fv(indx: GLuint, values: *const GLfloat); pub fn glVertexAttrib2f(indx: GLuint, x: GLfloat, y: GLfloat); -pub fn glVertexAttrib2fv(indx: GLuint, values: *GLfloat); +pub fn glVertexAttrib2fv(indx: GLuint, values: *const GLfloat); pub fn glVertexAttrib3f(indx: GLuint, x: GLfloat, y: GLfloat, z: GLfloat); -pub fn glVertexAttrib3fv(indx: GLuint, values: *GLfloat); +pub fn glVertexAttrib3fv(indx: GLuint, values: *const GLfloat); pub fn glVertexAttrib4f(indx: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat); -pub fn glVertexAttrib4fv(indx: GLuint, values: *GLfloat); +pub fn glVertexAttrib4fv(indx: GLuint, values: *const GLfloat); -pub fn glVertexAttribPointer(indx: GLuint, size: GLint, _type: GLenum, normalized: GLboolean, stride: GLsizei, ptr: *GLvoid); +pub fn glVertexAttribPointer(indx: GLuint, size: GLint, _type: GLenum, normalized: GLboolean, stride: GLsizei, ptr: *const GLvoid); #[cfg(not(target_os="android"), not(target_os="macos"))] #[cfg(not(target_os="android"), not(mac_10_6), not(mac_10_7))] @@ -1434,7 +1437,7 @@ pub fn glEGLImageTargetRenderbufferStorageOES(target: GLenum, image: GLeglImageO #[cfg(target_os="macos")] extern { -pub fn glTextureRangeAPPLE(target: GLenum, length: GLsizei, pointer: *GLvoid); +pub fn glTextureRangeAPPLE(target: GLenum, length: GLsizei, pointer: *const GLvoid); } diff --git a/glx.rs b/glx.rs index 0194059..d80666c 100644 --- a/glx.rs +++ b/glx.rs @@ -23,7 +23,7 @@ pub struct __GLXFBConfig { opaque: (), } -pub type GLXFBConfig = *__GLXFBConfig; +pub type GLXFBConfig = *const __GLXFBConfig; pub type GLXPixmap = c_ulong; @@ -33,7 +33,7 @@ pub struct __XVisualInfo { opaque: (), } -pub type XVisualInfo = *__XVisualInfo; +pub type XVisualInfo = *const __XVisualInfo; // Constants @@ -95,44 +95,44 @@ pub static GLX_RGBA_BIT: c_int = 0x00000001; // Functions extern { - pub fn glXQueryVersion(dpy: *Display, major: *mut c_int, minor: *mut c_int) -> bool; + pub fn glXQueryVersion(dpy: *const Display, major: *mut c_int, minor: *mut c_int) -> bool; - pub fn glXGetProcAddress(procName: *c_char) -> extern "C" fn(); + pub fn glXGetProcAddress(procName: *const c_char) -> extern "C" fn(); - pub fn glXReleaseTexImageEXT(dpy: *Display, drawable: GLXDrawable, buffer: c_int); + pub fn glXReleaseTexImageEXT(dpy: *const Display, drawable: GLXDrawable, buffer: c_int); - pub fn glXChooseFBConfig(dpy: *Display, + pub fn glXChooseFBConfig(dpy: *const Display, screen: c_int, - attrib_list: *c_int, + attrib_list: *const c_int, n_elements: *mut c_int) - -> *GLXFBConfig; + -> *const GLXFBConfig; - pub fn glXChooseVisual(dpy: *Display, screen: c_int, attribList: *c_int) -> *XVisualInfo; + pub fn glXChooseVisual(dpy: *const Display, screen: c_int, attribList: *const c_int) -> *const XVisualInfo; // For GLX 1.3+ - pub fn glXCreatePixmap(dpy: *Display, config: GLXFBConfig, pixmap: Pixmap, attribList: *c_int) + pub fn glXCreatePixmap(dpy: *const Display, config: GLXFBConfig, pixmap: Pixmap, attribList: *const c_int) -> GLXPixmap; - pub fn glXDestroyPixmap(dpy: *Display, pixmap: GLXPixmap); + pub fn glXDestroyPixmap(dpy: *const Display, pixmap: GLXPixmap); // For GLX < 1.3. Use only to match behavior with other libraries (i.e. Skia) that // access GLX pixmaps using the visual instead of fbconfig. - pub fn glXCreateGLXPixmap(dpy: *Display, visual: *XVisualInfo, pixmap: Pixmap) -> GLXPixmap; + pub fn glXCreateGLXPixmap(dpy: *const Display, visual: *const XVisualInfo, pixmap: Pixmap) -> GLXPixmap; - pub fn glXDestroyGLXPixmap(dpy: *Display, pix: GLXPixmap); + pub fn glXDestroyGLXPixmap(dpy: *const Display, pix: GLXPixmap); - pub fn glXGetFBConfigAttrib(dpy: *Display, + pub fn glXGetFBConfigAttrib(dpy: *const Display, config: GLXFBConfig, attribute: c_int, value: *mut c_int) -> c_int; - pub fn glXGetFBConfigs(dpy: *Display, screen: c_int, nelements: *mut c_int) -> *GLXFBConfig; + pub fn glXGetFBConfigs(dpy: *const Display, screen: c_int, nelements: *mut c_int) -> *const GLXFBConfig; - pub fn glXGetVisualFromFBConfig(dpy: *Display, config: GLXFBConfig) -> *XVisualInfo; + pub fn glXGetVisualFromFBConfig(dpy: *const Display, config: GLXFBConfig) -> *const XVisualInfo; } -pub fn get_version(display: *Display) -> (int, int) { +pub fn get_version(display: *const Display) -> (int, int) { unsafe { let mut major = 0; let mut minor = 0; From 79aa81af799a8ca70139fa1c1500ade7f250f451 Mon Sep 17 00:00:00 2001 From: Siddharth Date: Sat, 19 Jul 2014 00:16:53 +0530 Subject: [PATCH 2/2] fixed warnings --- gl2.rs | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/gl2.rs b/gl2.rs index 8cbea80..65415f1 100644 --- a/gl2.rs +++ b/gl2.rs @@ -12,7 +12,6 @@ use libc::{c_uint, c_uchar, c_void, c_char, int8_t, c_short, c_int, uint8_t, c_ushort}; use libc::{int32_t,intptr_t, ssize_t}; use std::string::String; -use std::vec::Vec; use std::mem; use std::mem::transmute; @@ -382,9 +381,8 @@ pub fn attach_shader(program: GLuint, shader: GLuint) { pub fn bind_attrib_location(program: GLuint, index: GLuint, name: &str) { unsafe { - name.to_c_str().with_ref(|cstr| { - glBindAttribLocation(program, index, cstr); - }); + let cstr = name.to_c_str().as_ptr(); + glBindAttribLocation(program, index, cstr); } } @@ -710,9 +708,8 @@ pub fn gen_vertex_arrays(n: GLsizei) -> Vec { pub fn get_attrib_location(program: GLuint, name: &str) -> c_int { unsafe { - name.to_c_str().with_ref(|name_bytes| { - glGetAttribLocation(program, name_bytes as *const GLchar) - }) + let name_bytes = name.to_c_str().as_ptr(); + glGetAttribLocation(program, name_bytes as *const GLchar) } } @@ -758,7 +755,7 @@ pub fn get_shader_info_log(shader: GLuint) -> String { &result_len, result.as_ptr() as *const GLchar); result.truncate(if result_len > 0 {(result_len-1) as uint} else {0} as uint); - from_utf8(result.as_slice()).unwrap().to_owned() + from_utf8(result.as_slice()).unwrap().to_string() } } @@ -783,9 +780,8 @@ pub fn get_shader_iv(shader: GLuint, pname: GLenum) -> GLint { pub fn get_uniform_location(program: GLuint, name: &str) -> c_int { unsafe { - name.to_c_str().with_ref(|name_bytes| { - glGetUniformLocation(program, name_bytes as *const GLchar) - }) + let name_bytes = name.to_c_str().as_ptr(); + glGetUniformLocation(program, name_bytes as *const GLchar) } }