Files
akbasic/docs/images/circle.png

16 lines
1.8 KiB
Plaintext
Raw Normal View History

Generate the documentation's figures from the listings they illustrate Chapters 6 and 8 described what a verb draws in prose. Eight figures now show it, and each one is produced by running the BASIC listing printed immediately above it -- so a picture cannot drift away from the code beside it, which is the way a screenshot goes wrong and the way nothing notices. tools/screenshot.c is a second SDL host, much smaller than the frontend: dummy video driver, software renderer, run to completion, read the target back, write a PNG. It draws no text layer on purpose, so a READY in the corner is not noise in a figure about BOX and no font has to be resolved. tools/docs_screenshots.sh reads the new screenshot=NAME fence tag straight out of the markdown. size=WxH is the second tag, and SCALE's figure uses it: the point being made is a 320x200 listing filling a larger window, which cannot be made on a 320x200 surface. Two gates, answering different questions. docs_examples fails a tagged block with no image, in both configurations, so a figure cannot be added and forgotten. docs_screenshots -- a CTest, AKGL build only -- re-renders every figure and compares byte for byte, so a listing edited without regenerating fails. Only the second catches a stale picture. The PNGs are checked in because a reader on the forge has no build tree, and docs/images/README.md says loudly that they are generated. Regenerating is never part of a build: the target is run deliberately, so a make cannot put eight binary diffs in front of whoever ran it. Drawing the BOX figure caught a defect in TODO.md itself. Deviation 16 claimed in bold that BOX fills on a negative angle while its own paragraph said the fill was filed rather than implemented. BOX cannot fill, and filled_rect is reached by no verb as a result. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-01 07:37:04 -04:00
<EFBFBD>PNG

