GetRPAttrs(rp, RPTAG_DrawBounds, &rect, TAG_DONE);
SetRPAttrs(rp, RPTAG_WriteMask, 0xff, TAG_DONE);
AddIntServer(INTB_COPER, &is);
ucl = AllocMem(sizeof(*ucl), MEMF_PUBLIC|MEMF_CLEAR); CINIT(ucl, 3); CWAIT(ucl, 0, 0); CMOVE(ucl, custom.intreq, INTF_SETCLR|INTF_COPER); CEND(ucl); Forbid(); vp->UCopIns = ucl; Permit(); RethinkDisplay();
dbi = AllocDBufInfo();
dbi->dbi_SafeMessage.mn_ReplyPort = mp;
BOOL safeToDraw = TRUE;
if (!safeToDraw) { while (!GetMsg(mp)) WaitPort(mp); safeToDraw = TRUE; }
if (safeToDraw) { ChangeVPBitMap(vp, bitmaps[frame], dbi); frame ^= 1; safeToDraw = FALSE; }
@Hexmage960, post #3
@witekkk, post #5
@Norbert, post #13
@Hexmage960, post #1
custom.bltcon0 = 0xca | SRCB | DEST;
custom.bltcon1 = ((srcX & 0xf) ? 16 - (srcX & 0xf) : 0) << BSHIFTSHIFT;
custom.bltbpt = srcPlanes[p] + srcY * srcBytesPerRow + ((srcX >> 4) << 1) + ((srcX & 0xf) ? 2 : 0);
custom.bltdpt = dstPlanes[p] + dstY * dstBytesPerRow + ((dstX >> 4) << 1);
custom.bltafwm = 0; custom.bltalwm = 0;
wordWidth = (bounds.MaxX - bounds.MinX + 16) >> 4; lineHeight = bounds.MaxY - bounds.MinY + 1;
custom.bltbmod = srcBytesPerRow - (wordWidth << 1); custom.bltdmod = dstBytesPerRow - (wordWidth << 1);
custom.bltsizv = lineHeight; custom.bltsizh = wordWidth;
custom.bltsize = (lineHeight << HSIZEBITS) | wordWidth;
#include <hardware/custom.h> #include <hardware/blit.h>
__far extern struct Custom custom;
@Hexmage960, post #15
@Hexmage960, post #16
@Norbert, post #17
A ja tylko nieśmiało zapytam czy taki kod to jest 100 procent "czysty kod AOS" czy jednak nie...
Może da się "banglanie po rejestrach" zastąpić funkcjami systemowymi ?
@Norbert, post #17
@Pinto, post #23
@pisklak, post #24
@pisklak, post #24
jak w ten sposób napisany kod będzie działał na AOS4/MOS/AROS
@asman, post #25
@Pinto, post #23
@Hexmage960, post #28
Łatanie funkcji systemowych nie zawsze jest możliwe (...)
@asman, post #29
Zawsze jest możliwe, trzeba tylko ruszyć głową trochę... Przecież zawsze możesz wywołać starą (nie spaczowaną) funkcję.
Istnieje wiele dróg a walka o wydajność powinna być na samym końcu, bo co Ci z tego że nawaliłeś super kodu jak produkt nie jest skończony.
Istnieje wiele dróg a walka o wydajność powinna być na samym końcu, bo co Ci z tego że nawaliłeś super kodu jak produkt nie jest skończony.