Mike Welsh
1f85a779ac
Bitmap smoothing is only an option in SWFv8+
2019-08-29 14:01:59 -07:00
Nathan Adams
87e6b766c2
Use named functions for builtins
2019-08-28 21:43:20 -05:00
Nathan Adams
2378ea3881
Shuffled around some avm1 builtins & types
2019-08-28 21:43:20 -05:00
Nathan Adams
a74d1734af
Initial work on avm1 method calling, local and global variables.
...
This contains just enough AS1 support for early trivial loading screens to not crash (ie badgers badgers badgers)
2019-08-28 21:43:20 -05:00
Mike Welsh
f41470129d
desktop: Skip path on tessellation error
...
lyon vomits a lot on various tessellations. Previously this would
bail out immediately for the entire shape, resulting in missing art.
Now we just skip that particular path, and the rest of the shape
should get tessellated as normal.
2019-08-26 18:06:10 -07:00
Mike Welsh
0b72ad1c00
core: Fix text position with multiple text blocks
...
The text x position would not be remembered between text blocks,
so the positioning of such text would be incorrect. Now the x position
is properly advanced.
Fixes #42 .
2019-08-26 17:46:38 -07:00
Mike Welsh
6a5c5ab1df
chore: Add rustfmt.toml and rustfmt pass
2019-08-26 16:38:48 -07:00
Nathan Adams
89fee4c580
Ints are signed in avm1
2019-08-26 18:25:32 -05:00
Nathan Adams
06d9f39c0e
More verbose avm1 value conversion errors
2019-08-26 14:45:35 -05:00
Mike Welsh
3a795fff47
web: image-rendering: pixelated for nonsmoothed bitmaps
...
TODO: Firefox uses crisp-edges, Chrome uses pixelated. Clean this up
at some point.
Addresses #28 .
2019-08-24 10:59:56 -05:00
Mike Welsh
6499df988f
desktop: Respect bitmap smooth/repeat settings
...
Addresses #28 .
2019-08-24 10:59:34 -05:00
Mike Welsh
d9f70ddde8
core: GC trace through DisplayObject base
2019-08-22 23:28:51 -07:00
Mike Welsh
5998876271
core: Don't panic on missing characters in button
2019-08-22 21:54:00 -07:00
Mike Welsh
0214b3e447
core: Use matrix in DefineText ( fix #34 )
...
Text was not rendered in the correct position because it did not
use the matrix specified in the DefineText tag. I think this is an
extra Matrix used to adjust text alignment.
Fixes #34 .
2019-08-22 18:40:47 -07:00
Mike Welsh
324a410cb1
render: Properly render premultiplied alpha bitmaps
2019-08-22 15:24:50 -07:00
Mike Welsh
022a0746ca
web: Add hack for Firefox additive alpha cxforms
...
This hack removes additive alpha components from color transforms
on Firefox. See #38 .
2019-08-22 14:13:37 -07:00
Mike Welsh
c1b8978555
core: Add max frames-per-tick as sanity
...
Avoid running too many frames at once.
2019-08-22 13:31:24 -07:00
Mike Welsh
3933b00000
web: Use initial timestamp from requestAnimationFrame
...
Previously Performance.now() was used to grab the initial timestamp
for calculating dt in requestAnimationFrame. However, this doesn't
seem to be reliable and resulted in negative dt values in Chrome.
Now we just use an Option for the timestamp and initialize it to None.
The first animation callback will set the timestamp.
2019-08-22 13:28:06 -07:00
Mike Welsh
8117b0cfdc
avm1: Remove some debug spew
2019-08-22 10:24:38 -07:00
Mike Welsh
b49cce2a48
ci: Run core tests
2019-08-22 09:54:40 -07:00
Mike Welsh
7b6a3d525a
core: Single frame movieclips should stop
2019-08-22 09:54:40 -07:00
Mike Welsh
a220a98c5b
tests: Add looping clip test
2019-08-22 09:54:40 -07:00
Mike Welsh
b0eff353a9
tests: Add initial SWF tests
2019-08-22 09:54:40 -07:00
Mike Welsh
5fdc7168a7
web: Fix DefineBitsJPEG3 + alpha
...
DefineBitsJPEG3 tags also include a zlib-encoded alpha channel.
This wasn't working on web (it was trying to use the raw RBGA also
an image!) Now these are re-encoded to PNG.
Addresses #27 .
2019-08-20 16:23:46 -07:00
Mike Welsh
6277a5450b
docs: Fix link in CI badge
...
CI link was pointing to Travis instead of Circle!
2019-08-20 12:48:28 -07:00
Mike Welsh
d021b02e90
web: Disable alpha on canvas
2019-08-19 23:33:12 -07:00
Mike Welsh
dd3748a520
core: GC collect_debt each frame
2019-08-19 22:34:49 -07:00
Mike Welsh
9cbeacd7b2
core: Transform mouse coordinates from viewport to stage
2019-08-19 22:27:38 -07:00
Mike Welsh
637588fae5
core: Store view matrix in player
...
Player is now in charge of scaling/cropping/translating the content
to fit the viewport size supplied by the frontend.
Added backend::render::Letterbox, which stores the margin sizes
for letter/pillarboxing.
2019-08-19 22:27:38 -07:00
Mike Welsh
f3f4fa6179
web: Add mouse up/down/move handlers
2019-08-19 22:27:38 -07:00
Mike Welsh
8be9b9089b
avm1: Stub out StartDrag/EndDrag
2019-08-19 22:27:38 -07:00
Mike Welsh
ff74409d20
core: Tick audio backend each frame
2019-08-19 22:27:38 -07:00
Mike Welsh
7922aca921
core: Mouse pick in top-to-bottom order
2019-08-19 22:27:38 -07:00
Mike Welsh
59c9385cb7
core: Collect GC debt at the end of each frame
2019-08-19 22:27:38 -07:00
Mike Welsh
0143d9716e
core: Button work
2019-08-19 22:27:38 -07:00
Mike Welsh
91a0272773
avm1: Log errors/unimplemented actions
2019-08-19 22:27:38 -07:00
Mike Welsh
9d962fd634
core: Improve button support
2019-08-19 22:27:38 -07:00
Mike Welsh
d8ddf78bdc
avm1: Implement _rotation and improve SetProperty
...
Implement _rotation and add SetProperty/GetProperty for these
values.
2019-08-19 22:27:38 -07:00
Mike Welsh
017cd563dc
avm1: Implement ActionPush for constant pool vals
2019-08-19 22:27:38 -07:00
Mike Welsh
e890ad33e6
avm1: Allow String for ActionGotoFrame2
2019-08-19 22:27:38 -07:00
Mike Welsh
fe086c11ff
core: Store clip frame labels
...
Bump swf-rs revision to allow for read_frame_label calls.
Also fix read_place_object to take an explicit length.
2019-08-19 22:27:38 -07:00
Mike Welsh
7e1b1e0357
avm1: Adjust for Twips in GetProperty/SetProperty
2019-08-19 22:27:38 -07:00
Mike Welsh
6c923930e6
avm1: Stub out ActionSetProperty
...
Rough impl of ActionSetProperty action. Not all properties
implemented. Add DisplayObject::matrix_mut.
2019-08-19 22:27:38 -07:00
Mike Welsh
0ab20e01c1
Add dyn
2019-08-19 22:27:38 -07:00
Mike Welsh
20ec170552
avm1: Implement GetVariable/SetVariable
2019-08-19 22:27:38 -07:00
Mike Welsh
ecd9b18e90
core: Squelch warning in Button
2019-08-19 22:27:37 -07:00
Mike Welsh
1b86162bf1
avm1: Fix warning in SetTarget
2019-08-19 22:27:37 -07:00
Mike Welsh
49cc48d2d1
core: Run actions after a goto
2019-08-19 22:27:37 -07:00
Mike Welsh
ce606cece8
core: Re-enable AVM1
2019-08-19 22:27:37 -07:00
Mike Welsh
5bba546a53
core: Add BoundingBox calculations
...
TODO: Add dirty flag and cache matrices.
2019-08-19 17:29:55 -07:00