1 |
|
/* |
2 |
|
* video_beos.cpp - Video/graphics emulation, BeOS specific things |
3 |
|
* |
4 |
< |
* SheepShaver (C) 1997-2002 Marc Hellwig and Christian Bauer |
4 |
> |
* SheepShaver (C) 1997-2008 Marc Hellwig and Christian Bauer |
5 |
|
* |
6 |
|
* This program is free software; you can redistribute it and/or modify |
7 |
|
* it under the terms of the GNU General Public License as published by |
561 |
|
p->src_row_bytes > 0 && ((uint32 *)p)[0x15c >> 2] > 0) { |
562 |
|
|
563 |
|
// Yes, set function pointer |
564 |
< |
p->draw_proc = accl_bitblt; |
564 |
> |
p->draw_proc = (uint32)accl_bitblt; |
565 |
|
return true; |
566 |
|
} |
567 |
|
return false; |
629 |
|
if (p->transfer_mode == 8) { |
630 |
|
// Fill |
631 |
|
if (p->dest_pixel_size == 8 && fillrect8_hook != NULL) { |
632 |
< |
p->draw_proc = accl_fillrect8; |
632 |
> |
p->draw_proc = (uint32)accl_fillrect8; |
633 |
|
return true; |
634 |
|
} else if (p->dest_pixel_size == 32 && fillrect32_hook != NULL) { |
635 |
< |
p->draw_proc = accl_fillrect32; |
635 |
> |
p->draw_proc = (uint32)accl_fillrect32; |
636 |
|
return true; |
637 |
|
} |
638 |
|
} else if (p->transfer_mode == 10 && invrect_hook != NULL) { |
639 |
|
// Invert |
640 |
< |
p->draw_proc = accl_invrect; |
640 |
> |
p->draw_proc = (uint32)accl_invrect; |
641 |
|
return true; |
642 |
|
} |
643 |
|
} |
664 |
|
printf(" val5 %08x\n", ((uint32 *)p)[0x160 >> 2]); |
665 |
|
printf(" val6 %08x\n", ((uint32 *)p)[0x1b4 >> 2]); |
666 |
|
printf(" val7 %08x\n", ((uint32 *)p)[0x284 >> 2]); |
667 |
< |
p->draw_proc = do_nothing; |
667 |
> |
p->draw_proc = (uint32)do_nothing; |
668 |
|
return true; |
669 |
|
} |
670 |
< |
static struct accl_hook_info foobar_hook_info = {accl_foobar_hook, accl_sync_hook, 6}; |
670 |
> |
static struct accl_hook_info foobar_hook_info = {(uint32)accl_foobar_hook, (uint32)accl_sync_hook, 6}; |
671 |
|
*/ |
672 |
|
|
673 |
|
// Wait for graphics operation to finish |
679 |
|
return true; |
680 |
|
} |
681 |
|
|
682 |
< |
static struct accl_hook_info bitblt_hook_info = {accl_bitblt_hook, accl_sync_hook, ACCL_BITBLT}; |
683 |
< |
static struct accl_hook_info fillrect_hook_info = {accl_fillrect_hook, accl_sync_hook, ACCL_FILLRECT}; |
682 |
> |
static struct accl_hook_info bitblt_hook_info = {(uint32)accl_bitblt_hook, (uint32)accl_sync_hook, ACCL_BITBLT}; |
683 |
> |
static struct accl_hook_info fillrect_hook_info = {(uint32)accl_fillrect_hook, (uint32)accl_sync_hook, ACCL_FILLRECT}; |
684 |
|
|
685 |
|
void VideoInstallAccel(void) |
686 |
|
{ |
687 |
|
// Install acceleration hooks |
688 |
|
if (PrefsFindBool("gfxaccel")) { |
689 |
|
D(bug("Video: Installing acceleration hooks\n")); |
690 |
< |
NQDMisc(6, &bitblt_hook_info); |
691 |
< |
NQDMisc(6, &fillrect_hook_info); |
690 |
> |
NQDMisc(6, (uintptr)&bitblt_hook_info); |
691 |
> |
NQDMisc(6, (uintptr)&fillrect_hook_info); |
692 |
|
} |
693 |
|
} |
694 |
|
|
759 |
|
|
760 |
|
|
761 |
|
/* |
762 |
+ |
* Can we set the MacOS cursor image into the window? |
763 |
+ |
*/ |
764 |
+ |
|
765 |
+ |
bool video_can_change_cursor(void) |
766 |
+ |
{ |
767 |
+ |
return (display_type != DIS_SCREEN); |
768 |
+ |
} |
769 |
+ |
|
770 |
+ |
|
771 |
+ |
/* |
772 |
|
* Set cursor image for window |
773 |
|
*/ |
774 |
|
|
776 |
|
{ |
777 |
|
the_window->cursor_changed = true; // Inform window (don't set cursor directly because this may run at interrupt (i.e. signal handler) time) |
778 |
|
} |
779 |
+ |
|
780 |
+ |
|
781 |
+ |
/* |
782 |
+ |
* Record dirty area from NQD |
783 |
+ |
*/ |
784 |
+ |
|
785 |
+ |
void video_set_dirty_area(int x, int y, int w, int h) |
786 |
+ |
{ |
787 |
+ |
} |