scratchfoundation / scratch-gui

Graphical User Interface for creating and running Scratch 3.0 projects.
https://scratchfoundation.github.io/scratch-gui/develop/
BSD 3-Clause "New" or "Revised" License
4.47k stars 3.57k forks source link

Custom Block Screen Refresh setting is ignored #2423

Open tomrow opened 6 years ago

tomrow commented 6 years ago

Expected Behavior

Text and border on this project should be drawn to the screen in one go

Actual Behavior

Border is drawn to the screen very slowly, possibly because the "run without screen refresh" checkbox is not heeded in Scratch 3 as opposed to Scratch 2

Steps to Reproduce

Open the linked project above

Operating System and Browser

Chrome on 64-bit Windows

tomrow commented 6 years ago

I have also noticed that the glyph case detection hack is not executed faithfully on Scratch 3 as opposed to Scratch 2, with all text characters being detected as uppercase. Scratch 3 image

Scratch 2 image

(The text in Scratch 2 is cyan due to a known bug in Stage3D and the white text in Scratch 3 is NOT a glitch)

TheLogFather commented 6 years ago

The problem is that stamping in Scratch 3 is still slow (when switching costume...?) It means the block that 'draws' the border takes way too long, and Scratch 3 forces a refresh every so often (so you see it 'building' the border in several stages).

Hopefully stamping performance will improve at some point...

TheLogFather commented 6 years ago

For reference, here's a project that demonstrates how much slower stamping can be in Scratch 3.

(Note that the original demonstration purpose of that project is now out of date, since Scratch 2 implemented better costume caching since I originally made the project – the timing difference between the two methods is now much smaller and more dependent on browser being used. Also, the current timer block bug in Scratch 2 means that always shows zero for the times.)

tomrow commented 6 years ago

Interesting. I also think that Scratch 1.4 may have a similar problem, when in presentation mode. When making a 3D stamp effect thing using brackets, since the end of one triggers a screen refresh.