error is white (colour corrected for cgb) in release builds
This commit is contained in:
parent
63818494b7
commit
ba9a601874
|
@ -132,7 +132,7 @@ where
|
||||||
} else {
|
} else {
|
||||||
None
|
None
|
||||||
};
|
};
|
||||||
let buffer = vec![ColourInner::Error.rgb_bytes(None).into(); WIDTH * HEIGHT];
|
let buffer = vec![ColourInner::Error.rgb_bytes(None, false).into(); WIDTH * HEIGHT];
|
||||||
|
|
||||||
Self {
|
Self {
|
||||||
buffer,
|
buffer,
|
||||||
|
@ -321,8 +321,9 @@ where
|
||||||
*e = true;
|
*e = true;
|
||||||
}
|
}
|
||||||
for x in 0..WIDTH {
|
for x in 0..WIDTH {
|
||||||
self.buffer[(scanline as usize * WIDTH) + x] =
|
self.buffer[(scanline as usize * WIDTH) + x] = ColourInner::Error
|
||||||
ColourInner::Error.rgb_bytes(None).into();
|
.rgb_bytes(None, self.is_cgb_mode())
|
||||||
|
.into();
|
||||||
}
|
}
|
||||||
if self.lcdc.bg_window_enable {
|
if self.lcdc.bg_window_enable {
|
||||||
self.render_scanline_bg(scanline);
|
self.render_scanline_bg(scanline);
|
||||||
|
@ -335,8 +336,9 @@ where
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for x in 0..WIDTH {
|
for x in 0..WIDTH {
|
||||||
self.buffer[(scanline as usize * WIDTH) + x] =
|
self.buffer[(scanline as usize * WIDTH) + x] = ColourInner::Error
|
||||||
ColourInner::Error.rgb_bytes(None).into();
|
.rgb_bytes(None, self.is_cgb_mode())
|
||||||
|
.into();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if self.lcdc.obj_enable {
|
if self.lcdc.obj_enable {
|
||||||
|
@ -487,7 +489,8 @@ where
|
||||||
)
|
)
|
||||||
});
|
});
|
||||||
|
|
||||||
self.buffer[buffer_index] = colour.rgb_bytes(cgb_data).into();
|
self.buffer[buffer_index] =
|
||||||
|
colour.rgb_bytes(cgb_data, self.is_cgb_mode()).into();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -564,7 +567,8 @@ where
|
||||||
.as_ref()
|
.as_ref()
|
||||||
.map(|v| (v.palettes.bg, attributes.palette));
|
.map(|v| (v.palettes.bg, attributes.palette));
|
||||||
|
|
||||||
self.buffer[(scanline as usize * WIDTH) + x] = colour.rgb_bytes(cgb_data).into();
|
self.buffer[(scanline as usize * WIDTH) + x] =
|
||||||
|
colour.rgb_bytes(cgb_data, self.is_cgb_mode()).into();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ where
|
||||||
pub(super) fn new(window: R) -> Self {
|
pub(super) fn new(window: R) -> Self {
|
||||||
Self {
|
Self {
|
||||||
sprite_buffer: vec![
|
sprite_buffer: vec![
|
||||||
ColourInner::Error.rgb_bytes(None).into();
|
ColourInner::Error.rgb_bytes(None, false).into();
|
||||||
TILE_WINDOW_WIDTH * TILE_WINDOW_HEIGHT
|
TILE_WINDOW_WIDTH * TILE_WINDOW_HEIGHT
|
||||||
],
|
],
|
||||||
sprite_renderer: window,
|
sprite_renderer: window,
|
||||||
|
@ -110,7 +110,7 @@ where
|
||||||
};
|
};
|
||||||
|
|
||||||
self.sprite_buffer[real_px_x + (real_px_y * TILE_WINDOW_WIDTH)] = colour
|
self.sprite_buffer[real_px_x + (real_px_y * TILE_WINDOW_WIDTH)] = colour
|
||||||
.rgb_bytes(cgb_data.map(|v| (v, attributes.palette)))
|
.rgb_bytes(cgb_data.map(|v| (v, attributes.palette)), is_cgb_mode)
|
||||||
.into();
|
.into();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,7 +138,11 @@ fn rgb_from_bytes(bytes: u16) -> Colour {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ColourInner {
|
impl ColourInner {
|
||||||
pub(super) fn rgb_bytes(&self, cgb_data: Option<(CgbPalette, u8)>) -> Colour {
|
pub(super) fn rgb_bytes(
|
||||||
|
&self,
|
||||||
|
cgb_data: Option<(CgbPalette, u8)>,
|
||||||
|
is_cgb_mode: bool,
|
||||||
|
) -> Colour {
|
||||||
if let Some((cgb_palette, pallete_num)) = cgb_data {
|
if let Some((cgb_palette, pallete_num)) = cgb_data {
|
||||||
if *self == ColourInner::Error {
|
if *self == ColourInner::Error {
|
||||||
return Colour(0xFF, 0, 0);
|
return Colour(0xFF, 0, 0);
|
||||||
|
@ -152,7 +156,15 @@ impl ColourInner {
|
||||||
ColourInner::One => Colour(0xAA, 0xAA, 0xAA),
|
ColourInner::One => Colour(0xAA, 0xAA, 0xAA),
|
||||||
ColourInner::Two => Colour(0x55, 0x55, 0x55),
|
ColourInner::Two => Colour(0x55, 0x55, 0x55),
|
||||||
ColourInner::Three => Colour(0x00, 0x00, 0x00),
|
ColourInner::Three => Colour(0x00, 0x00, 0x00),
|
||||||
ColourInner::Error => Colour(0xFF, 0x00, 0x00),
|
ColourInner::Error => {
|
||||||
|
if cfg!(debug_assertions) {
|
||||||
|
Colour(0xFF, 0x00, 0x00)
|
||||||
|
} else if is_cgb_mode {
|
||||||
|
rgb_from_bytes(0xFFFF)
|
||||||
|
} else {
|
||||||
|
Colour(0xFF, 0xFF, 0xFF)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue