trunk/src/emu/video/stvvdp2.c
| r21052 | r21053 | |
| 2380 | 2380 | { |
| 2381 | 2381 | rectangle myclip; |
| 2382 | 2382 | |
| 2383 | | if(stv2_current_tilemap.window_control & 6) |
| 2384 | | popmessage("Window Enabled for Zoomed tiles"); |
| 2385 | | |
| 2386 | 2383 | if (!scalex || !scaley) return; |
| 2387 | 2384 | |
| 2388 | 2385 | if (gfx->has_pen_usage() && transparency == STV_TRANSPARENCY_PEN) |
| r21052 | r21053 | |
| 2492 | 2489 | int x, x_index = x_index_base; |
| 2493 | 2490 | for( x=sx; x<ex; x++ ) |
| 2494 | 2491 | { |
| 2495 | | dest[x] = pal[source[x_index>>16]]; |
| 2492 | if(stv_vdp2_window_process(x,y)) |
| 2493 | dest[x] = pal[source[x_index>>16]]; |
| 2496 | 2494 | x_index += dx; |
| 2497 | 2495 | } |
| 2498 | 2496 | |
| 2499 | 2497 | y_index += dy; |
| 2500 | 2498 | } |
| 2501 | | } |
| 2502 | | |
| 2503 | | /* case 1: STV_TRANSPARENCY_PEN */ |
| 2504 | | if (transparency == STV_TRANSPARENCY_PEN) |
| 2499 | } /* case 1: STV_TRANSPARENCY_PEN */ |
| 2500 | else if (transparency == STV_TRANSPARENCY_PEN) |
| 2505 | 2501 | { |
| 2506 | 2502 | for( y=sy; y<ey; y++ ) |
| 2507 | 2503 | { |
| r21052 | r21053 | |
| 2511 | 2507 | int x, x_index = x_index_base; |
| 2512 | 2508 | for( x=sx; x<ex; x++ ) |
| 2513 | 2509 | { |
| 2514 | | int c = source[x_index>>16]; |
| 2515 | | if( c != transparent_color ) dest[x] = pal[c]; |
| 2510 | if(stv_vdp2_window_process(x,y)) |
| 2511 | { |
| 2512 | int c = source[x_index>>16]; |
| 2513 | if( c != transparent_color ) dest[x] = pal[c]; |
| 2514 | } |
| 2516 | 2515 | x_index += dx; |
| 2517 | 2516 | } |
| 2518 | 2517 | |
| 2519 | 2518 | y_index += dy; |
| 2520 | 2519 | } |
| 2521 | | } |
| 2522 | | |
| 2523 | | /* case 6: STV_TRANSPARENCY_ALPHA */ |
| 2524 | | if (transparency == STV_TRANSPARENCY_ALPHA) |
| 2520 | } /* case 6: STV_TRANSPARENCY_ALPHA */ |
| 2521 | else if (transparency == STV_TRANSPARENCY_ALPHA) |
| 2525 | 2522 | { |
| 2526 | 2523 | for( y=sy; y<ey; y++ ) |
| 2527 | 2524 | { |
| r21052 | r21053 | |
| 2531 | 2528 | int x, x_index = x_index_base; |
| 2532 | 2529 | for( x=sx; x<ex; x++ ) |
| 2533 | 2530 | { |
| 2534 | | int c = source[x_index>>16]; |
| 2535 | | if( c != transparent_color ) dest[x] = alpha_blend_r32(dest[x], pal[c], alpha); |
| 2531 | if(stv_vdp2_window_process(x,y)) |
| 2532 | { |
| 2533 | int c = source[x_index>>16]; |
| 2534 | if( c != transparent_color ) dest[x] = alpha_blend_r32(dest[x], pal[c], alpha); |
| 2535 | } |
| 2536 | 2536 | x_index += dx; |
| 2537 | 2537 | } |
| 2538 | 2538 | |
| 2539 | 2539 | y_index += dy; |
| 2540 | 2540 | } |
| 2541 | | } |
| 2542 | | |
| 2543 | | /* case : STV_TRANSPARENCY_ADD_BLEND */ |
| 2544 | | if (transparency == STV_TRANSPARENCY_ADD_BLEND ) |
| 2541 | } /* case : STV_TRANSPARENCY_ADD_BLEND */ |
| 2542 | else if (transparency == STV_TRANSPARENCY_ADD_BLEND ) |
| 2545 | 2543 | { |
| 2546 | 2544 | for( y=sy; y<ey; y++ ) |
| 2547 | 2545 | { |
| r21052 | r21053 | |
| 2551 | 2549 | int x, x_index = x_index_base; |
| 2552 | 2550 | for( x=sx; x<ex; x++ ) |
| 2553 | 2551 | { |
| 2554 | | int c = source[x_index>>16]; |
| 2555 | | if( c != transparent_color ) dest[x] = stv_add_blend(dest[x],pal[c]); |
| 2552 | if(stv_vdp2_window_process(x,y)) |
| 2553 | { |
| 2554 | int c = source[x_index>>16]; |
| 2555 | if( c != transparent_color ) dest[x] = stv_add_blend(dest[x],pal[c]); |
| 2556 | } |
| 2556 | 2557 | x_index += dx; |
| 2557 | 2558 | } |
| 2558 | 2559 | |
| 2559 | 2560 | y_index += dy; |
| 2560 | 2561 | } |
| 2561 | 2562 | } |
| 2562 | | |
| 2563 | 2563 | } |
| 2564 | 2564 | } |
| 2565 | 2565 | } |
| 2566 | | |
| 2567 | 2566 | } |
| 2568 | 2567 | |
| 2569 | 2568 | void saturn_state::stv_vdp2_drawgfxzoom_rgb555( |