void shade_blocks_unshaded_untextured_direct(psx_gpu_struct *psx_gpu);
#ifndef NEON_BUILD
-
+
void shade_blocks_unshaded_untextured_indirect(psx_gpu_struct *psx_gpu)
{
}
RENDER_FLAGS_TEXTURE_MAP);
render_state |=
(psx_gpu->render_state_base & ~RENDER_STATE_DITHER);
-
+
if((psx_gpu->render_state != render_state) ||
(psx_gpu->primitive_type != PRIMITIVE_TYPE_SPRITE))
{
void render_block_fill(psx_gpu_struct *psx_gpu, u32 color, u32 x, u32 y,
u32 width, u32 height)
{
+ if((width == 0) || (height == 0))
+ return;
+
+ flush_render_block_buffer(psx_gpu);
invalidate_texture_cache_region(psx_gpu, x, y, x + width - 1, y + height - 1);
#ifndef NEON_BUILD
u32 width, u32 height, u32 pitch)
{
u16 *vram_ptr = psx_gpu->vram_ptr + x + (y * 1024);
+ u32 mask_msb = psx_gpu->mask_msb;
u32 draw_x, draw_y;
+ if((width == 0) || (height == 0))
+ return;
+
+ flush_render_block_buffer(psx_gpu);
invalidate_texture_cache_region(psx_gpu, x, y, x + width - 1, y + height - 1);
for(draw_y = 0; draw_y < height; draw_y++)
{
for(draw_x = 0; draw_x < width; draw_x++)
{
- vram_ptr[draw_x] = source[draw_x];
+ vram_ptr[draw_x] = source[draw_x] | mask_msb;
}
source += pitch;
psx_gpu->mask_msb = 0;
+ psx_gpu->texture_window_x = 0;
+ psx_gpu->texture_window_y = 0;
+ psx_gpu->texture_mask_width = 0xFF;
+ psx_gpu->texture_mask_height = 0xFF;
+
memset(psx_gpu->vram_ptr, 0, sizeof(u16) * 1024 * 512);
initialize_reciprocal_table();