Patrick Walton
205a63340c
Merge pull request #296 from servo/jdm-patch-1
...
Add arm64 CI and fix build errors
2020-04-09 10:28:55 -07:00
Patrick Walton
895f73096e
Switch back to instanced drawing for tiles.
...
Improves tile build time by something around 2x in the NanoVG demo.
2020-04-08 17:16:54 -07:00
Josh Matthews
3a8339fece
Allow dividing a Vector2F by an f32 value.
2020-04-07 15:36:46 -04:00
Josh Matthews
43adc9c24a
Fix arm I32x4 min/max operations that require on floating point values.
2020-04-07 15:35:03 -04:00
Josh Matthews
e87b330123
Add min/max to i32x2.
2020-04-07 12:42:28 -04:00
Josh Matthews
db205f71d6
Fix incorrect cast ordering in arm simd.
2020-04-07 12:31:28 -04:00
Josh Matthews
f2b668f9d7
Add missing import.
2020-04-07 12:28:37 -04:00
Josh Matthews
b28e04a22d
Install rustup target before building.
2020-04-07 12:06:26 -04:00
Josh Matthews
fe80bad31b
Build with nightly on CI.
2020-04-07 11:53:50 -04:00
Josh Matthews
a4c9b7ea3d
Only build certain crates.
2020-04-07 11:39:00 -04:00
Josh Matthews
22bab4f1e9
Add arm64 target with rustup.
2020-04-07 11:26:41 -04:00
Josh Matthews
2cd534609d
Add arm64 to CI.
2020-04-07 11:15:29 -04:00
Patrick Walton
941abd202e
Add the tooltip to the NanoVG demo
2020-04-03 15:38:14 -07:00
Patrick Walton
9d5dd7fd6a
Make text respect clip, blend mode, and opacity
2020-04-03 15:37:59 -07:00
Patrick Walton
b38f75a38d
Add line widths to the NanoVG demo
2020-04-03 14:51:37 -07:00
Patrick Walton
ad61b78e39
Remove box gradients from the NanoVG demo in favor of shadows
2020-04-03 14:33:00 -07:00
Patrick Walton
bba6aab0fe
Don't blur the entire canvas
2020-04-03 14:32:51 -07:00
Patrick Walton
eb2b622615
Remove `draw_render_target()` in favor of the standard tile-based rendering
...
path
2020-04-03 13:05:53 -07:00
Patrick Walton
cd37791d72
Implement the `drawImage()` method on canvas.
...
Closes #223 .
2020-04-02 16:30:49 -07:00
Patrick Walton
ba7fe4be39
Add the ability to merge scenes together, and expose it to the canvas API.
...
Closes #268 .
2020-04-02 14:04:58 -07:00
Patrick Walton
5d43eedf20
Replace a drop shadow with a box gradient
2020-04-02 11:59:35 -07:00
Patrick Walton
404d536254
Add some more operators to rects and vectors
2020-04-02 11:59:11 -07:00
Patrick Walton
542d2c27fa
Add `translate`, `rotate`, and `scale` methods to `CanvasRenderingContext2D`.
2020-04-02 11:40:53 -07:00
Sebastian K
29c6a2e428
Transform paints by the render transform
2020-04-02 11:17:03 -07:00
Patrick Walton
8f2fabbc47
Add icons to the NanoVG demo from Noto Emoji
2020-04-01 20:20:32 -07:00
Patrick Walton
e05b5df562
Stop duplicating font names everywhere in the NanoVG demo
2020-04-01 17:31:16 -07:00
Patrick Walton
da9b944e77
Clean up a few uses of `RectF::contract()` and `RectF::dilate()`
2020-04-01 17:27:08 -07:00
Patrick Walton
794dd55038
Add some implicit conversions between scalars and vectors where appropriate
2020-04-01 17:20:32 -07:00
Patrick Walton
40bd13aa5a
Add convenience color construction methods
2020-04-01 16:37:36 -07:00
Patrick Walton
ae97ccea5a
Improve ergonomics of the canvas font interface, and use the right fonts in the
...
NanoVG demo.
2020-04-01 16:25:13 -07:00
Patrick Walton
f823cb9474
Rename `SIL Open Font License.txt` to `LICENSE-SIL` for consistency
2020-04-01 13:24:07 -07:00
Patrick Walton
956b9020e8
Rename `overpass-regular.otf` to `Overpass-Regular.otf`
2020-04-01 13:22:29 -07:00
Patrick Walton
cedc5595db
Fix `canvas_moire`
2020-04-01 13:03:58 -07:00
Patrick Walton
3d71703950
Stop copying images every frame on CPU.
...
We can avoid reuploading them to the GPU every frame as well, but this is a
bigger, and easier, win for now.
2020-04-01 13:01:08 -07:00
Patrick Walton
bf6890b341
Fix `canvas_minimal`
2020-03-31 20:21:27 -07:00
Patrick Walton
7c5c43b50f
Use HiDPI and a larger window size in the NanoVG demo
2020-03-31 20:18:25 -07:00
Patrick Walton
e6d8aab974
Don't draw backwards miters.
2020-03-31 19:38:43 -07:00
Patrick Walton
764953a643
Fix counterclockwise arc drawing logic
2020-03-31 17:59:41 -07:00
Patrick Walton
bf2fd6569b
Fix tests
2020-03-31 17:17:25 -07:00
Patrick Walton
32a56eab85
Stop leaking textures and framebuffers in the OpenGL backend.
...
Closes #264 .
Possibly addresses #286 .
2020-03-31 17:14:28 -07:00
Patrick Walton
bbcd371efc
Show the progress spinners behind thumbnail images in the NanoVG demo
2020-03-31 17:14:06 -07:00
Patrick Walton
2f6071c059
Make solid tiles not use mask 1.
...
Fixes random garbage appearing in the thumbnails in the NanoVG demo.
2020-03-31 14:16:04 -07:00
Patrick Walton
2db4cfcfed
Uncomment round join code in the NanoVG demo now that it doesn't crash
2020-03-31 13:32:23 -07:00
Patrick Walton
40377d657a
Prevent taking the square root of a negative number in the half-angle formula
2020-03-31 13:32:23 -07:00
Patrick Walton
f142f045aa
Detect coincident points and bail out of the line join code as necessary.
2020-03-31 13:31:22 -07:00
Patrick Walton
c7ca630aad
Search backward for a non-coincident point if the two ending points of a capped
...
stroke are coincident.
This prevents a divide by zero in normalization.
2020-03-31 13:29:47 -07:00
Patrick Walton
9212c742b7
Avoid taking the square root of a negative number in `arc_from_cos()`.
2020-03-31 13:28:55 -07:00
Patrick Walton
df4021e3c5
Limit the number of trips through the round join loop.
...
This is a safety measure to prevent infinite loops.
2020-03-31 13:27:47 -07:00
Patrick Walton
93f5fbc6d2
Add convenience constructors: `vec2f`, `vec2i`, `Vector2F::zero()`,
...
`Vector2I::zero()`
2020-03-31 11:29:21 -07:00
Patrick Walton
d83f54457c
Merge pull request #290 from s3bk/patch-1
...
add Contour::clear
2020-03-30 22:01:04 -07:00
Patrick Walton
4af74f225d
Add support to canvas for the commonly-used `textBaseline` values
2020-03-30 22:00:13 -07:00
Patrick Walton
9a0fbe1d11
Flesh out the NanoVG demo yet more
2020-03-30 21:33:20 -07:00
Patrick Walton
f1d7a0bfa3
Make the gradient construction methods more convenient
2020-03-30 21:32:55 -07:00
Patrick Walton
6d6b5191bb
Clean up the `text` module inside `canvas` a bit
2020-03-30 21:32:30 -07:00
Patrick Walton
e864536b31
Add a `From` implementation to `FillStyle` and use it in `canvas` for brevity
2020-03-30 21:31:18 -07:00
Patrick Walton
f1d5906c9e
Switch to my branch of `skribo` for much better `fill_text()` performance
2020-03-30 21:30:14 -07:00
Patrick Walton
7ac822bc2e
Cache image hashes.
2020-03-30 16:48:01 -07:00
Patrick Walton
cf78ac4569
Fix image pattern texture atlas logic.
2020-03-30 16:19:03 -07:00
Patrick Walton
a1f0ae097a
Add thumbnail images to the NanoVG demo
2020-03-30 16:18:41 -07:00
Patrick Walton
257067e368
Flesh out the NanoVG example even more
2020-03-28 12:45:23 -07:00
Sebastian
cb91f40d7a
add Contour::clear
2020-03-28 19:22:39 +03:00
Patrick Walton
ed2807eb84
Flesh out the NanoVG demo some more
2020-03-27 20:53:57 -07:00
Patrick Walton
9723fa441b
Update `image`, `glutin`, and `jni` crates.
...
From #277 .
2020-03-27 15:49:26 -07:00
Patrick Walton
b6762cecb8
Don't include the closing segment when printing a path as a string.
...
Closes #279 .
Closes #282 .
2020-03-27 15:40:27 -07:00
Patrick Walton
6239356d89
Add a `Debug` impl for `Path2D`
2020-03-27 15:05:10 -07:00
Patrick Walton
6eb0232aad
Add `precision highp sampler2D` everywhere so our winding numbers don't get clipped
...
Closes #280 .
2020-03-27 14:53:00 -07:00
Patrick Walton
7b53cc6731
Close all subpaths right before filling them.
...
Closes #269 .
2020-03-27 14:50:02 -07:00
Patrick Walton
c258616bad
Add `Path2D::add_path()`
2020-03-27 12:33:06 -07:00
Patrick Walton
15718d297c
Add `Contour::with_capacity()` from #289
2020-03-27 10:06:56 -07:00
Patrick Walton
b29ffdf3fa
Add missing packed comparisons to the scalar implementation of `I32x2`
2020-03-27 10:04:42 -07:00
Patrick Walton
55df287fec
Move radial gradients from the CPU to the GPU
2020-03-26 21:24:20 -07:00
Patrick Walton
0c24619dd0
Add a `clear` method to `Outline` as suggested in #289
2020-03-26 08:34:47 -07:00
Patrick Walton
0c93045f50
Replace the individual tile shaders with an ubershader
2020-03-25 21:59:51 -07:00
Patrick Walton
51277a2027
Merge pull request #288 from kyythane/master
...
Add derive(Clone) to no text font context
2020-03-25 16:58:04 -07:00
Lillian Primrose
22d54a82ca
CanvasFontContext now implements .clone()
2020-03-24 22:15:09 -04:00
Patrick Walton
0f5de612f9
Merge pull request #281 from zimond/master
...
Use instant crate to build for wasm32 target
2020-03-09 17:17:09 -07:00
Patrick Walton
0b0c45a49a
Collapse linear gradients down to a single 256x1 sliver instead of a 256x256
...
square
2020-03-05 16:58:26 -08:00
Patrick Walton
2548ab853a
Unify solid tiles and render target tiles.
...
This commit also removes old shaders from the manifest.
2020-03-05 12:22:01 -08:00
Patrick Walton
9935c9fdff
Don't distinguish between render targets and other images in the texture atlas
...
allocator
2020-03-04 19:41:24 -08:00
Patrick Walton
a8f7438cd9
Remove transforms from paths.
...
Paints aren't scale-invariant when rendered into the texture atlas, so they
actually do need individual transforms.
2020-03-04 16:28:21 -08:00
Patrick Walton
27357a23d3
Separate the `AddPaintData` render command into different subcommands
2020-03-04 15:50:53 -08:00
Patrick Walton
e50039f4c2
Create framebuffers for every texture page
2020-03-04 12:35:07 -08:00
Patrick Walton
a3736859ba
Rename "paint texture" to just "texture page"
2020-03-04 12:09:08 -08:00
乌戈
22f9c3bf6e
Use instant crate to build for wasm32 target
2020-03-05 01:54:36 +08:00
Patrick Walton
d0f4579864
Move `RenderTargetId` out of the `pattern` module
2020-03-03 15:50:48 -08:00
Patrick Walton
2beb2bb126
Apply path transforms to paints
2020-03-03 14:26:38 -08:00
Patrick Walton
12574101e5
Add a transform field to `DrawPath`.
...
This is currently applied to the outline and should eventually be applied to
paints as well.
2020-03-03 11:18:01 -08:00
Patrick Walton
afd1585d5d
Merge pull request #278 from inferiorhumanorgans/iho/pub-outline
...
Make Path2D#into_outline public
2020-03-03 11:00:00 -08:00
Patrick Walton
468848086a
Use the paint texture uniform belonging to the appropriate program
2020-03-03 10:56:32 -08:00
Patrick Walton
f607b607b0
Composite render targets using tiles, taking the Z-buffer into account.
...
We can do more tile-based optimization, but this should be enough to ensure a
correct rendering.
This temporarily breaks subpixel AA, but it should be fixable by modifying
`blur.fs.glsl`.
Closes #271 .
2020-03-02 20:10:10 -08:00
Alex Zepeda
c8496a1cb2
Make Path2D#into_outline public
2020-03-02 00:14:24 -08:00
Patrick Walton
0f35d9c817
Add an embedded resource loader that places resources directly in the binary.
...
This is useful for WebGL and for downstream crates.io use.
2020-02-28 17:10:53 -08:00
Patrick Walton
ee6c7e0797
Explicitly cast `aTessCoord` to `vec2` for WebGL compatibility
2020-02-28 12:49:21 -08:00
Sebastian K
e2fbde820d
Implement a WebGL backend
...
Signed-off-by: Patrick Walton <pcwalton@mimiga.net>
2020-02-28 10:41:35 -08:00
Patrick Walton
c59b347c62
Mention CoC in the community section
2020-02-28 10:07:27 -08:00
Patrick Walton
fa2cb9b6e0
Update README to mention chat room
2020-02-28 10:05:39 -08:00
Patrick Walton
d2ae183ed6
Update README
2020-02-28 09:46:42 -08:00
Patrick Walton
b4681dcf8f
Add a PNG version of the logo
2020-02-28 09:44:09 -08:00
Patrick Walton
40bb1b412c
Implement radial gradients along a line, following Pixman.
2020-02-27 16:24:10 -08:00
Patrick Walton
59783ad457
Merge pull request #272 from adamnemecek/master
...
trimmed whitespace
2020-02-27 09:04:21 -08:00