diff options
Diffstat (limited to 'examples/render-quad')
-rw-r--r-- | examples/render-quad/Cargo.toml | 12 | ||||
-rw-r--r-- | examples/render-quad/README.md | 3 | ||||
-rw-r--r-- | examples/render-quad/data/test1.png | bin | 486777 -> 0 bytes | |||
-rw-r--r-- | examples/render-quad/data/test2.png | bin | 375052 -> 0 bytes | |||
-rw-r--r-- | examples/render-quad/src/main.rs | 130 |
5 files changed, 0 insertions, 145 deletions
diff --git a/examples/render-quad/Cargo.toml b/examples/render-quad/Cargo.toml deleted file mode 100644 index d376605..0000000 --- a/examples/render-quad/Cargo.toml +++ /dev/null @@ -1,12 +0,0 @@ -[package] -name = "render-quad" -version = "0.1.0" -authors = ["Oscar <oscar.shrimpton.personal@gmail.com>"] - -[dependencies] -stockton-render = { path = "../../stockton-render", features = ["vulkan"] } -stockton-types = { path = "../../stockton-types" } -stockton-bsp = { git = "https://github.com/tcmal/rust-bsp.git" } -winit = "^0.21" -simple_logger = "1.0" -image = "0.23.2" diff --git a/examples/render-quad/README.md b/examples/render-quad/README.md deleted file mode 100644 index c129ff6..0000000 --- a/examples/render-quad/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# render-quad - -Renders a rainbow quad. The top-left corner follows your mouse.
\ No newline at end of file diff --git a/examples/render-quad/data/test1.png b/examples/render-quad/data/test1.png Binary files differdeleted file mode 100644 index 3d37758..0000000 --- a/examples/render-quad/data/test1.png +++ /dev/null diff --git a/examples/render-quad/data/test2.png b/examples/render-quad/data/test2.png Binary files differdeleted file mode 100644 index f33cc3e..0000000 --- a/examples/render-quad/data/test2.png +++ /dev/null diff --git a/examples/render-quad/src/main.rs b/examples/render-quad/src/main.rs deleted file mode 100644 index ea22b18..0000000 --- a/examples/render-quad/src/main.rs +++ /dev/null @@ -1,130 +0,0 @@ -// Copyright (C) Oscar Shrimpton 2019 - -// This program is free software: you can redistribute it and/or modify it -// under the terms of the GNU General Public License as published by the Free -// Software Foundation, either version 3 of the License, or (at your option) -// any later version. - -// This program is distributed in the hope that it will be useful, but WITHOUT -// ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for -// more details. - -// You should have received a copy of the GNU General Public License along -// with this program. If not, see <http://www.gnu.org/licenses/>. - -//! Renders ./example.bsp - -extern crate stockton_types; -extern crate stockton_bsp; -extern crate stockton_render; -extern crate winit; -extern crate simple_logger; -extern crate image; - -use stockton_render::draw::{RenderingContext, UVPoint}; -use stockton_types::{Vector2, Vector3}; -use image::load_from_memory; - -use winit::{ - event::{Event, WindowEvent}, - event_loop::{ControlFlow, EventLoop}, - window::WindowBuilder -}; - -fn main() { - let cube_points: [UVPoint; 24] = [ - // Face 1 (front) - UVPoint(Vector3::new(0.0, 0.0, 0.0), Vector2::new(0.0, 1.0), 0), /* bottom left */ - UVPoint(Vector3::new(0.0, 1.0, 0.0), Vector2::new(0.0, 0.0), 0), /* top left */ - UVPoint(Vector3::new(1.0, 0.0, 0.0), Vector2::new(1.0, 1.0), 0), /* bottom right */ - UVPoint(Vector3::new(1.0, 1.0, 0.0), Vector2::new(1.0, 0.0), 0), /* top right */ - // Face 2 (top) - UVPoint(Vector3::new(0.0, 1.0, 0.0), Vector2::new(0.0, 1.0), 0), /* bottom left */ - UVPoint(Vector3::new(0.0, 1.0, 1.0), Vector2::new(0.0, 0.0), 0), /* top left */ - UVPoint(Vector3::new(1.0, 1.0, 0.0), Vector2::new(1.0, 1.0), 0), /* bottom right */ - UVPoint(Vector3::new(1.0, 1.0, 1.0), Vector2::new(1.0, 0.0), 0), /* top right */ - // Face 3 (back) - UVPoint(Vector3::new(0.0, 0.0, 1.0), Vector2::new(0.0, 1.0), 1), /* bottom left */ - UVPoint(Vector3::new(0.0, 1.0, 1.0), Vector2::new(0.0, 0.0), 1), /* top left */ - UVPoint(Vector3::new(1.0, 0.0, 1.0), Vector2::new(1.0, 1.0), 1), /* bottom right */ - UVPoint(Vector3::new(1.0, 1.0, 1.0), Vector2::new(1.0, 0.0), 1), /* top right */ - // Face 4 (bottom) - UVPoint(Vector3::new(0.0, 0.0, 0.0), Vector2::new(0.0, 1.0), 1), /* bottom left */ - UVPoint(Vector3::new(0.0, 0.0, 1.0), Vector2::new(0.0, 0.0), 1), /* top left */ - UVPoint(Vector3::new(1.0, 0.0, 0.0), Vector2::new(1.0, 1.0), 1), /* bottom right */ - UVPoint(Vector3::new(1.0, 0.0, 1.0), Vector2::new(1.0, 0.0), 1), /* top right */ - // Face 5 (left) - UVPoint(Vector3::new(0.0, 0.0, 1.0), Vector2::new(0.0, 1.0), 1), /* bottom left */ - UVPoint(Vector3::new(0.0, 1.0, 1.0), Vector2::new(0.0, 0.0), 1), /* top left */ - UVPoint(Vector3::new(0.0, 0.0, 0.0), Vector2::new(1.0, 1.0), 1), /* bottom right */ - UVPoint(Vector3::new(0.0, 1.0, 0.0), Vector2::new(1.0, 0.0), 1), /* top right */ - // Face 6 (right) - UVPoint(Vector3::new(1.0, 0.0, 0.0), Vector2::new(0.0, 1.0), 0), /* bottom left */ - UVPoint(Vector3::new(1.0, 1.0, 0.0), Vector2::new(0.0, 0.0), 0), /* top left */ - UVPoint(Vector3::new(1.0, 0.0, 1.0), Vector2::new(1.0, 1.0), 0), /* bottom right */ - UVPoint(Vector3::new(1.0, 1.0, 1.0), Vector2::new(1.0, 0.0), 0), /* top right */ - ]; - let cube_indices: [(u16, u16, u16); 12] = [ - (0, 1, 2), (2, 1, 3), // front - (4, 5, 6), (7, 6, 5), // top - (10, 9, 8), (9, 10, 11), // back - (12, 14, 13), (15, 13, 14), // bottom - (16, 17, 18), (19, 18, 17), // left - (20, 21, 22), (23, 22, 21), // right - ]; - - simple_logger::init().unwrap(); - - // Create the renderer. - let event_loop = EventLoop::new(); - let window = WindowBuilder::new().build(&event_loop).unwrap(); - let mut ctx = RenderingContext::new(&window).unwrap(); - - // Load 2 test textures - ctx.add_texture( - load_from_memory(include_bytes!("../data/test1.png")) - .expect("Couldn't load test texture 1") - .into_rgba()) - .unwrap(); - ctx.add_texture( - load_from_memory(include_bytes!("../data/test2.png")) - .expect("Couldn't load test texture 2") - .into_rgba()) - .unwrap(); - - // First quad with test1 - for (index, point) in cube_points.iter().enumerate() { - ctx.vert_buffer[index] = *point; - } - - for (index, value) in cube_indices.iter().enumerate() { - ctx.index_buffer[index] = *value; - } - - event_loop.run(move |event, _, flow| { - *flow = ControlFlow::Poll; - - match event { - Event::WindowEvent { - event: WindowEvent::CloseRequested, - .. - } => { - *flow = ControlFlow::Exit - } - - Event::MainEventsCleared => { - window.request_redraw() - }, - Event::RedrawRequested(_) => { - if let Err(_) = ctx.draw_vertices() { - unsafe {ctx.handle_surface_change().unwrap()}; - - // If it fails twice, then panic - ctx.draw_vertices().unwrap(); - } - } - _ => () - } - }); -} |