Mercurial > sdl-ios-xcode
comparison src/video/ataricommon/SDL_atarigl.c @ 1002:13aa96c76e86
Wrong pixel size for source buffer for old drivers
author | Patrice Mandin <patmandin@gmail.com> |
---|---|
date | Thu, 02 Dec 2004 13:45:29 +0000 |
parents | fbeac9312843 |
children | ece5ab8acd1c |
comparison
equal
deleted
inserted
replaced
1001:70bfe658442c | 1002:13aa96c76e86 |
---|---|
543 pixel_format = current->format; | 543 pixel_format = current->format; |
544 redmask = pixel_format->Rmask; | 544 redmask = pixel_format->Rmask; |
545 switch (pixel_format->BitsPerPixel) { | 545 switch (pixel_format->BitsPerPixel) { |
546 case 15: | 546 case 15: |
547 /* 15 bits unsupported */ | 547 /* 15 bits unsupported */ |
548 gl_pixelsize = 2; | |
549 if (tinygl_present) { | 548 if (tinygl_present) { |
549 gl_pixelsize = 3; | |
550 osmesa_format = VDI_RGB; | 550 osmesa_format = VDI_RGB; |
551 if (redmask == 31<<10) { | 551 if (redmask == 31<<10) { |
552 gl_copyshadow = CopyShadowRGBTo555; | 552 gl_copyshadow = CopyShadowRGBTo555; |
553 } else { | 553 } else { |
554 gl_copyshadow = CopyShadowRGBTo565; | 554 gl_copyshadow = CopyShadowRGBTo565; |
555 gl_convert = Convert565To555le; | 555 gl_convert = Convert565To555le; |
556 } | 556 } |
557 } else { | 557 } else { |
558 gl_pixelsize = 4; | |
558 osmesa_format = OSMESA_ARGB; | 559 osmesa_format = OSMESA_ARGB; |
559 if (redmask == 31<<10) { | 560 if (redmask == 31<<10) { |
560 gl_copyshadow = CopyShadow8888To555; | 561 gl_copyshadow = CopyShadow8888To555; |
561 } else { | 562 } else { |
562 gl_copyshadow = CopyShadow8888To565; | 563 gl_copyshadow = CopyShadow8888To565; |
564 } | 565 } |
565 } | 566 } |
566 break; | 567 break; |
567 case 16: | 568 case 16: |
568 /* 16 bits unsupported */ | 569 /* 16 bits unsupported */ |
569 gl_pixelsize = 2; | |
570 if (tinygl_present) { | 570 if (tinygl_present) { |
571 gl_pixelsize = 3; | |
571 osmesa_format = VDI_RGB; | 572 osmesa_format = VDI_RGB; |
572 gl_copyshadow = CopyShadowRGBTo565; | 573 gl_copyshadow = CopyShadowRGBTo565; |
573 if (redmask != 31<<11) { | 574 if (redmask != 31<<11) { |
574 /* 565, little endian, unsupported */ | 575 /* 565, little endian, unsupported */ |
575 gl_convert = Convert565le; | 576 gl_convert = Convert565le; |
576 } | 577 } |
577 } else { | 578 } else { |
579 gl_pixelsize = 4; | |
578 osmesa_format = OSMESA_ARGB; | 580 osmesa_format = OSMESA_ARGB; |
579 gl_copyshadow = CopyShadow8888To565; | 581 gl_copyshadow = CopyShadow8888To565; |
580 if (redmask != 31<<11) { | 582 if (redmask != 31<<11) { |
581 /* 565, little endian, unsupported */ | 583 /* 565, little endian, unsupported */ |
582 gl_convert = Convert565le; | 584 gl_convert = Convert565le; |
599 osmesa_format = OSMESA_BGR; | 601 osmesa_format = OSMESA_BGR; |
600 } | 602 } |
601 } | 603 } |
602 break; | 604 break; |
603 case 32: | 605 case 32: |
604 gl_pixelsize = 4; | |
605 if (tinygl_present) { | 606 if (tinygl_present) { |
607 gl_pixelsize = 3; | |
606 osmesa_format = VDI_RGB; | 608 osmesa_format = VDI_RGB; |
607 gl_copyshadow = CopyShadowRGBToARGB; | 609 gl_copyshadow = CopyShadowRGBToARGB; |
608 if (redmask == 255) { | 610 if (redmask == 255) { |
609 gl_convert = CopyShadowRGBToABGR; | 611 gl_convert = CopyShadowRGBToABGR; |
610 } else if (redmask == 255<<8) { | 612 } else if (redmask == 255<<8) { |
611 gl_convert = CopyShadowRGBToBGRA; | 613 gl_convert = CopyShadowRGBToBGRA; |
612 } else if (redmask == 255<<24) { | 614 } else if (redmask == 255<<24) { |
613 gl_convert = CopyShadowRGBToRGBA; | 615 gl_convert = CopyShadowRGBToRGBA; |
614 } | 616 } |
615 } else { | 617 } else { |
618 gl_pixelsize = 4; | |
616 gl_copyshadow = CopyShadowDirect; | 619 gl_copyshadow = CopyShadowDirect; |
617 if (redmask == 255<<16) { | 620 if (redmask == 255<<16) { |
618 osmesa_format = OSMESA_ARGB; | 621 osmesa_format = OSMESA_ARGB; |
619 } else if (redmask == 255<<8) { | 622 } else if (redmask == 255<<8) { |
620 osmesa_format = OSMESA_BGRA; | 623 osmesa_format = OSMESA_BGRA; |
696 int x,y, srcpitch, dstpitch; | 699 int x,y, srcpitch, dstpitch; |
697 Uint16 *dstline, *dstcol; | 700 Uint16 *dstline, *dstcol; |
698 Uint8 *srcline, *srccol; | 701 Uint8 *srcline, *srccol; |
699 | 702 |
700 srcline = (Uint8 *)gl_shadow; | 703 srcline = (Uint8 *)gl_shadow; |
701 srcpitch = surface->w *3; | 704 srcpitch = surface->w * gl_pixelsize; |
702 dstline = surface->pixels; | 705 dstline = surface->pixels; |
703 dstpitch = surface->pitch >>1; | 706 dstpitch = surface->pitch >>1; |
704 | 707 |
705 for (y=0; y<surface->h; y++) { | 708 for (y=0; y<surface->h; y++) { |
706 srccol = srcline; | 709 srccol = srcline; |
724 int x,y, srcpitch, dstpitch; | 727 int x,y, srcpitch, dstpitch; |
725 Uint16 *dstline, *dstcol; | 728 Uint16 *dstline, *dstcol; |
726 Uint8 *srcline, *srccol; | 729 Uint8 *srcline, *srccol; |
727 | 730 |
728 srcline = (Uint8 *)gl_shadow; | 731 srcline = (Uint8 *)gl_shadow; |
729 srcpitch = surface->w *3; | 732 srcpitch = surface->w * gl_pixelsize; |
730 dstline = surface->pixels; | 733 dstline = surface->pixels; |
731 dstpitch = surface->pitch >>1; | 734 dstpitch = surface->pitch >>1; |
732 | 735 |
733 for (y=0; y<surface->h; y++) { | 736 for (y=0; y<surface->h; y++) { |
734 srccol = srcline; | 737 srccol = srcline; |
753 int x,y, srcpitch, dstpitch; | 756 int x,y, srcpitch, dstpitch; |
754 Uint8 *dstline, *dstcol; | 757 Uint8 *dstline, *dstcol; |
755 Uint8 *srcline, *srccol; | 758 Uint8 *srcline, *srccol; |
756 | 759 |
757 srcline = (Uint8 *)gl_shadow; | 760 srcline = (Uint8 *)gl_shadow; |
758 srcpitch = surface->w *3; | 761 srcpitch = surface->w * gl_pixelsize; |
759 dstline = surface->pixels; | 762 dstline = surface->pixels; |
760 dstpitch = surface->pitch; | 763 dstpitch = surface->pitch; |
761 | 764 |
762 for (y=0; y<surface->h; y++) { | 765 for (y=0; y<surface->h; y++) { |
763 srccol = srcline; | 766 srccol = srcline; |
780 int x,y, srcpitch, dstpitch; | 783 int x,y, srcpitch, dstpitch; |
781 Uint32 *dstline, *dstcol; | 784 Uint32 *dstline, *dstcol; |
782 Uint8 *srcline, *srccol; | 785 Uint8 *srcline, *srccol; |
783 | 786 |
784 srcline = (Uint8 *)gl_shadow; | 787 srcline = (Uint8 *)gl_shadow; |
785 srcpitch = surface->w *3; | 788 srcpitch = surface->w * gl_pixelsize; |
786 dstline = surface->pixels; | 789 dstline = surface->pixels; |
787 dstpitch = surface->pitch >>2; | 790 dstpitch = surface->pitch >>2; |
788 | 791 |
789 for (y=0; y<surface->h; y++) { | 792 for (y=0; y<surface->h; y++) { |
790 srccol = srcline; | 793 srccol = srcline; |
810 int x,y, srcpitch, dstpitch; | 813 int x,y, srcpitch, dstpitch; |
811 Uint32 *dstline, *dstcol; | 814 Uint32 *dstline, *dstcol; |
812 Uint8 *srcline, *srccol; | 815 Uint8 *srcline, *srccol; |
813 | 816 |
814 srcline = (Uint8 *)gl_shadow; | 817 srcline = (Uint8 *)gl_shadow; |
815 srcpitch = surface->w *3; | 818 srcpitch = surface->w * gl_pixelsize; |
816 dstline = surface->pixels; | 819 dstline = surface->pixels; |
817 dstpitch = surface->pitch >>2; | 820 dstpitch = surface->pitch >>2; |
818 | 821 |
819 for (y=0; y<surface->h; y++) { | 822 for (y=0; y<surface->h; y++) { |
820 srccol = srcline; | 823 srccol = srcline; |
840 int x,y, srcpitch, dstpitch; | 843 int x,y, srcpitch, dstpitch; |
841 Uint32 *dstline, *dstcol; | 844 Uint32 *dstline, *dstcol; |
842 Uint8 *srcline, *srccol; | 845 Uint8 *srcline, *srccol; |
843 | 846 |
844 srcline = (Uint8 *)gl_shadow; | 847 srcline = (Uint8 *)gl_shadow; |
845 srcpitch = surface->w *3; | 848 srcpitch = surface->w * gl_pixelsize; |
846 dstline = surface->pixels; | 849 dstline = surface->pixels; |
847 dstpitch = surface->pitch >>2; | 850 dstpitch = surface->pitch >>2; |
848 | 851 |
849 for (y=0; y<surface->h; y++) { | 852 for (y=0; y<surface->h; y++) { |
850 srccol = srcline; | 853 srccol = srcline; |
870 int x,y, srcpitch, dstpitch; | 873 int x,y, srcpitch, dstpitch; |
871 Uint32 *dstline, *dstcol; | 874 Uint32 *dstline, *dstcol; |
872 Uint8 *srcline, *srccol; | 875 Uint8 *srcline, *srccol; |
873 | 876 |
874 srcline = (Uint8 *)gl_shadow; | 877 srcline = (Uint8 *)gl_shadow; |
875 srcpitch = surface->w *3; | 878 srcpitch = surface->w * gl_pixelsize; |
876 dstline = surface->pixels; | 879 dstline = surface->pixels; |
877 dstpitch = surface->pitch >>2; | 880 dstpitch = surface->pitch >>2; |
878 | 881 |
879 for (y=0; y<surface->h; y++) { | 882 for (y=0; y<surface->h; y++) { |
880 srccol = srcline; | 883 srccol = srcline; |
900 int x,y, srcpitch, dstpitch; | 903 int x,y, srcpitch, dstpitch; |
901 Uint16 *dstline, *dstcol; | 904 Uint16 *dstline, *dstcol; |
902 Uint32 *srcline, *srccol; | 905 Uint32 *srcline, *srccol; |
903 | 906 |
904 srcline = (Uint32 *)gl_shadow; | 907 srcline = (Uint32 *)gl_shadow; |
905 srcpitch = surface->w; | 908 srcpitch = (surface->w * gl_pixelsize) >>2; |
906 dstline = surface->pixels; | 909 dstline = surface->pixels; |
907 dstpitch = surface->pitch >>1; | 910 dstpitch = surface->pitch >>1; |
908 | 911 |
909 for (y=0; y<surface->h; y++) { | 912 for (y=0; y<surface->h; y++) { |
910 srccol = srcline; | 913 srccol = srcline; |
930 int x,y, srcpitch, dstpitch; | 933 int x,y, srcpitch, dstpitch; |
931 Uint16 *dstline, *dstcol; | 934 Uint16 *dstline, *dstcol; |
932 Uint32 *srcline, *srccol; | 935 Uint32 *srcline, *srccol; |
933 | 936 |
934 srcline = (Uint32 *)gl_shadow; | 937 srcline = (Uint32 *)gl_shadow; |
935 srcpitch = surface->w; | 938 srcpitch = (surface->w * gl_pixelsize) >> 2; |
936 dstline = surface->pixels; | 939 dstline = surface->pixels; |
937 dstpitch = surface->pitch >>1; | 940 dstpitch = surface->pitch >>1; |
938 | 941 |
939 for (y=0; y<surface->h; y++) { | 942 for (y=0; y<surface->h; y++) { |
940 srccol = srcline; | 943 srccol = srcline; |