Skip to content

Commit 13a6d60

Browse files
committed
UI flow
1 parent 447ce91 commit 13a6d60

File tree

321 files changed

+19934
-11148
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

321 files changed

+19934
-11148
lines changed

lesson-01/src/main.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,11 @@ fn main() {
1313
'main: loop {
1414
for event in event_pump.poll_iter() {
1515
match event {
16-
sdl2::event::Event::Quit {..} => break 'main,
17-
_ => {},
16+
sdl2::event::Event::Quit { .. } => break 'main,
17+
_ => {}
1818
}
1919
}
2020

2121
// render window contents here
2222
}
23-
}
23+
}

lesson-02/src/main.rs

+6-5
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
extern crate sdl2;
21
extern crate gl;
2+
extern crate sdl2;
33

44
fn main() {
55
let sdl = sdl2::init().unwrap();
@@ -12,7 +12,8 @@ fn main() {
1212
.unwrap();
1313

1414
let _gl_context = window.gl_create_context().unwrap();
15-
let _gl = gl::load_with(|s| video_subsystem.gl_get_proc_address(s) as *const std::os::raw::c_void);
15+
let _gl =
16+
gl::load_with(|s| video_subsystem.gl_get_proc_address(s) as *const std::os::raw::c_void);
1617

1718
unsafe {
1819
gl::ClearColor(0.3, 0.3, 0.5, 1.0);
@@ -22,8 +23,8 @@ fn main() {
2223
'main: loop {
2324
for event in event_pump.poll_iter() {
2425
match event {
25-
sdl2::event::Event::Quit {..} => break 'main,
26-
_ => {},
26+
sdl2::event::Event::Quit { .. } => break 'main,
27+
_ => {}
2728
}
2829
}
2930

@@ -33,4 +34,4 @@ fn main() {
3334

3435
window.gl_swap_window();
3536
}
36-
}
37+
}

lesson-03/src/main.rs

+14-15
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
extern crate sdl2;
21
extern crate gl;
2+
extern crate sdl2;
33

44
pub mod render_gl;
55

@@ -20,34 +20,33 @@ fn main() {
2020
.unwrap();
2121

2222
let _gl_context = window.gl_create_context().unwrap();
23-
let _gl = gl::load_with(|s| video_subsystem.gl_get_proc_address(s) as *const std::os::raw::c_void);
23+
let _gl =
24+
gl::load_with(|s| video_subsystem.gl_get_proc_address(s) as *const std::os::raw::c_void);
2425

2526
unsafe {
2627
gl::Viewport(0, 0, 900, 700);
2728
gl::ClearColor(0.3, 0.3, 0.5, 1.0);
2829
}
2930

30-
use std::ffi::{CString};
31-
let vert_shader = render_gl::Shader::from_vert_source(
32-
&CString::new(include_str!("triangle.vert")).unwrap()
33-
).unwrap();
31+
use std::ffi::CString;
32+
let vert_shader =
33+
render_gl::Shader::from_vert_source(&CString::new(include_str!("triangle.vert")).unwrap())
34+
.unwrap();
3435

35-
let frag_shader = render_gl::Shader::from_frag_source(
36-
&CString::new(include_str!("triangle.frag")).unwrap()
37-
).unwrap();
36+
let frag_shader =
37+
render_gl::Shader::from_frag_source(&CString::new(include_str!("triangle.frag")).unwrap())
38+
.unwrap();
3839

39-
let shader_program = render_gl::Program::from_shaders(
40-
&[vert_shader, frag_shader]
41-
).unwrap();
40+
let shader_program = render_gl::Program::from_shaders(&[vert_shader, frag_shader]).unwrap();
4241

4342
shader_program.set_used();
4443

4544
let mut event_pump = sdl.event_pump().unwrap();
4645
'main: loop {
4746
for event in event_pump.poll_iter() {
4847
match event {
49-
sdl2::event::Event::Quit {..} => break 'main,
50-
_ => {},
48+
sdl2::event::Event::Quit { .. } => break 'main,
49+
_ => {}
5150
}
5251
}
5352

@@ -57,4 +56,4 @@ fn main() {
5756

5857
window.gl_swap_window();
5958
}
60-
}
59+
}

lesson-03/src/render_gl.rs

+15-15
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use gl;
22
use std;
3-
use std::ffi::{CString, CStr};
3+
use std::ffi::{CStr, CString};
44

55
pub struct Program {
66
id: gl::types::GLuint,
@@ -11,10 +11,14 @@ impl Program {
1111
let program_id = unsafe { gl::CreateProgram() };
1212

1313
for shader in shaders {
14-
unsafe { gl::AttachShader(program_id, shader.id()); }
14+
unsafe {
15+
gl::AttachShader(program_id, shader.id());
16+
}
1517
}
1618

17-
unsafe { gl::LinkProgram(program_id); }
19+
unsafe {
20+
gl::LinkProgram(program_id);
21+
}
1822

1923
let mut success: gl::types::GLint = 1;
2024
unsafe {
@@ -34,15 +38,17 @@ impl Program {
3438
program_id,
3539
len,
3640
std::ptr::null_mut(),
37-
error.as_ptr() as *mut gl::types::GLchar
41+
error.as_ptr() as *mut gl::types::GLchar,
3842
);
3943
}
4044

4145
return Err(error.to_string_lossy().into_owned());
4246
}
4347

4448
for shader in shaders {
45-
unsafe { gl::DetachShader(program_id, shader.id()); }
49+
unsafe {
50+
gl::DetachShader(program_id, shader.id());
51+
}
4652
}
4753

4854
Ok(Program { id: program_id })
@@ -72,10 +78,7 @@ pub struct Shader {
7278
}
7379

7480
impl Shader {
75-
pub fn from_source(
76-
source: &CStr,
77-
kind: gl::types::GLenum
78-
) -> Result<Shader, String> {
81+
pub fn from_source(source: &CStr, kind: gl::types::GLenum) -> Result<Shader, String> {
7982
let id = shader_from_source(source, kind)?;
8083
Ok(Shader { id })
8184
}
@@ -101,10 +104,7 @@ impl Drop for Shader {
101104
}
102105
}
103106

104-
fn shader_from_source(
105-
source: &CStr,
106-
kind: gl::types::GLenum
107-
) -> Result<gl::types::GLuint, String> {
107+
fn shader_from_source(source: &CStr, kind: gl::types::GLenum) -> Result<gl::types::GLuint, String> {
108108
let id = unsafe { gl::CreateShader(kind) };
109109
unsafe {
110110
gl::ShaderSource(id, 1, &source.as_ptr(), std::ptr::null());
@@ -129,7 +129,7 @@ fn shader_from_source(
129129
id,
130130
len,
131131
std::ptr::null_mut(),
132-
error.as_ptr() as *mut gl::types::GLchar
132+
error.as_ptr() as *mut gl::types::GLchar,
133133
);
134134
}
135135

@@ -146,4 +146,4 @@ fn create_whitespace_cstring_with_len(len: usize) -> CString {
146146
buffer.extend([b' '].iter().cycle().take(len));
147147
// convert buffer to CString
148148
unsafe { CString::from_vec_unchecked(buffer) }
149-
}
149+
}

lesson-04/src/main.rs

+22-27
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
extern crate sdl2;
21
extern crate gl;
2+
extern crate sdl2;
33

44
pub mod render_gl;
55

@@ -20,30 +20,25 @@ fn main() {
2020
.unwrap();
2121

2222
let _gl_context = window.gl_create_context().unwrap();
23-
let _gl = gl::load_with(|s| video_subsystem.gl_get_proc_address(s) as *const std::os::raw::c_void);
23+
let _gl =
24+
gl::load_with(|s| video_subsystem.gl_get_proc_address(s) as *const std::os::raw::c_void);
2425

2526
// set up shader program
2627

27-
use std::ffi::{CString};
28-
let vert_shader = render_gl::Shader::from_vert_source(
29-
&CString::new(include_str!("triangle.vert")).unwrap()
30-
).unwrap();
28+
use std::ffi::CString;
29+
let vert_shader =
30+
render_gl::Shader::from_vert_source(&CString::new(include_str!("triangle.vert")).unwrap())
31+
.unwrap();
3132

32-
let frag_shader = render_gl::Shader::from_frag_source(
33-
&CString::new(include_str!("triangle.frag")).unwrap()
34-
).unwrap();
33+
let frag_shader =
34+
render_gl::Shader::from_frag_source(&CString::new(include_str!("triangle.frag")).unwrap())
35+
.unwrap();
3536

36-
let shader_program = render_gl::Program::from_shaders(
37-
&[vert_shader, frag_shader]
38-
).unwrap();
37+
let shader_program = render_gl::Program::from_shaders(&[vert_shader, frag_shader]).unwrap();
3938

4039
// set up vertex buffer object
4140

42-
let vertices: Vec<f32> = vec![
43-
-0.5, -0.5, 0.0,
44-
0.5, -0.5, 0.0,
45-
0.0, 0.5, 0.0
46-
];
41+
let vertices: Vec<f32> = vec![-0.5, -0.5, 0.0, 0.5, -0.5, 0.0, 0.0, 0.5, 0.0];
4742

4843
let mut vbo: gl::types::GLuint = 0;
4944
unsafe {
@@ -53,10 +48,10 @@ fn main() {
5348
unsafe {
5449
gl::BindBuffer(gl::ARRAY_BUFFER, vbo);
5550
gl::BufferData(
56-
gl::ARRAY_BUFFER, // target
51+
gl::ARRAY_BUFFER, // target
5752
(vertices.len() * std::mem::size_of::<f32>()) as gl::types::GLsizeiptr, // size of data in bytes
5853
vertices.as_ptr() as *const gl::types::GLvoid, // pointer to data
59-
gl::STATIC_DRAW, // usage
54+
gl::STATIC_DRAW, // usage
6055
);
6156
gl::BindBuffer(gl::ARRAY_BUFFER, 0);
6257
}
@@ -73,12 +68,12 @@ fn main() {
7368
gl::BindBuffer(gl::ARRAY_BUFFER, vbo);
7469
gl::EnableVertexAttribArray(0); // this is "layout (location = 0)" in vertex shader
7570
gl::VertexAttribPointer(
76-
0, // index of the generic vertex attribute ("layout (location = 0)")
77-
3, // the number of components per generic vertex attribute
71+
0, // index of the generic vertex attribute ("layout (location = 0)")
72+
3, // the number of components per generic vertex attribute
7873
gl::FLOAT, // data type
7974
gl::FALSE, // normalized (int-to-float conversion)
8075
(3 * std::mem::size_of::<f32>()) as gl::types::GLint, // stride (byte offset between consecutive attributes)
81-
std::ptr::null() // offset of the first component
76+
std::ptr::null(), // offset of the first component
8277
);
8378
gl::BindBuffer(gl::ARRAY_BUFFER, 0);
8479
gl::BindVertexArray(0);
@@ -97,8 +92,8 @@ fn main() {
9792
'main: loop {
9893
for event in event_pump.poll_iter() {
9994
match event {
100-
sdl2::event::Event::Quit {..} => break 'main,
101-
_ => {},
95+
sdl2::event::Event::Quit { .. } => break 'main,
96+
_ => {}
10297
}
10398
}
10499

@@ -113,11 +108,11 @@ fn main() {
113108
gl::BindVertexArray(vao);
114109
gl::DrawArrays(
115110
gl::TRIANGLES, // mode
116-
0, // starting index in the enabled arrays
117-
3 // number of indices to be rendered
111+
0, // starting index in the enabled arrays
112+
3, // number of indices to be rendered
118113
);
119114
}
120115

121116
window.gl_swap_window();
122117
}
123-
}
118+
}

lesson-04/src/render_gl.rs

+15-15
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
use gl;
22
use std;
3-
use std::ffi::{CString, CStr};
3+
use std::ffi::{CStr, CString};
44

55
pub struct Program {
66
id: gl::types::GLuint,
@@ -11,10 +11,14 @@ impl Program {
1111
let program_id = unsafe { gl::CreateProgram() };
1212

1313
for shader in shaders {
14-
unsafe { gl::AttachShader(program_id, shader.id()); }
14+
unsafe {
15+
gl::AttachShader(program_id, shader.id());
16+
}
1517
}
1618

17-
unsafe { gl::LinkProgram(program_id); }
19+
unsafe {
20+
gl::LinkProgram(program_id);
21+
}
1822

1923
let mut success: gl::types::GLint = 1;
2024
unsafe {
@@ -34,15 +38,17 @@ impl Program {
3438
program_id,
3539
len,
3640
std::ptr::null_mut(),
37-
error.as_ptr() as *mut gl::types::GLchar
41+
error.as_ptr() as *mut gl::types::GLchar,
3842
);
3943
}
4044

4145
return Err(error.to_string_lossy().into_owned());
4246
}
4347

4448
for shader in shaders {
45-
unsafe { gl::DetachShader(program_id, shader.id()); }
49+
unsafe {
50+
gl::DetachShader(program_id, shader.id());
51+
}
4652
}
4753

4854
Ok(Program { id: program_id })
@@ -72,10 +78,7 @@ pub struct Shader {
7278
}
7379

7480
impl Shader {
75-
pub fn from_source(
76-
source: &CStr,
77-
kind: gl::types::GLenum
78-
) -> Result<Shader, String> {
81+
pub fn from_source(source: &CStr, kind: gl::types::GLenum) -> Result<Shader, String> {
7982
let id = shader_from_source(source, kind)?;
8083
Ok(Shader { id })
8184
}
@@ -101,10 +104,7 @@ impl Drop for Shader {
101104
}
102105
}
103106

104-
fn shader_from_source(
105-
source: &CStr,
106-
kind: gl::types::GLenum
107-
) -> Result<gl::types::GLuint, String> {
107+
fn shader_from_source(source: &CStr, kind: gl::types::GLenum) -> Result<gl::types::GLuint, String> {
108108
let id = unsafe { gl::CreateShader(kind) };
109109
unsafe {
110110
gl::ShaderSource(id, 1, &source.as_ptr(), std::ptr::null());
@@ -129,7 +129,7 @@ fn shader_from_source(
129129
id,
130130
len,
131131
std::ptr::null_mut(),
132-
error.as_ptr() as *mut gl::types::GLchar
132+
error.as_ptr() as *mut gl::types::GLchar,
133133
);
134134
}
135135

@@ -146,4 +146,4 @@ fn create_whitespace_cstring_with_len(len: usize) -> CString {
146146
buffer.extend([b' '].iter().cycle().take(len));
147147
// convert buffer to CString
148148
unsafe { CString::from_vec_unchecked(buffer) }
149-
}
149+
}

0 commit comments

Comments
 (0)