Pages vues depuis 25/07/2007 : 23 745 247
Index du forum »» OS4 sur Classic »» AmigaOS4.1 sur WinUAE PPC
Hello
MAJ plus rapide de PatchCompositeTags pour jouer à Mace dans WinUAE-ppc
http://aminet.net/package/gfx/misc/PatchCompositeTags
Alain
@Crisot
utilisation de ton truc "pixels en 64 bits" pour les tracé de rectangles façon blit
Implémentation en pur C :
/*==================================================================================*/
union Rgba3DX2 {
struct Rgba3DX2L{
ULONG ARGB320,ARGB321;
} L;
struct Rgba3DX2D{
double ARGB64;
} D;
};
*==================================================================================*/
#define ASARGB64(ptr) (*((double*)ptr))
#define MLOOP(nbre) for(m=0;m<nbre;m++)
#define NLOOP4(nbre) for(n=0;n<nbre;n=n+4)
*==================================================================================*/
/* 2 X (read as 32 bits + write as 64 bits) = 4 pixels each time = 2 X Crisot method */
if((dx AND 3)==0) /* can do 4 pixels once */
{
MLOOP(dy)
{
u=(Edge1->u);
Src32V=&Src32[(v>>16)*sline];
NLOOP4(dx)
{
S.L.ARGB320=Src32V[(u>>16)];
u=u+du;
S.L.ARGB321=Src32V[(u>>16)];
u=u+du;
ASARGB64((&Dst32[n ]))=S.D.ARGB64;
S.L.ARGB320=Src32V[(u>>16)];
u=u+du;
S.L.ARGB321=Src32V[(u>>16)];
u=u+du;
ASARGB64((&Dst32[n+2]))=S.D.ARGB64;
}
Dst32=&Dst32[dline];
v=v+dv;
}
goto done;
}