David Wendt
fbb818d22a
Fix the names of the JS parts of Ruffle.
2019-11-17 17:43:18 -05:00
David Wendt
485f166df3
Add data attributes to declaratively control Ruffle.
2019-11-17 17:43:18 -05:00
David Wendt
fe782e5db3
Create a third web target: "selfhosted".
...
Currently, selfhosted just omits some of the crazier interdictions.
2019-11-17 17:43:18 -05:00
Mike Welsh
e3d0d9031d
core: Handle empty JPEGTables tags ( fix #116 )
2019-11-11 17:08:08 -05:00
Mike Welsh
b343ba14a2
web: Implement event sound envelopes
2019-10-30 19:26:19 -07:00
Mike Welsh
158f2a6fa2
web: Use SeekSamples to account for MP3 encoder delay
2019-10-29 23:36:51 -07:00
Mike Welsh
f9b23c6e0c
web: Handle gaps between SoundStreamBlocks
2019-10-29 23:36:51 -07:00
Mike Welsh
1a7959b96d
audio: Initial syncing of stream sound to MovieClip timeline
2019-10-29 23:36:51 -07:00
Mike Welsh
f07dfb4eb6
web: Implement ADPCM stream sounds on web
2019-10-28 02:51:46 -07:00
Mike Welsh
eaea6aaf20
audio: Fix audio for ADPCM stream sounds
...
When a stream sound uses ADPCM compression, the ADPCM header is
included in each SoundStreamBlock (as opposed to stream sounds
in the other formats). This header wasn't being parsed, resulting
in corrupted audio (see https://homestarrunner.com/main12.swf ).
2019-10-28 02:51:46 -07:00
Mike Welsh
4aec120ffb
core: Add Bitmap display object
...
Converts the Bitmap character to a proper display object. This can
be instantiated directly in a PlaceObject tag in SWFv9 movies,
compared to the previous versions which indirectly references
bitmaps from Shape tags.
2019-10-11 16:33:58 -07:00
Mike Welsh
0506b7c566
web: Calculate bounds for text glyphs when not present
...
The text bounds fields for a DefineFont2/3 tag can be a bogus empty
rectangle, per the SWF spec. We must properly the bounds ourselves
to render properly on web.
2019-10-07 23:23:45 -07:00
Mike Welsh
c408f56e1a
web: Fix looping sounds not ending
2019-10-03 16:30:33 -07:00
Mike Welsh
c2ddb5a26f
web: Clamp stroke width to 1 pixel minimum
...
Many SWFs use "hairline" strokes which are 1 twip wide, but Flash
renders strokes with a minimum width of 1 pixel (20 twips).
SVG has no minimum, resulting in faint lines for the "hairline"
strokes. Clamp the minimum stroke width to 1 pixel to more closely
match the Flash Player.
2019-10-03 03:15:10 -07:00
Mike Welsh
c1f521cfba
web: Fix color transforms not working when canvas is reused
...
On the web demo, if you played two different SWFs, color transforms
would stop working because the color matrix SVG filter would be
created twice with the same ID. Now we properly remove the previous
filter.
2019-09-27 16:20:25 -07:00
Mike Welsh
fcfcf0407d
core: Fix stop sound events
2019-09-27 13:50:03 -07:00
Mike Welsh
9fc18fdb6a
web: Clean up web audio backend
...
Change naming to more closely match the desktop backend.
2019-09-27 13:50:03 -07:00
Mike Welsh
af163d9183
core: Support start, stop, event sounds in audio backend
...
Event sounds on the timeline in Flash have a "sync" setting,
which allows them to stop other sounds or only play if the
sound is not already playing.
2019-09-27 13:50:03 -07:00
Mike Welsh
547da84c9c
core: Add stop_all_sounds to audio backend
...
Implemented in web and desktop.
2019-09-19 00:47:05 -07:00
Mike Welsh
1f0e43c3bd
web: Support event sound looping and start/end points
2019-09-19 00:47:05 -07:00
Mike Welsh
e052a70a5a
desktop: Support looping and start/end points for event sounds
...
Renamed `AudioBackend::play_sound` to `start_sound`, and this
also takes a `SoundInfo` parameter with the event sound settings
from the SWF file.
Desktop now obeys the loop and start/end point settings. Envelopes
are still TODO.
2019-09-19 00:47:05 -07:00
Mike Welsh
9c8721c127
core: Drop rodio and use only cpal for audio backend
...
Drop the rodio dependency and directly use cpal for the audio
backend. Use the sample crate for audio mixing and resampling.
2019-09-19 00:47:05 -07:00
Mike Welsh
3b5820f365
webdemo: Add min-height to nav bar for Safari
2019-09-17 23:29:21 -07:00
Mike Welsh
82c1116c42
chore: cargo fmt
2019-09-16 20:37:11 -07:00
David Wendt
58ce10ea67
Support form submission from Flash.
2019-09-16 20:04:30 -07:00
David Wendt
e952d20976
Open the window asked for, if specified
2019-09-16 20:04:30 -07:00
David Wendt
0f9db1744b
Add a backend for controlling the enclosing web browser.
2019-09-16 20:04:30 -07:00
David Wendt
4502ad54c2
Allow dynamic interdiction to apply to object/embed tags directly
2019-09-14 15:15:26 -05:00
David Wendt
a942eb3ab2
Support data parameter for SWF url.
2019-09-14 15:15:26 -05:00
Mike Welsh
dbbeccaacd
web: More accurate radial gradients on canvas
2019-09-12 01:02:46 -07:00
David Wendt
84759f8cea
Fix our previous changes to the Ruffle core loader so that both the extension and demo work
2019-09-11 20:28:58 -04:00
Mike Welsh
8fcee704c0
chore: cargo fmt
2019-09-09 20:42:08 -05:00
Mike Welsh
ce9a0a8ef6
web: Initial masking support
...
Also add web/src/utils.rs for some methods to ease management
of errors for wasm_bindgen.
2019-09-09 20:42:08 -05:00
Mike Welsh
28f0ce3c83
Mask work
2019-09-09 20:42:08 -05:00
David Wendt
287870ec03
Get rid of the superfluous bootstrap file as it appears to be causing Webpack problems
2019-09-04 23:16:44 -04:00
Mike Welsh
1ff86012ae
chore: Fix jpeg-decoder warnings in Cargo.toml
2019-09-04 15:56:10 -07:00
David Wendt
f59d62516e
Fix demo site regressions.
2019-09-03 18:38:05 -04:00
David Wendt
9dd01494f3
build.sh should be executable
2019-09-01 11:49:27 -06:00
David Wendt
406cc746ce
The MimeType for `application/x-shockwave-flash` should list it's extension as `swf`, not `spl`.
2019-08-31 18:57:26 -04:00
David Wendt
fc67f0872f
Don't break Ruffle if we encounter an embed or object without a size.
2019-08-30 22:27:51 -04:00
David Wendt
adc1a79155
Place the extension related build system back .
...
Built extension files now live in `web/extension/build`.
2019-08-30 22:27:51 -04:00
David Wendt
b4b38057e4
Add checks for the Ruffle element being connected.
...
When a Ruffle player element is disconnected, attempts to play SWF files
fail semi-silently.
We also check for nested objects, since only the top should be
successful in loading.
2019-08-30 22:27:50 -04:00
David Wendt
f01f479f54
Don't forget random bits of object tag contents!
2019-08-30 22:27:50 -04:00
David Wendt
2b2f27afad
Falsify a better-sounding version of Flash.
...
This is at least the version Chrome claims to have.
2019-08-30 22:27:50 -04:00
David Wendt
0d8b72acce
Don't try to wrap text nodes, it won't end well.
2019-08-30 22:27:50 -04:00
David Wendt
190666fe91
Interdict Flash tags that use ActiveX.
2019-08-30 22:27:50 -04:00
David Wendt
21454b327b
Fix incorrect centering on homestarrunner.net its dot com
2019-08-30 22:27:49 -04:00
David Wendt
61171037cd
Recognize really old FutureSplash era tags as Flash
2019-08-30 22:27:49 -04:00
David Wendt
9ec4892ae7
Fix regression caused by the extension file move
2019-08-30 22:27:49 -04:00
David Wendt
de00145755
Add icons for the extension
2019-08-30 22:27:49 -04:00