💾 Archived View for cugi.ie › aminet › 1685577666.gmi captured on 2023-06-14 at 14:23:45. Gemini links have been rewritten to link to archived content

View Raw

More Information

-=-=-=-=-=-=-

Clipped Chunky Line & Circlefunctions

   Author:       Holger.Hippenstiel AT gmx.de
   Uploader:     Holger Hippenstiel gmx de
   Type:         dev/asm
   Version:      1.1
   Replaces:     dev/asm/ChunkyFunctions.lha
   Architecture: generic
   Distribution: Aminet
   Kurz:         Geklippte Linien & Kreisfunktionen
   Date:         2023-05-31
   Readme:       http://aminet.net/dev/asm/ChunkyFunctions.readme
   Downloads:    91

http://aminet.net/dev/asm/ChunkyFunctions.lha

Update: 8 new variants for really big circles which need full clipping

Had bug in variant-checking when clipping MinX&MinY (only if both X and Y

would go negative), most variants in that case wouldn't be used.

There was one missing clipping for MaxY in a loop.

Included FullChunkyCircle.s if you just want a fast & small-circleroutine

without all the bells & whistles. :)

I put some more comments in ClippedChunkyCircle to make it easier to see

what part does what.

The ClipLine-function could also be used for blitter-lines.

I've included a ChunkyExample executable, which draws lines on top and

circles on the bottom half, you need the rtgmaster.library and a display

with chunky pixels (CybergraphX, Picasso96, and so on).

http://aminet.net/driver/video/rtgmaster_user.lha

After checking the rtgmaster.lib and doing a fix for it:

http://aminet.net/driver/video/rtgmaster_asmfix.lha

I noticed the functions it got where quiet slow, here are some functions

i wrote somewhere around 1994-95 and where used for example for EGSTurbo.

I've tuned them a bit for speed & high-resolution compability.

The Functions are:

in ChunkyMultab.s

MakeChunkyMultab *** creates the Multiplication Table for the Circle-Functions

Parameter: d0=pixelwidth

in ClippedChunkyCircle.s

ClippedChunkyCircle *** Draws a clipped circle

Parameter: a0=ChunkyScreen, d0=X, d1=Y, d3=Size (max 3840), d4=Color,

d5=pixelwidth, d6=pixelheight

Included special loops which for example only clip MinY & MinX, and if

both are negative will only try to draw lower right quadrant.

Total of draw-loops is 43 variants.

in ChunkyCircleQuadrant.s

ChunkyCircleQuadrant *** Draw a quadrant of a circle

Paramter: a0=ChunkyScreen, d0=X, d1=Y, d2=Quadrants, d3=Size, d4=Color,

d5=pixelwidth

Quadrant: 1=top right, 2=bottom right, 4=bottom left, 8=top left

ofcourse you can combine them 1+2 = right half of a circle

Both ClippedChunkyCircle.s & ChunkyCircleQuadrant.s include ChunkyMultab.s,

so if you want both remove one include.

You have to call MakeChunkyMultab width screenwidth in d0 once before using a

Circle-Function and when the screenwidth changes.

in ChunkyLine.s

ChunkyRectangle

Paramters: a0=ChunkyScreen, d0=x0, d1=y0, d2=x1, d3=y1, d4=Color,

d5=pixelwidth, d6=pixelheight

(without clipping pixelheight is not needed)

ChunkyLine

Paramters: a0=ChunkyScreen, d0=x0, d1=y0, d2=x1, d3=y1, d4=Color,

d5=pixelwidth, d6=pixelheight

(without clipping pixelheight is not needed)

if ChunkyLine.s defines:

CLIPLINES SET 1

then ClipLine.s will be included and called.

in ClipLine.s

ClipLine

Paramters: d0=x0, d1=y0, d2=x1, d3=y1, d5=pixelwidth, d6=pixelheight

Clips x0,y0,x1&y1 to the screenborders.

returns zero when the line should be drawn. i.e:

bsr ClipLine

bne.b SkipThisLine

...

Would be nice if you mention me when using these functions.

Check out my other tools:

http://aminet.net/search?readme=%22Holger+Hippenstiel%22&sort=date&ord=DESC

DISCLAIMER

This software is subject to the "Standard Amiga FD-Software Copyright

Note". It is Giftware as defined in paragraph 4g. If you like it and

use it regulary, please send me a small gift.

For more information please read "AFD-COPYRIGHT".

Diese Software unterliegt der "Standard Amiga FD-Software Copyright

Note". Sie ist Giftware wie definiert in Absatz 4g. Falls du sie magst

und regelmaessig benutzt, sende bitte ein kleines Geschenk.

Fuer mehr Informationen lies bitte "AFD-COPYRIGHT".

(/pub/aminet/docs/misc/AFD-FilesV-XX.lha V=Version,XX=Languages)

AUTHOR

Please send comments, bug-reports or small gifts or Paypal me to:

Holger.Hippenstiel AT gmx.de

Furtwanger Str. 14

71034 Böblingen

Germany

Contents of dev/asm/ChunkyFunctions.lha

PERMISSION  UID  GID    PACKED    SIZE  RATIO METHOD CRC     STAMP     NAME
---------- ----------- ------- ------- ------ ---------- ------------ ----------
[unknown]                 1472   11090  13.3% -lh5- 33dd May 22 20:51 ChunkyCircleQuadrant.s
[unknown]                 4420    5144  85.9% -lh5- 14cf May 29 06:41 ChunkyExample
[unknown]                 1892    4803  39.4% -lh5- 8497 May 29 06:47 ChunkyFunctions.readme
[unknown]                 1382    4413  31.3% -lh5- 9035 May 26 10:01 ChunkyLine.s
[unknown]                  431     926  46.5% -lh5- 336a May 22 20:51 ChunkyMultab.s
[unknown]                  737    2240  32.9% -lh5- fbce May 22 20:51 ClipLine.s
[unknown]                 8415   82767  10.2% -lh5- edc0 May 26 09:51 ClippedChunkyCircle.s
[unknown]                  634    1871  33.9% -lh5- 86e2 May 23 20:19 FullChunkyCircle.s
---------- ----------- ------- ------- ------ ---------- ------------ ----------
 Total         8 files   19383  113254  17.1%            Jun  1 00:01

Aminet © 1992-2023 Urban Müller and the Aminet team. Aminet contact address: <aminet aminet net>