summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authorBen Bridle <bridle.benjamin@gmail.com>2023-10-10 14:56:04 +1300
committerBen Bridle <bridle.benjamin@gmail.com>2023-10-10 14:56:04 +1300
commita6e97019bd53e4478c846f8f636c18ecb53bece2 (patch)
tree69dada994e34cdfb4ddcef5a29c753f449407ec7 /src/bin
downloadphosphor-a6e97019bd53e4478c846f8f636c18ecb53bece2.zip
First commit, before upgrading winit to version 28.1
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/fragment.frag7
-rw-r--r--src/bin/phosphor_test.rs89
-rw-r--r--src/bin/vertex.vert9
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;
+}