Go to file
Michael Ludwig cc56016595 Track end mark of BufferWriters to detect overrun
In debug builds, BufferWriters store a Mark that points to the end of
their data array, and all write operations are validated against that.
IndexWriter and UniformWriter require the size or ending mark to be
provided, while VertexWriter does not.

Legacy creation of VertexWriters exist in several places in Ganesh where
it wasn't trivial to have the size of the buffer available when the VW
was created. Most common cases that go through GrMeshDrawTarget or
GrEagerVertexAllocator, or graphite's DrawBufferManager automatically
have this information embedded in the writer.

The major semantic change that comes with this is what

BufferWriter::makeOffset does. Previously you could make as many offset
writers as desired and overwrite each other, but now the intended use
case is enforced: the calling writer can only write up to the offset,
and the returned writer can write from the offset to the end.
Change-Id: I2df0f618cd7e50ff657366aeb4955d729c3a938a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/496880
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
2022-01-22 17:55:30 +00:00
animations first cut at a checkbox 2009-10-21 19:41:10 +00:00
bazel [bazel] Add mirrors to every external dependency. 2022-01-13 15:53:27 +00:00
bench Add makeVertexWriter helper to GrMeshDrawTarget 2022-01-21 00:53:22 +00:00
bin [sk] Update asset download references to use SK 2021-09-17 16:55:53 +00:00
build/fuchsia [fuchsia] Fix fidlc command. 2020-06-10 03:29:24 +00:00
build_overrides Add Abseil dependency for Dawn 2021-09-22 22:05:32 +00:00
client_utils/android Make class members that are static constexpr also be inline. 2021-10-11 16:22:59 +00:00
demos.skia.org [demos] Add WebGPU demo using origin trial 2021-10-08 16:35:34 +00:00
dm [graphite] Bail on DM run when context creation fails. 2022-01-14 13:57:24 +00:00
docker Remove .git directories from the skia checkout in skia-release 2022-01-12 19:25:25 +00:00
docs/examples Use angle brackets for system includes 2021-11-22 17:03:11 +00:00
example [bazel] Use font manager in HelloWorld. 2022-01-11 16:22:52 +00:00
experimental Track end mark of BufferWriters to detect overrun 2022-01-22 17:55:30 +00:00
fuzz Fix null dereference in ~PromiseImageInfo. 2022-01-21 20:18:04 +00:00
gm [COLRv1] Take P2 into account again in gradient skewing 2022-01-13 18:16:50 +00:00
gn [graphite] Move GrSingleOwner to skgpu::SingleOwner. 2022-01-21 18:22:53 +00:00
include [graphite] Move GrSingleOwner to skgpu::SingleOwner. 2022-01-21 18:22:53 +00:00
infra Update SKP version 2022-01-16 08:19:15 +00:00
modules Mark operator bool() explicit in src, tests, and modules 2022-01-19 15:10:45 +00:00
platform_tools Reduce scope of SkQP to pass/fail runs of GMs and UnitTests 2022-01-04 18:07:48 +00:00
resources Reland "Better Matrix/Scalar testing" 2022-01-14 19:12:00 +00:00
samplecode Fix when a glyph has a path 2021-12-07 14:58:29 +00:00
site Add SkSL color management docs 2022-01-10 14:34:46 +00:00
specs [infra] Port serve.py from Python2 to 3 2021-08-31 15:28:19 +00:00
src Track end mark of BufferWriters to detect overrun 2022-01-22 17:55:30 +00:00
tests Revert "Added tests for sksl clone() on our test corpus" 2022-01-21 23:32:12 +00:00
third_party Roll skcms from 3fa993c258a9 to 30c8e303800c (2 revisions) 2022-01-22 00:10:20 +00:00
toolchain [bazel] Add mirrors to every external dependency. 2022-01-13 15:53:27 +00:00
tools [tools] Add git.bat to search list 2022-01-20 17:33:21 +00:00
.bazelrc [infra] Add SkParagraph (harfbuzz, ICU) to Canvaskit Bazel build. 2021-11-30 21:01:06 +00:00
.bazelversion [infra] Add Bazel rules for codecs. 2021-11-11 20:10:01 +00:00
.clang-format no more bin packing in .clang-format 2021-03-04 17:22:50 +00:00
.clang-tidy Disable ClangTidy namespace comments for short blocks. 2020-08-24 14:01:22 +00:00
.gitignore Add .vscode to the default gitignore list. 2021-10-13 15:23:02 +00:00
.gn Pre-emptive fix for upcoming ANGLE change. 2021-01-08 17:23:52 +00:00
.vpython [python3] Reland recipes -> python3 changes 2021-12-01 13:04:03 +00:00
AUTHORS Reland "Enable non-standalone builds with dawn" 2021-11-15 20:52:41 +00:00
BUILD.bazel Update Bazel files 2022-01-06 18:10:57 +00:00
BUILD.gn Reduce scope of SkQP to pass/fail runs of GMs and UnitTests 2022-01-04 18:07:48 +00:00
codereview.settings Make uploading to Gerrit the default for Skia 2016-11-09 19:07:56 +00:00
CONTRIBUTING Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
CQ_COMMITTERS Moved committer list to chrome-infra-auth and deleted it from the repo 2015-09-02 13:37:54 -07:00
DEPS Roll ANGLE from 1bd1a3db1c60 to 2caa9d4fe4f1 (8 revisions) 2022-01-21 05:25:51 +00:00
DIR_METADATA Move metadata in OWNERS files to DIR_METADATA files 2021-02-02 23:41:54 +00:00
go_repositories.bzl [bazel] Sketching out HelloWorld sk_app using GL 2022-01-11 13:06:19 +00:00
go.mod [bazel] Sketching out HelloWorld sk_app using GL 2022-01-11 13:06:19 +00:00
go.sum [bazel] Sketching out HelloWorld sk_app using GL 2022-01-11 13:06:19 +00:00
LICENSE LICENSE file: clean up 2019-11-22 21:59:03 +00:00
OWNERS [infra] Add wildcard OWNERS 2021-08-30 19:19:34 +00:00
PRESUBMIT.py Remove AUTHORS check from PRESUBMIT.py 2021-09-30 14:12:18 +00:00
public.bzl Remove SKNX_NO_SIMD from public.bzl iOS build. 2022-01-19 17:40:06 +00:00
README Fix references to https://sites.google.com/site/skiadocs/. 2015-02-03 13:12:54 -02:00
README.chromium Update README.chromium. 2015-06-11 13:19:24 -07:00
RELEASE_NOTES.txt Add support for multiple child nodes to SkImageFilters::RuntimeShader 2022-01-05 20:07:00 +00:00
whitespace.txt Push shaders.skia.org. 2022-01-19 21:46:16 +00:00
WORKSPACE.bazel [bazel] Add mirrors to every external dependency. 2022-01-13 15:53:27 +00:00

Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.

See full details, and build instructions, at https://skia.org.