IHDR@<00>f<><66><06>IDATx<54><78><EFBFBD>;z<>H<14>Q<EFBFBD>߬H<DFAC>C<EFBFBD>Z<EFBFBD>r<EFBFBD>A<EFBFBD>,<2C><>נ\ P<><50><19>4l D<><14><><DDAA>xFD_T<5F><54><EFBFBD><EFBFBD><EFBFBD>(s7<73>jz?=<3D><EFBFBD><1F><>ʿЇ|<7C>ץ<EFBFBD>ҽ<EFBFBD>_hG<68><47><EFBFBD>:F<><46><EFBFBD><EFBFBD>O<EFBFBD>U<EFBFBD><55>Z/ <0A> ҟ <20><01>ؙ<><D899><04><13>'<27>/I<><1B><18>@<40><12><> T<>^<03><><07>S<EFBFBD><53><EFBFBD>f!<21>V~<7E><><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD><38>K<03>)A<><41><17><><EFBFBD>2<>,C<><43>e<EFBFBD><65><EFBFBD>s<EFBFBD><73> <0A>;<3B>j<EFBFBD>=<3D><tx<74>ק<EFBFBD><0E>gk<67>"<22><><EFBFBD><EFBFBD>ۧZC^<5E><><EFBFBD>N<1E><><EFBFBD>X<><58><EFBFBD>tX<74>'<27><>g<EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>0|<7C><>p<1D><><EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD><EFBFBD>KP_E<13><>=<3D>i<1A><>WY<57>?}^<5E><>ܘ<EFBFBD><DC98><EFBFBD>s^<5E><>27q<37>m*<1D><><EFBFBD>T<EFBFBD><54>A<EFBFBD>k<EFBFBD>1<EFBFBD>Ch8I<38>{I<>9t<><74>#J<><4A>=R<>%~:#;<3B>-<2D><<3C><><EFBFBD><EFBFBD>&ࠜsـ<73><D980><02>2<EFBFBD>P<EFBFBD>2<EFBFBD>bV5<0E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*<2A><><EFBFBD> 0H"<22> <0C><>I<EFBFBD><02>Ϣ<><CFA2>C<EFBFBD>\H<>#<23><><EFBFBD> <19><>v<11><>`)p<><70>ӓL<D393><14><>#<23>-<2D>m<EFBFBD>b<EFBFBD>'3j
\<5C><> e<>dD<64><44>I{<7B><><EFBFBD><EFBFBD>BO<42><02><>t<EFBFBD><74>3<EFBFBD>.<2E><>ioE<6F><45>)p<>K <20>-<2D><>uU<75>g<EFBFBD>ܤ<14>IJ{<7B><><EFBFBD><EFBFBD><02>
<EFBFBD><06>
<EFBFBD><EFBFBD>rSho#<23>%(<28><><EFBFBD><EFBFBD>|<7C>rx}z+<2B>06<><36><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)b <0B><><EFBFBD>Ζó<CE96><C3B3><EFBFBD><EFBFBD><EFBFBD>6E<36><45>8|<7C>8B<38><42><EFBFBD><EFBFBD><EFBFBD><EFBFBD>7ux<75><78><EFBFBD>r<EFBFBD><72>2v<32><76>~<7E><><EFBFBD><11><1B>
̿xcs<63><73><EFBFBD><EFBFBD>9?<3F>:p<>8B<03>(0<>G<><0E><0E>󳴽<EFBFBD><F3B3B4BD>F<>aF<>aȊO<C88A><4F><EFBFBD>5g><3E>V<EFBFBD><56><0E>Y<>w<><77><EFBFBD>S<EFBFBD><53><EFBFBD>@"F<>aF<><46><EFBFBD><EFBFBD><14>~<7E>?~<7E>ȅYq<59><71><EFBFBD>ؐ9E<39><45><EFBFBD><EFBFBD><1A><>~ⶢ<02>W<EFBFBD>m<14><><EFBFBD><EFBFBD>r<EFBFBD>¿<><04><1A><>X<EFBFBD><03>S>[6a <09>on<><6E>`<60>pp<70>7<EFBFBD>#40L<30><4C><EFBFBD><02>{}zc<13>-<1C>[<5B>;U:P<><50>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD>b<EFBFBD>
\W<>y><3E><<3C>
Mn<EFBFBD><EFBFBD><1D><><EFBFBD>0<EFBFBD><30>&<26><>OR
\K<>IFLO<1A><>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><02><><33>8w3<>ÅzP O.d<><64><14>D<EFBFBD><44><EFBFBD>K<>؄<EFBFBD><D884>a<EFBFBD>F'<27>0<1D><>G
|<7C>ع<EFBFBD><D8B9>,<<3C><><EFBFBD><EFBFBD><03>Mr<4D><72>J~<7E><><EFBFBD><EFBFBD><><CEB8>7<EFBFBD><37>s0N"<22><>6+<2B><08>`5<>h<EFBFBD> +栨<>.<2E><EFBFBD>h<EFBFBD>O<EFBFBD>0<EFBFBD><30>9<EFBFBD>(x:#<23><18>sF <0B><18>D@G<>N<><4E>n0<6E>!<21>(<28><62>X<EFBFBD><58>w%<25><><EFBFBD><EFBFBD><EFBFBD> <0C>D<EFBFBD><19><><EFBFBD><EFBFBD><<3C><><1A><>d<EFBFBD>_<10>m<1A><>F<EFBFBD><46><EFBFBD>P<EFBFBD><50><EFBFBD>e~<7E>=<3D>u<1E><>ZB<5A>#<23><><EFBFBD><EFBFBD>X.<2E><10><><EFBFBD>gu<67><EFBFBD>k] <<3C><><EFBFBD> <09><1F>/<2F><><EFBFBD><05>R<EFBFBD>x<EFBFBD>v<EFBFBD>kC<6B><43><EFBFBD><EFBFBD>3
<<3C>}<13>*ʹ<><CDB4><EFBFBD><EFBFBD>6<EFBFBD><36><EFBFBD><EFBFBD><1F>{fL<66>gI2<49><32>i<EFBFBD><69><EFBFBD>[<5B>N*q<><va<76>@dgq<><71><01>{?=<3D>e<EFBFBD>oE<6F>-65<36>Y<08><>t<EFBFBD><74>/<1E>F<EFBFBD><06><> <0C>"<22><> ]*<2A>U<EFBFBD>n<04>< <20><>= xI@hA:<13>2I<03>Cu<11>ȟ<EFBFBD>.<2E>.R<>3<><33>B<EFBFBD><01>^<5E><>1J ^<5E>}<7D><>?<03>s+<2B>mKo<4B>( ?<3F>ߏ<EFBFBD> <04>.H^4P[<5B>"|k<><6B><01>F<EFBFBD>aF<>\<5C><>XH<58>u؁a<18><1C><><EFBFBD>C<EFBFBD><1D><1C>~<7E>5<00><>$<24><><EFBFBD>{<7B><>۸e<DBB8>m=<3D><15>;<3B>ᒀO<E19280>s<EFBFBD><73>6`<60>&<26><>;<3B> ȐpϷ<07>4M
<˲N<CBB2><4E>ngʵZXK<1A>t-8ʞ<38><CA9E><EFBFBD><EFBFBD>,v<>?<3F><02><10><07><10> 
$ԫxS<78><53><EFBFBD><EFBFBD><EFBFBD>n<EFBFBD>\0<><30><EFBFBD>ߧ<EFBFBD><02><><EFBFBD><EFBFBD>Xn<58>n<EFBFBD><08>af<><66><EFBFBD>_<<02><1F><><EFBFBD><EFBFBD><EFBFBD><0F><><10>E;<3B><><06><>t<15><>H<1B><>>
DH<44><48> <0B>ۀ<EFBFBD><DB80><02>P<EFBFBD><50>ӍA <0B><><EFBFBD>ݷ4h<34>5V;<3B><1E><>?<3F>9xf <0B>Y<EFBFBD><59><EFBFBD>_<EFBFBD><5F><EFBFBD>e_s<5F><73><EFBFBD>E<EFBFBD><02>Qf<1B>oe<6F><02>%O<>"nق@2<><32><EFBFBD>\D<><44>J<EFBFBD><4A>* <20><>m<14>k7<6B>H<7F><48>`‡Q<C287>"<22><>ctUP<55>j<EFBFBD>m#<23><><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>e<EFBFBD>j<EFBFBD><1A>a<EFBFBD>Q<><51>6<EFBFBD>8n<38><6E>K_<4B>+
Q<><1F>?+R<>פ<EFBFBD>Q`[e<00>n<EFBFBD><03>̮<EFBFBD><CCAE>!<21>#IEND<4E>B`<60>