Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| a014b3e144 | |||
| f0ab184ea8 |
@ -94,10 +94,15 @@ impl Canvas {
|
||||
unimplemented!();
|
||||
}
|
||||
|
||||
pub fn create_texture(&mut self, _size: Size, _background: Option<Pixel>)
|
||||
-> Rc<RefCell<Texture>>
|
||||
pub fn create_texture(&mut self, size: Size, background: Option<Pixel>)
|
||||
-> Result<TextureHandle, &'static str>
|
||||
{
|
||||
unimplemented!();
|
||||
let buffer = vec!(background.unwrap_or_else(|| Pixel::from(Color::NONE));
|
||||
(size.w * size.h).try_into().unwrap());
|
||||
let texture = Texture::create(&self.renderer, &Vec::from(bytemuck::cast_slice(&buffer)),
|
||||
size);
|
||||
|
||||
Ok(TextureHandle::from_texture(texture))
|
||||
}
|
||||
|
||||
pub fn create_texture_from_file(&mut self,
|
||||
|
||||
@ -17,6 +17,7 @@ pub struct Texture {
|
||||
|
||||
impl Texture {
|
||||
|
||||
//TODO: take buffer's ownership
|
||||
pub fn create(renderer: &WgpuRenderer,
|
||||
buffer: &[u8],
|
||||
size: Size)
|
||||
|
||||
10
src/utils.rs
10
src/utils.rs
@ -175,10 +175,10 @@ impl Color {
|
||||
//that the values are within [0.0, 1.0], meaning we won't ever overflow an u8
|
||||
unsafe {
|
||||
Pixel {
|
||||
r: self.r.to_int_unchecked::<u8>() * 255,
|
||||
g: self.g.to_int_unchecked::<u8>() * 255,
|
||||
b: self.b.to_int_unchecked::<u8>() * 255,
|
||||
a: self.a.to_int_unchecked::<u8>() * 255,
|
||||
r: (self.r * 255.0).to_int_unchecked::<u8>(),
|
||||
g: (self.g * 255.0).to_int_unchecked::<u8>(),
|
||||
b: (self.b * 255.0).to_int_unchecked::<u8>(),
|
||||
a: (self.a * 255.0).to_int_unchecked::<u8>(),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -193,7 +193,7 @@ impl Color {
|
||||
}
|
||||
|
||||
pub fn alpha_blend(&self, other: &Self) -> Self {
|
||||
//apply alpha compisting's "over" operator, see
|
||||
//apply alpha compositing's "over" operator, see
|
||||
//[https://en.wikipedia.org/wiki/Alpha_compositing] for more detail
|
||||
let a = self.a + other.a * (1.0 - self.a);
|
||||
Self {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user