Skip to content

[DO NOT MERGE] Emergent Tracking PR #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 279 commits into
base: textlayout-wrappers
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
279 commits
Select commit Hold shift + click to select a range
ff63fc1
add the icon at the top of the nested README.mds of skia-safe and ski…
pragmatrix Oct 15, 2019
88d6ec8
Makefile: remove packages before packaging
pragmatrix Oct 25, 2019
8f886b5
fix offscreen_gl_context iOS build error by directly referring to the…
pragmatrix Oct 25, 2019
67026f8
m78: update README and Skia
pragmatrix Sep 7, 2019
0216d0c
m78: make skia-bindings compile
pragmatrix Sep 7, 2019
10317c4
m78: update core (partial)
pragmatrix Sep 7, 2019
68f25b9
m78: refactor image filters
pragmatrix Sep 7, 2019
e45509c
m78: complete core/ update
pragmatrix Sep 7, 2019
312b1b2
m78: effects/: prevent all warnings and port 'extension' functions to…
pragmatrix Sep 7, 2019
69c6cd8
m78: fix semver compat for temporary deprecated attributes
pragmatrix Sep 7, 2019
b9db1c1
m78: update gpu/
pragmatrix Sep 7, 2019
5365fe2
m78: fix bug in IRect::set_wh()
pragmatrix Sep 7, 2019
21dba34
m78: fix testcase compile warning
pragmatrix Sep 7, 2019
23b51ba
m78: update svg/
pragmatrix Sep 7, 2019
9902b3f
m78: update modules/skshaper
pragmatrix Sep 7, 2019
2cc19dc
m78: clippy
pragmatrix Sep 8, 2019
e6edb2d
m78: fix vulkan build errors on macOS
pragmatrix Sep 11, 2019
9639f25
m78: GrGlBackendFormat is incompatible with C-linkage
pragmatrix Sep 11, 2019
0e48066
m78: update remaining Skia changes
pragmatrix Oct 25, 2019
8d4bdaa
m78: bump version to 0.19
pragmatrix Oct 25, 2019
fff564e
m78: update deprecated attributes version indicators
pragmatrix Oct 25, 2019
7d478fe
macOS aarch64 builds: remove llvm includes to get the build working w…
pragmatrix Nov 6, 2019
2495719
clippy updates for 1.40 beta
pragmatrix Nov 6, 2019
8f33f70
update min sparkle version 0.1.10 to fix a build error on macOS targe…
pragmatrix Nov 6, 2019
bf939e8
readme: fix two typos
pragmatrix Nov 6, 2019
f6c21f8
readme: suggest to use Apple Clang / LLVM version 11 instead of 10 (X…
pragmatrix Nov 6, 2019
ccf3b57
azure: build on ubuntu 18.04 instead of ubuntu 16.04
pragmatrix Nov 3, 2019
6b2e90b
update readme to reflect that ubuntu 18 is the default host on with w…
pragmatrix Nov 3, 2019
30c4107
azure: add apt-get update to the Linux builds
pragmatrix Nov 4, 2019
6c75b00
typo
pragmatrix Nov 4, 2019
04a1d21
azure: attempt to build aarch64-linux-android targets on ubuntu-18
pragmatrix Nov 4, 2019
0b9758b
android: provide the C++ include directory on non-macOS hosts
pragmatrix Nov 7, 2019
0cdecc5
m78: support to pass no image filters to several image filter constru…
pragmatrix Nov 7, 2019
93b8fed
m78: fix deprecation warnings that were wrongly pointing to color_fil…
pragmatrix Nov 7, 2019
4bcb9e3
build(deps): update bindgen requirement from =0.51.1 to =0.52.0
dependabot-preview[bot] Nov 23, 2019
da6a8cf
bump version to 0.20
pragmatrix Nov 23, 2019
623880e
m77: add C bindings for the skparagraph module
pragmatrix Aug 19, 2019
cbe7e3c
textlayout: add some infrastructure and wrap FontCollection, also ser…
pragmatrix Aug 19, 2019
13d1565
clippy build_support/skia.rs
pragmatrix Aug 20, 2019
f49b15d
skparagraph: review C wrapper functions
pragmatrix Aug 20, 2019
2da94f4
compile defaults for textlayout handles only when the feature is enabled
pragmatrix Aug 20, 2019
66a04f0
complete skparagraph module wrapper
pragmatrix Aug 20, 2019
670b6e2
rename feature paragraph to textlayout
pragmatrix Aug 20, 2019
6b1d4a2
skparagraph: return &mut Self from all setter-like functions
pragmatrix Aug 20, 2019
9e086e3
add derive(Default) to textlayout::Decoration
pragmatrix Aug 20, 2019
8fee3ee
when possible, use as_str() on SkString and not on the wrapper
pragmatrix Aug 21, 2019
2e3d549
paragraph.cpp: add missing return
pragmatrix Aug 21, 2019
6b0beb7
polish vulkan re-exports
pragmatrix Aug 22, 2019
0b3aa85
clippy
pragmatrix Aug 22, 2019
2f1b247
don't use clippy on bindings.rs
pragmatrix Aug 22, 2019
9528ab4
remove item name tracing
pragmatrix Aug 22, 2019
3dbdddb
clippy
pragmatrix Aug 22, 2019
c1c25cc
suppress the improper-ctypes warning in bindings.rs on macOS
pragmatrix Aug 22, 2019
5ba64bc
skparagraph: instead of basic_string, make u16string opaque, which ca…
pragmatrix Aug 22, 2019
ba2417f
don't link skparagraph's static library with its dependencies
pragmatrix Sep 10, 2019
656690e
remove VkStructureType reexport
pragmatrix Sep 10, 2019
9739e53
fix rebase errors
pragmatrix Sep 10, 2019
b7c9ec1
cosmetics
pragmatrix Sep 10, 2019
1da0fc1
add skparagraph example
pragmatrix Sep 10, 2019
23932ea
polish vulkan re-exports
pragmatrix Aug 22, 2019
7ed5cb7
m78: skparagraph: make code compile with Skia m78
pragmatrix Sep 10, 2019
fe31413
m78: fix vulkan related compilation errors
pragmatrix Sep 10, 2019
1f64ac3
build_support: remove item_name dumps
pragmatrix Sep 11, 2019
4efcc59
m78: fix FontCollection layout problem on macOS and Linux by making t…
pragmatrix Sep 11, 2019
d072a7f
m78: port skparagraph from m77 to m78
pragmatrix Sep 12, 2019
2fb87bb
skparagraph skia-org example: document how to reproduce the layout cr…
pragmatrix Sep 16, 2019
694f25f
fix compilation of the skparagraph example
pragmatrix Sep 21, 2019
126facd
skia-org example: reenable font fallback on non-macos platforms
pragmatrix Nov 23, 2019
ae18ffc
readme: explain the cargo feature 'textlayout'
pragmatrix Nov 24, 2019
14365c4
readme: skia-safe -> skia_safe
pragmatrix Nov 26, 2019
cb492af
build(deps): update serial_test_derive requirement from 0.2 to 0.3
dependabot-preview[bot] Nov 30, 2019
e35b80c
azure: update to llvm 9 for compiling Skia on Windows
pragmatrix Dec 1, 2019
d722ee0
build(deps): update serial_test requirement from 0.2 to 0.3
dependabot-preview[bot] Dec 2, 2019
fb972d2
m79: update skia
pragmatrix Oct 28, 2019
9b94138
m79: update core/color_filter.rs
pragmatrix Oct 30, 2019
6388e01
m79: update core/color_space.rs
pragmatrix Oct 30, 2019
f3b2a96
m79: update core/image_info.rs
pragmatrix Oct 30, 2019
d6794f6
m79: update milestone
pragmatrix Oct 30, 2019
34ae79c
m79: add wrappers for core/SkPathTypes.h and adjust core/SkPath.h to …
pragmatrix Nov 3, 2019
7176465
m79: update core/SkSurface.h and core/SkSurfaceCharacterization.h
pragmatrix Nov 3, 2019
24283fa
m79: wrap SkTextBlob::Iter and experiment with RCHandle based pointer…
pragmatrix Nov 3, 2019
6070d1b
m79: update core/yuva_size_info.rs
pragmatrix Nov 3, 2019
0be2e41
m79: update gpu/gl/*
pragmatrix Nov 3, 2019
3618592
remove deprecated interceps() function, and fix typo
pragmatrix Nov 3, 2019
ae5505b
support to reset the colorspace in ImageInfo
pragmatrix Nov 3, 2019
91977a4
m79: update gpu/context.rs
pragmatrix Nov 3, 2019
05b05fb
m79: update skparagraph.patch and create a makefile that simplifies i…
pragmatrix Nov 24, 2019
7f6f654
m79: fix compilation of the updated skparagraph module C and Rust wra…
pragmatrix Nov 24, 2019
de80c13
m79: try to keep LineMetrics members in the bindings and just make st…
pragmatrix Nov 24, 2019
ee1c98a
m79: add wrappers for modules/paragraph/metrics.rs and update textlay…
pragmatrix Nov 28, 2019
8108f8d
use repr(transparent) instead of repr(C) for Borrows
pragmatrix Nov 28, 2019
e853ed8
m79: update ParagraphBuilder
pragmatrix Nov 28, 2019
6d753e8
m79: update paragraph/text_style.rs
pragmatrix Nov 28, 2019
fcbd58c
m79: skparagraph fix ub warning with rustc 1.40 and add a test for la…
pragmatrix Dec 3, 2019
586e366
m79: update modules/skshaper
pragmatrix Dec 3, 2019
dc9499d
skshaper: implementation of the RunIterator must be on the RefHandle,…
pragmatrix Dec 3, 2019
d5dc60d
m79: update Skia
pragmatrix Dec 3, 2019
b574130
m79: bump version to 0.21.0
pragmatrix Dec 3, 2019
16e5d76
Attempt to add all features build
Kethku Dec 10, 2019
be27624
Compile Skia with /MT in case of a static build
syrel Dec 17, 2019
9eb76d4
Fix formatting
syrel Dec 17, 2019
79f86c0
bump version 0.21.1
pragmatrix Dec 18, 2019
738b825
fix new clippy warnings introduced in the 1.41 beta 1 rustc compiler
pragmatrix Dec 18, 2019
680cd49
disable the Packaging stage for the release branch, it won't work any…
pragmatrix Dec 11, 2019
10c3881
don't download the current binaries if the crt-static target feature …
pragmatrix Dec 18, 2019
a85f21b
bump version to 0.21.2
pragmatrix Dec 18, 2019
0547ef3
Added gpu::gl::Interface::new_load_with()
katyo Dec 19, 2019
89989e9
Fixed formatting
katyo Dec 19, 2019
f68b24d
Renamed wrapper for GL get_proc_fn
katyo Dec 19, 2019
38b7c96
android: build with the r20b NDK
pragmatrix Dec 20, 2019
5b22385
skia-safe: support vulkan builds on android 32 bit architectures
pragmatrix Dec 20, 2019
b1fd71b
azure: attempt to build i686-android-linux to see if a 32 bit android…
pragmatrix Dec 20, 2019
f8083d3
android: always set up the proper include directories on linux platforms
pragmatrix Dec 21, 2019
14f378b
change order of libraries submitted to cargo to fix a linker error wh…
pragmatrix Dec 21, 2019
ba9bb42
android: don't screw up the default configuration for x86_64 targets …
pragmatrix Dec 21, 2019
f6be10c
Added canvas.save_layer_alpha()
nof1000 Dec 26, 2019
a10d5b6
polish and format Canvas::save_layer_alpha()
pragmatrix Dec 27, 2019
daefccc
Add TextStyle::font_size
messense Jan 1, 2020
dc1bc20
paragraph/text_style.rs reorder order of updated functions to match t…
pragmatrix Jan 1, 2020
46d0728
bump version to 0.22
pragmatrix Jan 2, 2020
d83b057
core/text_blob.rs: fix signature of alloc_run_pos_h() and alloc_run_p…
pragmatrix Jan 3, 2020
bf61a03
bump version 0.23
pragmatrix Jan 3, 2020
9151292
bump version 0.24.0
pragmatrix Jan 4, 2020
4f5f216
support debug builds configurations for building Skia
pragmatrix Aug 18, 2019
0c5abc2
blacklist SkLRUCache / SkLRUCache_Entry in Debug builds when the feat…
pragmatrix Dec 22, 2019
5f28d4e
azure: remove stable builds from the PR CI builds, and build Skia deb…
pragmatrix Jan 4, 2020
f276a10
rerun the build if SKIA_DEBUG changes
pragmatrix Jan 4, 2020
3abe9ba
skia-bindings readme: be more specific
pragmatrix Jan 4, 2020
1e3bc93
skia-bindings readme: explain how to build Skia with debugging enabled
pragmatrix Jan 4, 2020
07e1d18
skia-bindings readme: mention feature 'textlayout'
pragmatrix Jan 4, 2020
641b037
azure: set SKIA_DEBUG for the current shell
pragmatrix Jan 4, 2020
1128b6e
font provider api
Jan 6, 2020
73eb7ef
add contribution guidelines
pragmatrix Jan 6, 2020
27da93f
update readme to point to the CONTRIBUTING.md
pragmatrix Jan 7, 2020
4b85360
update readme regarding LLVM and clarify the platform and feature ava…
pragmatrix Dec 20, 2019
3a539e9
readme: add a note explaining #228
pragmatrix Dec 20, 2019
985360d
remove Android build platforms (with a little luck Windows works, too)
pragmatrix Dec 20, 2019
2c1e415
readme: clarify where exactly the binaries are downloaded from
pragmatrix Dec 20, 2019
ef372e8
readme: cosmetics and fix issue link to WebAssembly
pragmatrix Dec 20, 2019
33c1e7c
readme: simplify and clarify
pragmatrix Dec 20, 2019
3d15ed8
readme: review
pragmatrix Dec 20, 2019
e4762d2
readme: consider Catalina, review
pragmatrix Dec 20, 2019
3f4bfa0
readme: cosmetical review
pragmatrix Jan 7, 2020
487b09f
add -debug to the prebuilt libraries key so that we never mix up Skia…
pragmatrix Jan 9, 2020
74ab0bc
add remaining env vars to the build script dependencies
pragmatrix Jan 9, 2020
d5292d0
polish comment
pragmatrix Jan 10, 2020
d6e9791
Enable PDF font subsetting with HarfBuzz
messense Jan 9, 2020
8ec4b22
Patch skshaper & icu
messense Jan 10, 2020
b239fbf
skia-bindings: include skparagraph.patch, so that fallback crate buil…
pragmatrix Jan 11, 2020
d02052a
bump version to 0.23.1
pragmatrix Jan 11, 2020
56a3a4b
Support alternate locations for LLVM on Windows (Fix #254)
photex Jan 11, 2020
19f70f8
skia-bindings: invoke git init inside the skia directory if patches n…
pragmatrix Jan 11, 2020
0375af3
bump version to 0.23.2
pragmatrix Jan 11, 2020
e7a6db2
clippy
pragmatrix Jan 11, 2020
00aab5f
Merge branch 'release'
pragmatrix Jan 12, 2020
f8298df
readme: explain how the location of the LLVM installation is resolved…
pragmatrix Jan 12, 2020
b1f024b
binaries generation: copy the Skia LICENSE into the archive of the bi…
pragmatrix Jan 12, 2020
0fff77f
Remove bz2 from linking libraries
messense Jan 13, 2020
7cb5834
azure: do not install rust on windows images anymore
pragmatrix Jan 13, 2020
bc84f06
readme: CentOS build instructions
pragmatrix Jan 14, 2020
30103c7
dependency track azure env variable
pragmatrix Jan 14, 2020
c47354d
azure: don't try to download binaries anymore
pragmatrix Jan 15, 2020
0940c86
rename to clarify distinction between a crate and a package
pragmatrix Jan 15, 2020
1f444b5
clippy
pragmatrix Jan 15, 2020
aeb722c
m80: update Skia
pragmatrix Dec 11, 2019
67a67dd
m80: update skia-bindings
pragmatrix Dec 11, 2019
9256d80
m80: update core/SkBlendMode.h
pragmatrix Dec 16, 2019
1b9a117
m80: update core/canvas.rs
pragmatrix Dec 16, 2019
fff1ec7
m80: update core/color_space.rs
pragmatrix Dec 16, 2019
4a517ed
m80: update core/image_info.rs
pragmatrix Dec 16, 2019
7476e51
m80: update core/Matrix44.rs
pragmatrix Dec 16, 2019
fd80c50
m80: update core/milestone.rs
pragmatrix Dec 16, 2019
239c4b5
m80: update core/path.rs and core/path_types.rs
pragmatrix Dec 16, 2019
7447bf3
m80: update core/size.rs
pragmatrix Dec 16, 2019
f5fb41a
m80: update effects/color_matrix.rs
pragmatrix Dec 16, 2019
22ca457
m80: fix some clippy lints
pragmatrix Dec 16, 2019
673857b
m80: update skparagraph
pragmatrix Dec 18, 2019
b3da074
clippy
pragmatrix Jan 10, 2020
988cc4f
m80: try to compensate for the skparagraph icu initialization problem…
pragmatrix Jan 15, 2020
356ea5c
binding generation: whitelist most types by indirectly referring them…
pragmatrix Jan 15, 2020
df146f1
binding generation: extract vulkan functions from bindings.cpp
pragmatrix Jan 15, 2020
552c782
binding generation: extract svg functions from bindings.cpp into svg.cpp
pragmatrix Jan 15, 2020
4404c97
update CMakeLists.txt
pragmatrix Jan 15, 2020
559e745
don't compile interop::strings when feature textlayout isn't enabled
pragmatrix Jan 15, 2020
5c53a26
binding generation: don't suppress warnings related to mem::uninitial…
pragmatrix Jan 15, 2020
9470e16
m80: remove outdated comment
pragmatrix Jan 17, 2020
3bdf76c
m80: macOS paragraph layout with font fallback seems stable now
pragmatrix Jan 17, 2020
3351ccd
m80: update skia
pragmatrix Jan 19, 2020
60ec547
m80: bump version to 0.25.0 and update deprecated attributes
pragmatrix Jan 19, 2020
87917c2
add quality
StewartCanva Jan 20, 2020
88dee23
Merge pull request #271 from StewartCanva/stewart-adds-quality
pragmatrix Jan 20, 2020
c4baa3d
prefer pub use of type aliases for re-exports
pragmatrix Jan 20, 2020
55dc54e
prefer serial_test::serial over serial_test_derive::serial
pragmatrix Jan 20, 2020
6f5d94c
m80: add small font collection find_typefaces test
pragmatrix Jan 20, 2020
448537d
Merge pull request #229 from pragmatrix/m80
pragmatrix Jan 20, 2020
750c2e9
rewrite more enums in the binding generator and re-export them from s…
pragmatrix Jan 17, 2020
10fea50
derive Hash for mirrored enums if possible
pragmatrix Jan 20, 2020
6223222
Merge pull request #270 from pragmatrix/m80-rewrite-enums
pragmatrix Jan 20, 2020
1623e58
binding generation: support non-gpu builds of skia-bindings
pragmatrix Jan 18, 2020
30c1e61
support no gpu builds in skia-safe
pragmatrix Jan 18, 2020
43c7e8d
azure: add gl features builds
pragmatrix Jan 18, 2020
18781ad
fix vulkan-only feature build errors
pragmatrix Jan 18, 2020
b77280f
fix linker errors in cpu only builds
pragmatrix Jan 18, 2020
110dc4e
fix build error for opengl only builds
pragmatrix Jan 18, 2020
e7e657a
don't need to link opengl libraries for vulkan only builds
pragmatrix Jan 18, 2020
ffb0ae3
clippy
pragmatrix Jan 18, 2020
5bb1551
remove SkImage_getBackendTexture for bindings.cpp because it is alrea…
pragmatrix Jan 20, 2020
7435c5d
update readme to explain the feature gl and the new cpu only default
pragmatrix Jan 20, 2020
c0e0ea6
remove empty rs file
pragmatrix Jan 20, 2020
b033247
typo
pragmatrix Jan 20, 2020
047ed7d
Merge pull request #269 from pragmatrix/no-gpu
pragmatrix Jan 20, 2020
0ddf049
remove feature svg from skia-bindings and skia-safe
pragmatrix Jan 20, 2020
9817d1b
remove svg from azure builds
pragmatrix Jan 20, 2020
e194668
Merge pull request #273 from pragmatrix/remove-svg
pragmatrix Jan 21, 2020
1a2a0ba
integrate feature shaper into textlayout
pragmatrix Jan 20, 2020
08de815
review warnings
pragmatrix Jan 20, 2020
a7bf0cf
update skia-safe readme
pragmatrix Jan 20, 2020
12f9965
update readme regarding the prebuilt binaries available
pragmatrix Jan 20, 2020
d597292
azure: update feature builds
pragmatrix Jan 20, 2020
fcbbc7c
tweak warning
pragmatrix Jan 21, 2020
ffe91b8
Merge pull request #274 from pragmatrix/remove-shaper
pragmatrix Jan 21, 2020
a9d1a9b
make macOS builds more robust by resolving the SDK path and providing…
pragmatrix Jan 23, 2020
8d6a195
metal: add feature 'metal' and support building skia-bindings
pragmatrix Jan 23, 2020
1dacc49
fix initial skia-safe build errors if feature metal is enabled
pragmatrix Jan 23, 2020
90aade8
fix rust beta clippy warnings
pragmatrix Jan 23, 2020
75637f3
move skia-org from skia-safe to the root workspace, because of we can…
pragmatrix Jan 23, 2020
3dadc04
support driver metal in the skia-org example
pragmatrix Jan 23, 2020
f6f7de2
more clippy fixes, make Context::new_metal unsafe
pragmatrix Jan 23, 2020
18b753b
remove unneeded framework=Foundation from the list of libraries when …
pragmatrix Jan 23, 2020
4191333
update comment
pragmatrix Jan 23, 2020
8768010
azure: update for skia-orgs new location
pragmatrix Jan 23, 2020
27ffc83
add more metal bindings
pragmatrix Jan 24, 2020
a9c3773
update CONTRIBUTION.md and the readmes to show off metal support
pragmatrix Jan 24, 2020
6d1e69e
Merge pull request #275 from pragmatrix/m80-metal
pragmatrix Jan 24, 2020
b357bda
bump version to 0.26.0
pragmatrix Jan 24, 2020
c2a059e
build(deps): update foreign-types requirement from 0.3 to 0.5
dependabot-preview[bot] Jan 25, 2020
fbe603e
Merge pull request #276 from rust-skia/dependabot/cargo/foreign-types…
pragmatrix Jan 25, 2020
fe44a43
Revert "build(deps): update foreign-types requirement from 0.3 to 0.5"
pragmatrix Jan 25, 2020
590273b
Merge pull request #278 from rust-skia/revert-276-dependabot/cargo/fo…
pragmatrix Jan 25, 2020
7b81c75
build(deps): update cocoa requirement from 0.19 to 0.20
dependabot-preview[bot] Jan 25, 2020
38bf051
Merge pull request #277 from rust-skia/dependabot/cargo/cocoa-0.20
pragmatrix Jan 25, 2020
0c90228
use --ignore-whitespace for applying patches
pragmatrix Jan 28, 2020
1e0a40c
Merge pull request #279 from pragmatrix/apply-ignore-whitespace
pragmatrix Jan 28, 2020
297d614
readme: fix azure pipelines badge link
pragmatrix Jan 28, 2020
babe8a6
readme: add CentOS to the list of supported prebuilt binaries platforms
pragmatrix Jan 29, 2020
fd16f54
Makefile: add target crates-test to test skia-bindings builds from in…
pragmatrix Feb 4, 2020
1693039
add src/impls.rs to the list of included files that should be packaged
pragmatrix Feb 4, 2020
6fe35ca
Merge pull request #281 from pragmatrix/fix-bindings-crate-build
pragmatrix Feb 4, 2020
25fdcaf
bump version to 0.26.1
pragmatrix Feb 4, 2020
29ac684
clippy
pragmatrix Feb 4, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 11 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,14 @@ project (skia-bindings)

include_directories(skia-bindings/skia)

add_library(skiabindings skia-bindings/src/bindings.cpp skia-bindings/src/shaper.cpp)
add_compile_definitions(SK_SHAPER_HARFBUZZ_AVAILABLE, SK_VULKAN, SK_XML)

add_library(skiabindings
skia-bindings/src/bindings.cpp
skia-bindings/src/gl.cpp
skia-bindings/src/gpu.cpp
skia-bindings/src/paragraph.cpp
skia-bindings/src/shaper.cpp
skia-bindings/src/svg.cpp
skia-bindings/src/vulkan.cpp
)
43 changes: 43 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Rust-Skia Contribution Guidelines

Thank you for considering to contribute to rust-skia.

We welcome all contributions, but most likely, a large part of your contribution will be Rust code.

To contribute Rust code, format the code with `cargo fmt` and be sure that there are no warnings with `cargo clippy`. Don't try too hard follow Clippy suggestions. If a warning does not make sense to be adhered to, add a comment that explains why, and mark the code with a `#[allow(clippy::*)]` attribute.

If possible, add a small test case for you changes.

Your PR will be built for and tested on a number of targets on the CI before it can be merged. If that fails, we are probably able to help out.

If you'd like the changes in your PR to be released to [crates.io](https://crates.io/) timely, please say so, because we prefer to align crate releases with major [updates to Chrome stable](https://www.chromestatus.com/features/schedule).

## Repository organization

The repository consists of two cargo packages in the folders `/skia-bindings` and `/skia-safe`. `skia-bindings` contains the build support for Skia and the C++ bindings. `skia-safe` contains all the Rust code that wraps the Skia APIs.

## Contributing Bindings & Wrappers

We did our best to cover most of the Skia API, but you'll find a lot of blind spots by looking closer:

- GPU API support is incomplete, specifically functions that use callbacks.
- Supporting [Skottie](https://skia.org/user/modules/skottie) would be a nice addition.

For larger contributions, make yourself familiar with the [various wrapper types](https://github.com/rust-skia/rust-skia/wiki) of skia-safe and consider to file an issue beforehand to give us a heads up and to receive additional directions.

## Contributing Examples

Examples should be added to `/skia-safe/examples` or directly to the `/skia-safe/examples/skia-org` executable which provides a minimal infrastructure to render to PNG , PDF, SVG files with the CPU or GPU.

## Updating Skia

Since the beginning of this project, the maintainer team is updating rust-skia to match the Skia API version in the latest stable Chrome release. A new Chrome release [is scheduled](https://chromium.googlesource.com/chromium/src/+/master/docs/process/release_cycle.md) about every 7 weeks and most changes for the upcoming version are already settled when the current release is out, so there is enough time to update rust-skia. For most new Skia releases, the changes are trivial and can be integrated without breaking backwards compatibility on the Rust side.

Even though this puts some pressure on dependent projects, we'd try to keep rust-skia updated, because falling behind Chrome's and Flutter's development to keep Skia _modern_ is not an option.

But keeping up might not always be possible. So if you or your company uses rust-skia, you might be interested to take a look at the [template used](https://github.com/rust-skia/rust-skia/wiki/Template:-Skia-Milestone-Update-PR) to update to the latest Skia version and perhaps even try to help us out from time to time.

## Licensing

Please ensure that the material you contribute is compatible with the MIT license.

3 changes: 2 additions & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@

members = [
"skia-bindings",
"skia-safe"
"skia-safe",
"skia-org"
]
19 changes: 19 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,23 @@ all:
@echo "make publish: publish the rust-skia packages to crates.io"
@echo "make publish-only: do not verify or build packages, only publish the the packages"

# test various configuration from inside crates.

.PHONY: crate-tests
crate-tests: crate-bindings-binaries crate-bindings-build

.PHONY: crate-bindings-binaries
crate-bindings-binaries: export FORCE_SKIA_BINARIES_DOWNLOAD=1
crate-bindings-binaries:
cd skia-bindings && cargo publish -vv --dry-run --all-features
cd skia-bindings && cargo publish -vv --dry-run

.PHONY: crate-bindings-build
crate-bindings-build: export FORCE_SKIA_BUILD=1
crate-bindings-build:
cd skia-bindings && cargo publish -vv --dry-run --all-features
cd skia-bindings && cargo publish -vv --dry-run

.PHONY: publish
publish: package-bindings package-safe publish-bindings wait publish-safe

Expand All @@ -28,12 +45,14 @@ package: clean-packages package-bindings package-safe
# bindings are not verifiable, so we do build them by hand.
.PHONY: package-bindings
package-bindings:
rm -f target/package/skia-bindings-*.crate
cd skia-bindings && cargo package -vv --no-verify
cd target/package && tar xzf skia-bindings-*.crate
cd target/package && cargo build -vv --release

.PHONY: package-safe
package-safe:
rm -f target/package/skia-safe-*.crate
cd skia-safe && cargo package -vv --no-verify --allow-dirty

.PHONY: clean-packages
Expand Down
Loading