parent
1f33d96ae5
commit
28878dc345
@ -0,0 +1,21 @@
|
|||||||
|
#version 450
|
||||||
|
layout(location = 0) in vec2 tex_coords;
|
||||||
|
layout(location = 1) in vec4 out_color;
|
||||||
|
|
||||||
|
layout(location = 0) out vec4 f_color;
|
||||||
|
|
||||||
|
layout(set = 0, binding = 0) uniform sampler2D tex;
|
||||||
|
layout(set = 0, binding = 1, rgba32ui) readonly uniform uimage2D img;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
|
||||||
|
ivec2 pos = ivec2(gl_FragCoord.x, gl_FragCoord.y);
|
||||||
|
|
||||||
|
f_color = imageLoad(img, ivec2(pos)) / (255.0);
|
||||||
|
|
||||||
|
float gamma = 0.5;
|
||||||
|
f_color.rgb = pow(f_color.rgb, vec3(1.0/gamma));
|
||||||
|
|
||||||
|
//f_color = out_color;
|
||||||
|
// f_color = texture(tex, tex_coords);
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
#version 450
|
||||||
|
layout(location = 0) in vec2 position;
|
||||||
|
layout(location = 1) in vec4 color;
|
||||||
|
|
||||||
|
layout(location = 0) out vec2 tex_coords;
|
||||||
|
layout(location = 1) out vec4 out_color;
|
||||||
|
|
||||||
|
void main() {
|
||||||
|
out_color = color;
|
||||||
|
|
||||||
|
gl_Position = vec4(position, 0.0, 1.0);
|
||||||
|
tex_coords = position;
|
||||||
|
}
|
@ -1,114 +0,0 @@
|
|||||||
use sfml::graphics::{Texture, Sprite, IntRect, Drawable, RenderTarget, RenderStates};
|
|
||||||
use sfml::system::Vector2u;
|
|
||||||
use sfml::graphics::Transformable;
|
|
||||||
|
|
||||||
//pub struct Thing<'a> {
|
|
||||||
//
|
|
||||||
// loader: WorkpieceLoader,
|
|
||||||
// workpiece: Workpiece<'a>
|
|
||||||
//
|
|
||||||
//}
|
|
||||||
//
|
|
||||||
//impl<'a> Thing<'a> {
|
|
||||||
//
|
|
||||||
// pub fn new(pixels: Vec<u8>) -> Thing<'a> {
|
|
||||||
//
|
|
||||||
// let mut workpieceloader = WorkpieceLoader::new(String::from("resources/images/funky-bird.jpg"));
|
|
||||||
// workpieceloader.load_first_stage(pixels);
|
|
||||||
//
|
|
||||||
// let mut workpiece = Workpiece::new();
|
|
||||||
// workpiece.load_first_stage(&mut workpieceloader.first_stage_texture);
|
|
||||||
//
|
|
||||||
// Thing {
|
|
||||||
// loader: workpieceloader,
|
|
||||||
// workpiece: workpiece
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
/*
|
|
||||||
|
|
||||||
|
|
||||||
first_thing = Thing1::new();
|
|
||||||
second_thing = Thing1::new();
|
|
||||||
|
|
||||||
let mut container_thing = Thing2::new();
|
|
||||||
|
|
||||||
container_thing.field = &mut first_thing;
|
|
||||||
container_thing.field = &mut second_thing;
|
|
||||||
|
|
||||||
first_thing.field = 10;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
#[derive(Clone)]
|
|
||||||
pub struct WorkpieceLoader {
|
|
||||||
pub swatch_texture: Texture,
|
|
||||||
pub first_stage_texture: Texture,
|
|
||||||
pub xy: Vector2u,
|
|
||||||
pub vec: Vec<Texture>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl WorkpieceLoader {
|
|
||||||
|
|
||||||
pub fn new(filepath: String) -> WorkpieceLoader {
|
|
||||||
|
|
||||||
let texture = Texture::from_file(filepath.as_str()).expect("Couldn't load image");
|
|
||||||
let xy = texture.size();
|
|
||||||
|
|
||||||
WorkpieceLoader {
|
|
||||||
swatch_texture: texture,
|
|
||||||
first_stage_texture: Texture::new(xy.x, xy.y).unwrap(),
|
|
||||||
xy: xy,
|
|
||||||
vec: vec![]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn load_first_stage(&mut self, pixels: Vec<u8>) {
|
|
||||||
self.vec.clear();
|
|
||||||
let mut t = Texture::new(self.xy.x, self.xy.y).expect("Couldn't load image");
|
|
||||||
t.update_from_pixels(pixels.as_slice(), self.xy.x, self.xy.y, 0, 0);
|
|
||||||
self.vec.push(t);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn get_first(&mut self) -> &Texture {
|
|
||||||
&self.first_stage_texture
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub struct Workpiece<'a> {
|
|
||||||
pub render_sprite: Sprite<'a>
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'a> Workpiece<'a> {
|
|
||||||
|
|
||||||
pub fn new() -> Workpiece<'a> {
|
|
||||||
|
|
||||||
Workpiece {
|
|
||||||
render_sprite: Sprite::new()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn load_first_stage(&mut self, texture: &'a mut Texture) {
|
|
||||||
|
|
||||||
|
|
||||||
self.render_sprite.set_texture(texture, false);
|
|
||||||
self.render_sprite.set_position((0., 0.));
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl<'s> Drawable for Workpiece<'s> {
|
|
||||||
fn draw<'a: 'shader, 'texture, 'shader, 'shader_texture>(
|
|
||||||
&'a self,
|
|
||||||
render_target: &mut RenderTarget,
|
|
||||||
_: RenderStates<'texture, 'shader, 'shader_texture>,
|
|
||||||
) {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in new issue