Commit Graph

862 Commits

Author SHA1 Message Date
adroitwhiz
2f14126d0b Add stage scale slider to playground 2019-03-24 02:50:11 -04:00
adroitwhiz
4e9223adc6 More fixes for loading in playground 2019-03-24 02:43:15 -04:00
adroitwhiz
5419d3d2c3 Use updated Scratch cat SVG in playground 2019-03-24 02:42:13 -04:00
adroitwhiz
d4df59b23b Fix playground not re-reading inputs after page reload 2019-03-24 02:38:05 -04:00
Christopher Willis-Ford
b304ea8fdf Make touching-color test more robust against GPU imprecision
Previously, the `color-touching-tests.sb2` test "touches a color that
doesn't actually exist right now" would use a sprite with ghost 50,
blended against another sprite, to create the color that "doesn't
actually exist" when the query sprite is skipped. Unfortunately the
blend result was near a bit-boundary and, depending on the specific
hardware used, that test could fail on the GPU. When the renderer uses
the CPU path this test works fine, though, so the existing problem went
unnoticed.

To fix the problem I changed the project to use ghost 30 instead, which
results in a color that is less near a bit boundary and is therefore
less likely to fail on specific hardware.

As an example of what was happening: the `touching color` block was
checking for `RGB(127,101,216)` with a mask of `RGB(0xF8,0xF8,0xF0)`. On
the CPU it would find `RGB(120,99,215)`, which is in range, but on some
GPUs the closest color it could find was `RGB(119,98,215)` which
mismatches on all four of the least significant bits -- one of which is
enabled in the mask.
2019-03-20 22:58:36 -07:00
Christopher Willis-Ford
f9428ee096 Run test projects in each GPU usage mode 2019-03-20 11:21:05 -07:00
Christopher Willis-Ford
9526612d79 Add touching-color test to verify stencil use 2019-03-20 11:21:05 -07:00
Christopher Willis-Ford
fb767b7553 Fix exception on first button click 2019-03-20 11:21:05 -07:00
Christopher Willis-Ford
e864018d87 Iterate drawables in the same order on CPU & GPU 2019-03-20 11:21:05 -07:00
Christopher Willis-Ford
e0b420a183 Use alpha test to avoid false touching-color 2019-03-20 11:21:05 -07:00
Christopher Willis-Ford
a24b853af6 Fix (x,y) => point[] conversion comments 2019-03-20 11:21:05 -07:00
Christopher Willis-Ford
73896b6f32 Fix direction for Y iteration on CPU path
For some reason the JavaScript engine insists on running the code
instead of doing what the comment says. I guess they should match.
2019-03-20 11:21:05 -07:00
Christopher Willis-Ford
80630a64da Adjust CPU isTouchingColor to match GPU results 2019-03-20 11:21:05 -07:00
Michael "Z" Goddard
e31934f6a9 update Skin textures with ImageData
When possible pass ImageData to texture creation and updating to help
remove chance of references that keep canvas and underlying data from
being garbage collected.
2019-03-19 17:52:21 -04:00
Katie Broida
8f007c0986 Only check local position against mosaic effect transform if it falls within the drawable's space 2019-03-18 15:25:40 -04:00
Paul Kaplan
3c79a5562e Merge pull request #421 from LLK/greenkeeper/scratch-svg-renderer-0.2.0-prerelease.20190304180800
Update scratch-svg-renderer to the latest version 🚀
2019-03-12 08:46:47 -04:00
greenkeeper[bot]
d59d45b6c8 fix(package): update scratch-svg-renderer to version 0.2.0-prerelease.20190304180800 2019-03-04 18:09:20 +00:00
Michael "Z" Goddard
19ee8e8eaa Merge pull request #415 from mzgoddard/drop-silhouette-alpha-buffer
Replace Silhouette._data with Silhouette._colorData
2019-03-04 12:56:58 -05:00
peabrainiac
fe01fea9d0 Update RenderWebGL.js 2019-03-03 18:49:04 +01:00
peabrainiac
5fb9346036 Update RenderWebGL.js 2019-03-03 18:42:10 +01:00
peabrainiac
3d373571f8 Update PenSkin.js 2019-03-03 18:40:09 +01:00
peabrainiac
152cf028cc Update Skin.js 2019-03-03 18:39:40 +01:00
peabrainiac
147b79d319 Update RenderWebGL.js 2019-03-03 18:12:13 +01:00
peabrainiac
f2a7085492 Update RenderWebGL.js 2019-03-03 17:58:12 +01:00
peabrainiac
996a1d6cf7 Update sprite.frag 2019-03-03 17:55:55 +01:00
peabrainiac
61bf4c84c3 Update RenderWebGL.js 2019-03-02 22:35:42 +01:00
peabrainiac
7628c1e7f9 Update RenderWebGL.js
Modified blend function in `_drawThese` to blend skins with premultiplied alpha correctly
2019-03-02 20:59:00 +01:00
peabrainiac
9f7bd971c9 Update PenSkin.js
changed clearColor on `_setCanvasSize`
2019-03-02 00:29:21 +01:00
peabrainiac
44d2fdeba8 Update PenSkin.js 2019-02-27 08:48:45 +01:00
Michael "Z" Goddard
e022222365 replace Silhouette._data with Silhouette._colorData
_colorData holds the same (and more) data that _data holds. Dropping
the _data array saves a lot of memory for a tiny performance
degradation in regards to touching object.
2019-02-22 17:08:53 -05:00
Michael "Z" Goddard
be5ab2e689 receive ImageData directly in Silhouette.update
Given ImageData we can skip drawing the input and getting image data.
This can help if update's color can also use the ImageData directly.
2019-02-22 17:08:04 -05:00
Chris Willis-Ford
c9f86ef53b Merge pull request #406 from cwillisf/playground-webpack
Add "query playground"
2019-02-14 10:33:31 -08:00
Katie Broida
4bf233ef36 Merge pull request #409 from ktbee/compat-bitmap-position-off-stage
Compatibility fix for bitmap position off stage
2019-02-13 13:29:26 -05:00
greenkeeper[bot]
13f7a1038d chore(package): update scratch-vm to version 0.2.0-prerelease.20190213162739 2019-02-13 16:42:45 +00:00
Karishma Chadha
253cbd019d Merge pull request #411 from LLK/greenkeeper/scratch-vm-0.2.0-prerelease.20190207224121
chore(package): update scratch-vm to version 0.2.0-prerelease.2019020…
2019-02-13 10:21:44 -05:00
Katie Broida
1f0f89920a Always use getAABB for bitmap skins when determining fenced position 2019-02-11 11:56:59 -05:00
Katie Broida
25df9f1ab7 Merge pull request #408 from ktbee/compat-integer-x-y-off-stage
Use Math.ceil and Math.floor to match Scratch 2 logic
2019-02-08 11:53:07 -05:00
greenkeeper[bot]
7680270f40 chore(package): update scratch-vm to version 0.2.0-prerelease.20190207224121
Closes #361
2019-02-07 22:43:47 +00:00
Chris Willis-Ford
c7b22b58c2 Merge pull request #410 from LLK/revert-407-coordinates-fixups
Revert "Adjust CPU isTouchingColor to match GPU results"
2019-02-07 13:11:57 -08:00
Chris Willis-Ford
f2d457a827 Revert "Adjust CPU isTouchingColor to match GPU results" 2019-02-07 13:00:15 -08:00
Chris Willis-Ford
e3c68e7122 Merge pull request #407 from cwillisf/coordinates-fixups
Adjust CPU isTouchingColor to match GPU results
2019-02-06 13:31:52 -08:00
Christopher Willis-Ford
e64d8727ec Fix (x,y) => point[] conversion comments 2019-02-06 11:08:17 -08:00
Christopher Willis-Ford
c390124df4 Convert 'force GPU' flag into 'useGpuMode' enum 2019-02-06 10:47:49 -08:00
Christopher Willis-Ford
8bd6241160 Fix direction for Y iteration on CPU path
For some reason the JavaScript engine insists on running the code
instead of doing what the comment says. I guess they should match.
2019-02-05 18:19:21 -08:00
Katie Broida
c8b9516219 Use Math.ceil and Math.floor to match Scratch 2 logic 2019-02-04 16:03:33 -05:00
Christopher Willis-Ford
1db67a474e Adjust CPU isTouchingColor to match GPU results 2019-02-04 11:20:59 -08:00
Christopher Willis-Ford
028b4eba3f Adjust cursor coordinates for devicePixelRatio 2019-01-30 16:37:59 -08:00
Christopher Willis-Ford
59cef02fdb Mark correct viewport corners with red dots 2019-01-30 15:58:51 -08:00
Christopher Willis-Ford
99d6e46f7e Adjust rendering for crisp pixels
- Adjust the rotation center of the cursor so that its single pixel is
  gets rendered onto a single stage pixel instead of being split across
  2-4 stage pixels.
- Add canvas CSS to make most browsers scale the canvases without
  interpolation.
2019-01-30 11:00:27 -08:00
Christopher Willis-Ford
992977d6c6 Add debug canvas support to isTouching CPU path 2019-01-30 11:00:14 -08:00