mirror of
https://github.com/86Box/86Box.git
synced 2026-02-24 02:18:20 -07:00
fix nv3_render_to_chroma
This commit is contained in:
@@ -133,8 +133,7 @@ void nv3_render_blit_screen2screen(nv3_grobj_t grobj)
|
||||
if ((grobj.grobj_0 >> NV3_PGRAPH_CONTEXT_SWITCH_DST_BUFFER1_ENABLED) & 0x01) dst_buffer = 1;
|
||||
if ((grobj.grobj_0 >> NV3_PGRAPH_CONTEXT_SWITCH_DST_BUFFER2_ENABLED) & 0x01) dst_buffer = 2;
|
||||
if ((grobj.grobj_0 >> NV3_PGRAPH_CONTEXT_SWITCH_DST_BUFFER3_ENABLED) & 0x01) dst_buffer = 3;
|
||||
|
||||
bool cross_buffer_blit = (nv3->pgraph.boffset[src_buffer] != nv3->pgraph.boffset[dst_buffer]);
|
||||
|
||||
|
||||
nv3_coord_16_t old_position = nv3->pgraph.blit.point_in;
|
||||
nv3_coord_16_t new_position = nv3->pgraph.blit.point_out;
|
||||
@@ -160,7 +159,7 @@ void nv3_render_blit_screen2screen(nv3_grobj_t grobj)
|
||||
{
|
||||
buf_position = (nv3->pgraph.blit.size.x * y);
|
||||
/* shouldn't matter in non-wtf mode */
|
||||
vram_position = nv3_render_get_vram_address_for_buffer(old_position, src_buffer);
|
||||
vram_position = nv3_render_get_vram_address_for_buffer(old_position, dst_buffer);
|
||||
|
||||
memcpy(&nv3_s2sb_line_buffer[buf_position], &nv3->nvbase.svga.vram[vram_position], size_x);
|
||||
old_position.y++;
|
||||
@@ -171,7 +170,7 @@ void nv3_render_blit_screen2screen(nv3_grobj_t grobj)
|
||||
for (int32_t y = 0; y < nv3->pgraph.blit.size.y; y++)
|
||||
{
|
||||
buf_position = (nv3->pgraph.blit.size.x * y);
|
||||
vram_position = nv3_render_get_vram_address_for_buffer(new_position, dst_buffer);
|
||||
vram_position = nv3_render_get_vram_address_for_buffer(new_position, src_buffer);
|
||||
|
||||
memcpy(&nv3->nvbase.svga.vram[vram_position], &nv3_s2sb_line_buffer[buf_position], size_x);
|
||||
new_position.y++;
|
||||
|
||||
@@ -187,7 +187,7 @@ bool nv3_render_chroma_test(uint32_t color, nv3_grobj_t grobj)
|
||||
uint32_t nv3_render_to_chroma(nv3_color_expanded_t expanded)
|
||||
{
|
||||
// convert the alpha to 1 bit. then return packed rgb10
|
||||
return !!expanded.a | (expanded.r << 30) | (expanded.b << 20) | (expanded.b << 10);
|
||||
return !!expanded.a | (expanded.r << 30) | (expanded.g << 20) | (expanded.b << 10);
|
||||
}
|
||||
|
||||
/* Get a colour for a palette index. (The colours are 24 bit RGB888 with a 0xFF alpha added for some purposes.) */
|
||||
@@ -611,6 +611,8 @@ void nv3_render_current_bpp()
|
||||
+ (nv3->nvbase.svga.crtc[NV3_CRTC_REGISTER_STARTADDR_HIGH] << 8)
|
||||
+ nv3->nvbase.svga.crtc[NV3_CRTC_REGISTER_STARTADDR_LOW];
|
||||
|
||||
//uint32_t dba = 1920000;
|
||||
|
||||
nv3_coord_16_t screen_size = {0};
|
||||
screen_size.x = nv3->nvbase.svga.hdisp;
|
||||
screen_size.y = nv3->nvbase.svga.dispend;
|
||||
|
||||
Reference in New Issue
Block a user