uxn

Varvara Ordinator, written in ANSI C(SDL2)
git clone https://git.eamoncaddigan.net/uxn.git
Log | Files | Refs | README | LICENSE

commit a4bed43880bda2cc5ea44d699082de0109b95e06
parent 1574e5dcce85c1e4f745c757b54b1146d7dcd212
Author: DeltaF1 <delyaerricson@gmail.com>
Date:   Sun, 28 Nov 2021 23:58:15 -0500

Fix slowdown in draw-browser/clear

Make the clear routine only clear lines up to the screen width.
This fixes slowdown on wasted clearing of off-screen tiles.

TODO: Only clear/draw lines that will be on the screen.

Diffstat:
Mprojects/software/boot.tal | 11++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/projects/software/boot.tal b/projects/software/boot.tal @@ -5,8 +5,10 @@ %++ { ADD2 } %-- { SUB2 } %** { MUL2 } %// { DIV2 } %<< { LTH2 } %>> { GTH2 } %== { EQU2 } %!! { NEQ2 } +%8// { #03 SFT2 } %10** { #40 SFT2 } %10// { #04 SFT2 } +%MIN2 { LTH2k JMP SWP2 POP2 } %MOD { DIVk MUL SUB } %DEC { #01 - } %RTN { JMP2r } @@ -61,6 +63,10 @@ #0100 .Audio0/length DEO2 #dd .Audio0/volume DEO ( TODO: turn ON ) + ( determine max visible file length ) + .Screen/width DEI2 8// #00ff MIN2 NIP + ;draw-browser/clear-length STA + ( place ) #0088 .browser/x STZ2 #0010 .browser/y STZ2 @@ -290,7 +296,10 @@ RTN &clear ( -- ) .Screen/x DEI2k ( Stash the current x pos ) - #ff00 + + ( Clear the screen ) + ( Clear length gets set in init ) + LIT2 &clear-length 00 00 &clear-loop #00 .Screen/sprite DEO .Screen/y DEI2k #0008 ++ ROT DEO2