diff options
author | Ben Bridle <bridle.benjamin@gmail.com> | 2023-10-10 14:56:04 +1300 |
---|---|---|
committer | Ben Bridle <bridle.benjamin@gmail.com> | 2023-10-10 14:56:04 +1300 |
commit | a6e97019bd53e4478c846f8f636c18ecb53bece2 (patch) | |
tree | 69dada994e34cdfb4ddcef5a29c753f449407ec7 /src/bin | |
download | phosphor-a6e97019bd53e4478c846f8f636c18ecb53bece2.zip |
First commit, before upgrading winit to version 28.1
Diffstat (limited to 'src/bin')
-rw-r--r-- | src/bin/fragment.frag | 7 | ||||
-rw-r--r-- | src/bin/phosphor_test.rs | 89 | ||||
-rw-r--r-- | src/bin/vertex.vert | 9 |
3 files changed, 105 insertions, 0 deletions
diff --git a/src/bin/fragment.frag b/src/bin/fragment.frag new file mode 100644 index 0000000..99826f6 --- /dev/null +++ b/src/bin/fragment.frag @@ -0,0 +1,7 @@ +#version 330 +out vec4 FragColor; +in vec3 vertexColor; + +void main() { + FragColor = vec4(vertexColor, 1.0); +} diff --git a/src/bin/phosphor_test.rs b/src/bin/phosphor_test.rs new file mode 100644 index 0000000..40a8558 --- /dev/null +++ b/src/bin/phosphor_test.rs @@ -0,0 +1,89 @@ +#![allow(dead_code)] + +// use asbestos::{Shader, ShaderProgram}; +use buffer::*; +use phosphor::*; +// use raw_gl_context::GlContext; + +fn main() { + let my_program = MyProgram {}; + let mut wm = WindowManager::with_program(my_program); + wm.create_window(MainWindow::new()); + wm.run() +} + +struct MyProgram {} +impl ProgramController for MyProgram {} + +struct MainWindow { + // program: ShaderProgram, +} +impl MainWindow { + pub fn new() -> Box<Self> { + // let vertex_shader = Shader::vertex(include_str!("vertex.vert")); + // let fragment_shader = Shader::fragment(include_str!("fragment.frag")); + // let program = ShaderProgram::from_shaders(&[vertex_shader, fragment_shader]); + // Box::new(Self { program }) + Box::new(Self {}) + } +} +impl WindowController for MainWindow { + fn render(&mut self, buffer: &mut Buffer, _: RenderHint) { + println!("Rendering..."); + buffer.fill(Colour::TEAL); + } + + // fn render_gl(&mut self, _context: &mut GlContext) { + // println!("Rendering GL..."); + // unsafe { + // gl::ClearColor(1.0, 0.0, 1.0, 1.0); + // gl::Clear(gl::COLOR_BUFFER_BIT); + // } + // } +} + +// type Pos = [f32; 2]; +// type Color = [f32; 3]; +// #[repr(C, packed)] +// struct Vertex(Pos, Color); + +// const VERTICES: [Vertex; 3] = [ +// Vertex([-0.5, -0.5], [1.0, 0.0, 0.0]), +// Vertex([0.5, -0.5], [0.0, 1.0, 0.0]), +// Vertex([0.0, 0.5], [0.0, 0.0, 1.0]) +// ]; + +// pub struct Buffer { +// pub id: GLuint, +// target: GLuint, +// } +// impl Buffer { +// pub unsafe fn new(target: GLuint) -> Self { +// let mut id: GLuint = 0; +// gl::GenBuffers(1, &mut id); +// Self { id, target } +// } + +// pub unsafe fn bind(&self) { +// gl::BindBuffer(self.target, self.id); +// } + +// pub unsafe fn set_data<D>(&self, data: &[D], usage: GLuint) { +// self.bind(); +// let (_, data_bytes, _) = data.align_to::<u8>(); +// gl::BufferData( +// self.target, +// data_bytes.len() as GLsizeiptr, +// data_bytes.as_ptr() as *const _, +// usage, +// ); +// } +// } + +// impl Drop for Buffer { +// fn drop(&mut self) { +// unsafe { +// gl::DeleteBuffers(1, [self.id].as_ptr()); +// } +// } +// } diff --git a/src/bin/vertex.vert b/src/bin/vertex.vert new file mode 100644 index 0000000..0fd4f8a --- /dev/null +++ b/src/bin/vertex.vert @@ -0,0 +1,9 @@ +#version 330 +in vec2 point; +in vec3 color; +out vec3 vertexColor; + +void main() { + gl_Point = vec4(point, 0.0, 1.0); + vertexColor = color; +} |