shaders resizing and version bump!
This commit is contained in:
parent
eaa47213f7
commit
09e0d83e97
4 changed files with 13 additions and 13 deletions
2
Cargo.lock
generated
2
Cargo.lock
generated
|
@ -1220,7 +1220,7 @@ dependencies = [
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "gb-emu"
|
name = "gb-emu"
|
||||||
version = "0.3.3"
|
version = "0.4.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"ash",
|
"ash",
|
||||||
"ash-window",
|
"ash-window",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "gb-emu"
|
name = "gb-emu"
|
||||||
version = "0.3.3"
|
version = "0.4.0"
|
||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
|
|
|
@ -44,7 +44,7 @@ pub struct WindowInfo {
|
||||||
struct WindowData {
|
struct WindowData {
|
||||||
renderer: Mutex<RendererBackend>,
|
renderer: Mutex<RendererBackend>,
|
||||||
window: Window,
|
window: Window,
|
||||||
real_factor: RwLock<u32>,
|
rendered_size: RwLock<(u32, u32)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub struct WindowManager {
|
pub struct WindowManager {
|
||||||
|
@ -111,13 +111,13 @@ impl WindowManager {
|
||||||
if let Some(w) = self.windows.get(&window_id) {
|
if let Some(w) = self.windows.get(&window_id) {
|
||||||
if let Ok(mut renderer) = w.renderer.lock() {
|
if let Ok(mut renderer) = w.renderer.lock() {
|
||||||
let inner_size = w.window.inner_size();
|
let inner_size = w.window.inner_size();
|
||||||
if let Ok(real_factor) = w.real_factor.read() {
|
if let Ok(rendered_size) = w.rendered_size.read() {
|
||||||
renderer.render(
|
renderer.render(
|
||||||
ResolutionData {
|
ResolutionData {
|
||||||
real_width: inner_size.width,
|
real_width: inner_size.width,
|
||||||
real_height: inner_size.height,
|
real_height: inner_size.height,
|
||||||
scaled_width: inner_size.width / *real_factor,
|
scaled_width: rendered_size.0,
|
||||||
scaled_height: inner_size.height / *real_factor,
|
scaled_height: rendered_size.1,
|
||||||
},
|
},
|
||||||
&self.window_data_manager,
|
&self.window_data_manager,
|
||||||
);
|
);
|
||||||
|
@ -153,7 +153,7 @@ impl WindowRenderer {
|
||||||
) -> (Self, WindowInfo) {
|
) -> (Self, WindowInfo) {
|
||||||
let window = WindowBuilder::new()
|
let window = WindowBuilder::new()
|
||||||
.with_title("Gameboy")
|
.with_title("Gameboy")
|
||||||
.with_resizable(false)
|
.with_resizable(shader_path.is_some())
|
||||||
.build(event_loop)
|
.build(event_loop)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
@ -177,7 +177,7 @@ impl WindowRenderer {
|
||||||
let data = Arc::new(WindowData {
|
let data = Arc::new(WindowData {
|
||||||
renderer,
|
renderer,
|
||||||
window,
|
window,
|
||||||
real_factor: RwLock::new(real_factor),
|
rendered_size: RwLock::new((1, 1)),
|
||||||
});
|
});
|
||||||
|
|
||||||
let info = WindowInfo {
|
let info = WindowInfo {
|
||||||
|
@ -211,8 +211,8 @@ impl Renderer<[u8; 4]> for WindowRenderer {
|
||||||
let real_width = (width as u32) * real_factor;
|
let real_width = (width as u32) * real_factor;
|
||||||
let real_height = (height as u32) * real_factor;
|
let real_height = (height as u32) * real_factor;
|
||||||
|
|
||||||
if let Ok(mut f) = self.data.real_factor.write() {
|
if let Ok(mut f) = self.data.rendered_size.write() {
|
||||||
*f = real_factor;
|
*f = (width as u32, height as u32);
|
||||||
}
|
}
|
||||||
|
|
||||||
self.data
|
self.data
|
||||||
|
|
|
@ -122,9 +122,9 @@ pub(super) fn rgb_from_bytes(bytes: u16) -> Colour {
|
||||||
let g = (bytes & (0b11111 << 5)) >> 5;
|
let g = (bytes & (0b11111 << 5)) >> 5;
|
||||||
let r = bytes & 0b11111;
|
let r = bytes & 0b11111;
|
||||||
// direct colour emulation:
|
// direct colour emulation:
|
||||||
// let blue = (raw_blue << 3) | (raw_blue >> 2);
|
// let blue = (b << 3) | (b >> 2);
|
||||||
// let green = (raw_green << 3) | (raw_green >> 2);
|
// let green = (g << 3) | (g >> 2);
|
||||||
// let red = (raw_red << 3) | (raw_red >> 2);
|
// let red = (r << 3) | (r >> 2);
|
||||||
|
|
||||||
// colour emulation from
|
// colour emulation from
|
||||||
// https://web.archive.org/web/20200322151952/https://byuu.net/video/color-emulation
|
// https://web.archive.org/web/20200322151952/https://byuu.net/video/color-emulation
|
||||||
|
|
Loading…
Add table
Reference in a new issue