Skip to content
Open
Show file tree
Hide file tree
Changes from 173 commits
Commits
Show all changes
292 commits
Select commit Hold shift + click to select a range
48d4b22
Use literal emoji in test string
JimBobSquarePants Mar 3, 2026
098ccd9
Add Process API, shadow fallback & WebGPU readback
JimBobSquarePants Mar 4, 2026
e450b85
Migrate clear brush tests to canvas API
JimBobSquarePants Mar 4, 2026
d39098d
Move Bezier draw tests to ProcessWithDrawingCanvas
JimBobSquarePants Mar 4, 2026
1d87102
Move DrawLines tests
JimBobSquarePants Mar 4, 2026
0bfb3c0
Mode DrawComplexPolygonTests
JimBobSquarePants Mar 4, 2026
42c80f4
Merge DrawPath/DrawPolygon tests into canvas tests
JimBobSquarePants Mar 4, 2026
3b701b6
Move FillComplexPolygon test to canvas-based tests
JimBobSquarePants Mar 4, 2026
faa3623
Move elliptic gradient tests to ProcessWithCanvas
JimBobSquarePants Mar 4, 2026
130f106
Migrate FillImageBrush tests to ProcessWithCanvas
JimBobSquarePants Mar 4, 2026
b8c714d
Move linear gradient tests to ProcessWithCanvas
JimBobSquarePants Mar 4, 2026
52fb65f
Migrate FillsOutOfBounds tests
JimBobSquarePants Mar 4, 2026
bb12d60
PathGradientBrush sampling & intersect fix; tests move
JimBobSquarePants Mar 4, 2026
b63da78
Move FillPath tests to ProcessWithCanvas
JimBobSquarePants Mar 4, 2026
7fa4871
Migrate text drawing tests to ProcessWithCanvas
JimBobSquarePants Mar 4, 2026
f01190b
Move FillPatternBrush tests to canvas tests
JimBobSquarePants Mar 4, 2026
625ab85
Migrate FillPolygon tests to ProcessWithDrawingCanvas
JimBobSquarePants Mar 4, 2026
34468f3
Migrate RadialGradient tests
JimBobSquarePants Mar 4, 2026
c15ba00
Migrate SolidBrush tests
JimBobSquarePants Mar 4, 2026
405b253
Migrate SweetGradientBrush tests
JimBobSquarePants Mar 4, 2026
e8922e4
Migrate RecolorBrush tests
JimBobSquarePants Mar 4, 2026
79f0909
Migrate SolidBezier tests
JimBobSquarePants Mar 4, 2026
64bcbb0
Migrate Blending tests
JimBobSquarePants Mar 4, 2026
0753ee0
Migrate Clip tests
JimBobSquarePants Mar 4, 2026
7f5f3d6
Migrate robustness tests
JimBobSquarePants Mar 4, 2026
1dd49af
Migrate Issues tests
JimBobSquarePants Mar 4, 2026
a0d0bb8
Migrate SVGPath tests
JimBobSquarePants Mar 4, 2026
fd0babf
Cleanup references
JimBobSquarePants Mar 4, 2026
697319e
Optimize refs
JimBobSquarePants Mar 4, 2026
368f99d
Remove legacy APIs
JimBobSquarePants Mar 4, 2026
691bc17
Fix build
JimBobSquarePants Mar 4, 2026
3fc0488
Update ImageSharp.Drawing.sln
JimBobSquarePants Mar 4, 2026
f4a3b87
Include binaries use streaming for composition
JimBobSquarePants Mar 4, 2026
73e4347
Update ImageSharp.Drawing.Tests.csproj
JimBobSquarePants Mar 4, 2026
d8e0910
Use tolerance comparer
JimBobSquarePants Mar 4, 2026
c2db283
Update DrawingCanvasTests.RegionAndState.cs
JimBobSquarePants Mar 4, 2026
18a51df
Skip WebGPU drawing tests on Linux
JimBobSquarePants Mar 4, 2026
2ec6284
Skip WebGPU tests for all CI
JimBobSquarePants Mar 4, 2026
f427d04
Remove rasterizer config
JimBobSquarePants Mar 4, 2026
d427d29
Replace PolygonScanner with DefaultRasterizer and optimize
JimBobSquarePants Mar 5, 2026
35c4445
Feng shui all the things.
JimBobSquarePants Mar 5, 2026
d06676f
Remove unused type
JimBobSquarePants Mar 5, 2026
d8a57f8
Reuse WorkerScratch across rasterizer calls + optimizations
JimBobSquarePants Mar 5, 2026
7d50cf9
Fix tile mapping and dispatch dimensions
JimBobSquarePants Mar 5, 2026
6fbc481
Use output texture for readback to avoid copy
JimBobSquarePants Mar 5, 2026
0d6f935
Add CSR shaders; restructure WebGPU shaders & tests
JimBobSquarePants Mar 6, 2026
ccf8a4a
Switch to CSR-based composite shaders
JimBobSquarePants Mar 6, 2026
49ebbe6
Add start_cover fast path; skip outside edges
JimBobSquarePants Mar 6, 2026
36425d1
Compute CSR on CPU; refactor coverage rasterizer
JimBobSquarePants Mar 6, 2026
5a3b89a
Update DrawingCanvasTests.Process.cs
JimBobSquarePants Mar 6, 2026
bb7311e
Switch edge buffers to IMemoryOwner
JimBobSquarePants Mar 6, 2026
8da2642
Pre-split edges into band-sorted buffers (remove CSR)
JimBobSquarePants Mar 6, 2026
34f110f
Add small-geometry fast path to rasterizer
JimBobSquarePants Mar 6, 2026
1229e73
Update reference images
JimBobSquarePants Mar 6, 2026
67d8078
Update Draw_NormalizeOutputFalse_MatchesReference_Rgba32.png
JimBobSquarePants Mar 6, 2026
c7ae446
Bump tolerance
JimBobSquarePants Mar 6, 2026
b5c1f8a
Fix #344
JimBobSquarePants Mar 6, 2026
da77460
Fix #367
JimBobSquarePants Mar 6, 2026
a95d910
Fix #244
JimBobSquarePants Mar 6, 2026
cde991c
Add AntialiasThreshold and aliased mode
JimBobSquarePants Mar 7, 2026
a96c74c
Remove FillPath API from drawing backends
JimBobSquarePants Mar 7, 2026
23c5c37
Add WebGPUWindowDemo and backend feature checks
JimBobSquarePants Mar 7, 2026
aee48a5
Make API public
JimBobSquarePants Mar 7, 2026
b04a0ec
Remove NormalizeOutput
JimBobSquarePants Mar 7, 2026
2f0a7f6
Move stroking to the GPU
JimBobSquarePants Mar 7, 2026
fa6b1db
Add GPU stroke expand shader & refactor strokes
JimBobSquarePants Mar 8, 2026
bc0fb83
Add per-band stroke rasterization and StrokeEdgeFlags
JimBobSquarePants Mar 8, 2026
5ac7af4
Update docs
JimBobSquarePants Mar 8, 2026
fc1c65c
Update reference images
JimBobSquarePants Mar 8, 2026
6f7e0c6
GPU: add gradient, pattern & recolor brushes
JimBobSquarePants Mar 8, 2026
ea688af
Replace DashPathSplitter with GenerateDashes extension
JimBobSquarePants Mar 8, 2026
63dbd46
Add ReleaseFrameResources and WebGPU CPU cache key
JimBobSquarePants Mar 8, 2026
233b04e
Add new text measuring tests
JimBobSquarePants Mar 9, 2026
837df16
Migrate drawing transforms to Matrix4x4
JimBobSquarePants Mar 10, 2026
2115d36
Attempt to run WebGPU tests in CI
JimBobSquarePants Mar 10, 2026
4f37759
Use explicit theory with runtime support check
JimBobSquarePants Mar 10, 2026
d88e6de
Update build-and-test.yml
JimBobSquarePants Mar 10, 2026
e1c2605
Cache WebGPU support and gate drawing backend
JimBobSquarePants Mar 10, 2026
e058bf3
Use PNG for comparison
JimBobSquarePants Mar 10, 2026
76a17bc
Update WebGPUDrawingBackendTests.cs
JimBobSquarePants Mar 10, 2026
cd3565e
Remove duplicate assertion
JimBobSquarePants Mar 10, 2026
a22d843
Verify WebGPU compute pipeline in ProbeSupport
JimBobSquarePants Mar 10, 2026
08f2985
Add RemoteExecutor and WebGPU probe
JimBobSquarePants Mar 10, 2026
6c934ce
Add missing tests.
JimBobSquarePants Mar 10, 2026
dc97cf2
Merge branch 'main' into js/canvas-api
JimBobSquarePants Mar 10, 2026
488bed4
Add GPU layer compositing and shared WGSL snippets
JimBobSquarePants Mar 10, 2026
3c351a9
Remove reference codecs and simplify tests
JimBobSquarePants Mar 10, 2026
355b56c
Add pre-flattened paths and FlattenAndTransform helper
JimBobSquarePants Mar 10, 2026
819bc18
Optimize Bezier subdivision and list allocation
JimBobSquarePants Mar 10, 2026
9eb8dee
Use IMemoryOwner for edge and band offset buffers
JimBobSquarePants Mar 10, 2026
8344111
Cleanup
JimBobSquarePants Mar 10, 2026
dc538ad
Use auto-properties; drop isRoot flag
JimBobSquarePants Mar 10, 2026
fca77ba
Add no AA rectangle tests
JimBobSquarePants Mar 10, 2026
ba57846
Remove some copying.
JimBobSquarePants Mar 10, 2026
7a08695
Update dependencies
JimBobSquarePants Mar 12, 2026
e146a2b
Refactor path flattening and remove tessellation
JimBobSquarePants Mar 12, 2026
04b6c65
Handle different separators in SVG parsing
JimBobSquarePants Mar 15, 2026
4117466
Cache flattening properly.
JimBobSquarePants Mar 15, 2026
5a1c4ed
Refactor CPU to actually follow architecture
JimBobSquarePants Mar 16, 2026
586fe94
Refactor composition preparation and batching
JimBobSquarePants Mar 17, 2026
3441b89
Fix orientation, update ref output
JimBobSquarePants Mar 17, 2026
6a1c8be
Update refs
JimBobSquarePants Mar 17, 2026
aca600d
semi-reasonable performance
JimBobSquarePants Mar 18, 2026
5add5a3
Update FlushScene.cs
JimBobSquarePants Mar 18, 2026
b796ece
Remove GeometryPreparationCache and cache bands
JimBobSquarePants Mar 19, 2026
2fbb74a
Remove obsolete enforceFillOrientation flag
JimBobSquarePants Mar 19, 2026
359bc73
Remove enforceFillOrientation; simplify Reverse
JimBobSquarePants Mar 19, 2026
403b4fb
Reimplement all GPU brushes
JimBobSquarePants Mar 19, 2026
108bf55
Support per-draw blend mode and alpha in WebGPU
JimBobSquarePants Mar 20, 2026
fdb5ef8
Extract DeviceSharedState to WebGPURuntime
JimBobSquarePants Mar 20, 2026
d9e128e
Add inline layer support to compositing pipeline
JimBobSquarePants Mar 20, 2026
3e512d5
Refactor brush renderers and FlushScene parallel loop
JimBobSquarePants Mar 20, 2026
f0fe9d9
Refactor WebGPU encoder and linearize path model
JimBobSquarePants Mar 24, 2026
1159f09
Cleanup and document
JimBobSquarePants Mar 24, 2026
7be0001
Treat TargetFramework as local in csproj
JimBobSquarePants Mar 24, 2026
44fa989
Pass layer bounds and refactor rasterizer spans
JimBobSquarePants Mar 24, 2026
6f97c13
Buffer contiguous spans to batch row callbacks
JimBobSquarePants Mar 24, 2026
b29a440
Apply DestinationOffset for path point translation
JimBobSquarePants Mar 25, 2026
bd8d170
Add aliased fine-pass threshold shader and plumbing
JimBobSquarePants Mar 25, 2026
ea883f8
Move WGSL sources to Shaders/WgslSource
JimBobSquarePants Mar 25, 2026
a60f921
Add 3rd part notices
JimBobSquarePants Mar 25, 2026
0937ae3
Add WebGPU scene support & optimize encoding
JimBobSquarePants Mar 25, 2026
ce482dc
Add docs and helpers for WebGPU shaders & backend
JimBobSquarePants Mar 25, 2026
98f4309
Add sample; add WebGPU chunking.
JimBobSquarePants Mar 25, 2026
dccffdc
Use CI solution in scripts; tweak sample csproj
JimBobSquarePants Mar 25, 2026
2fd7a8d
Update refs
JimBobSquarePants Mar 25, 2026
d1d1007
Update WgslSourceGenerator.cs
JimBobSquarePants Mar 25, 2026
001c9b1
Add tolerance
JimBobSquarePants Mar 25, 2026
39472dd
Update ci-test.ps1
JimBobSquarePants Mar 25, 2026
e327130
Update docs.
JimBobSquarePants Mar 26, 2026
a801d03
add Skia "benchmark backend" options to DrawingBackendBenchmark
antonfirsov Mar 28, 2026
b75449f
tmp - progress capture only
JimBobSquarePants Mar 30, 2026
76af5f8
Improve GPU perf
JimBobSquarePants Mar 31, 2026
3e90cfc
Fix chunking
JimBobSquarePants Mar 31, 2026
7e338eb
cleanup
JimBobSquarePants Mar 31, 2026
e80c72e
Cache and reuse scheduling arena across flushes
JimBobSquarePants Mar 31, 2026
9541b2c
Add reusable WebGPU scene resource arena
JimBobSquarePants Mar 31, 2026
108cac3
Refactor scheduling & resource arena helpers
JimBobSquarePants Mar 31, 2026
b47a539
Remove debug logging
JimBobSquarePants Mar 31, 2026
371aa37
Add slowpath transform
JimBobSquarePants Mar 31, 2026
16a02bd
Apply transforms
JimBobSquarePants Apr 1, 2026
d5d1d76
Fix gradient brushes
JimBobSquarePants Apr 1, 2026
c6fc3ab
Fix GPU stroking and ImageBrush
JimBobSquarePants Apr 1, 2026
557111d
Fix GPU brush transforms
JimBobSquarePants Apr 1, 2026
4ebf33d
Test pass.
JimBobSquarePants Apr 1, 2026
eab9402
Implement retained stroke rasterization and stroke commands
JimBobSquarePants Apr 2, 2026
eba4bd0
Clean up public API
JimBobSquarePants Apr 2, 2026
9b31222
Centralize WebGPU probes into WebGPURuntime
JimBobSquarePants Apr 2, 2026
073e2b7
Patch test, update docs
JimBobSquarePants Apr 2, 2026
44d0e74
Honor MaxDegreeOfParallelism in flush
JimBobSquarePants Apr 2, 2026
5553d94
Add Fill symmetry, new Pie polygon, and migrate to extensions
JimBobSquarePants Apr 2, 2026
5eac1ee
Simplify tests and update docs
JimBobSquarePants Apr 4, 2026
aba2197
detangle build version numbers
JimBobSquarePants Apr 4, 2026
5077d42
Add PathBuilder shape helpers; normalize angles to degrees
JimBobSquarePants Apr 9, 2026
d07e429
Fix tests
JimBobSquarePants Apr 9, 2026
7fc45bb
Add ParallelExecutionHelper for partitioning
JimBobSquarePants Apr 9, 2026
2b217b6
Update refs
JimBobSquarePants Apr 9, 2026
99c2bd4
Update ImageSharp ref
JimBobSquarePants Apr 9, 2026
ef29546
Cleanup API and fix demo FPS display
JimBobSquarePants Apr 9, 2026
2e46ac7
Inline explicit layers; remove compose pass, fix issues
JimBobSquarePants Apr 9, 2026
0110ef5
Include square line cap in bounds; update WebGPU tests
JimBobSquarePants Apr 9, 2026
cc01945
Improve coverage a little
JimBobSquarePants Apr 9, 2026
a4d0378
Add emoji grid text rendering test and bump Fonts
JimBobSquarePants Apr 9, 2026
24af798
Fix parallel bounds, use configuration
JimBobSquarePants Apr 11, 2026
36f2203
Replace Lease-based runtime with shared API
JimBobSquarePants Apr 11, 2026
1290892
Remove HybridCanvasFrame and hybrid APIs
JimBobSquarePants Apr 11, 2026
920b798
Replace TryReadback API with Readback methods, remove Shutdown
JimBobSquarePants Apr 11, 2026
a6de45e
benchmark parallel efficiency and overhead
antonfirsov Apr 11, 2026
7ed6fbf
Introduce safe WebGPU handle wrappers
JimBobSquarePants Apr 14, 2026
636bc6d
Merge branch 'js/canvas-api' of https://github.com/SixLabors/ImageSha…
JimBobSquarePants Apr 14, 2026
53ee7c9
Use WebGPUEnvironmentError for probe results
JimBobSquarePants Apr 14, 2026
951ef8c
Use error codes in test attributes.
JimBobSquarePants Apr 14, 2026
8e80543
Make ToLinearGeometry() cache threadsafe.
JimBobSquarePants Apr 14, 2026
f1a0cdb
Merge -> Concat
JimBobSquarePants Apr 14, 2026
6b2632f
Use inline array, fix GPU retry counter logic
JimBobSquarePants Apr 14, 2026
5c821fc
Update src/ImageSharp.Drawing/Processing/Backends/DefaultDrawingBacke…
JimBobSquarePants Apr 14, 2026
f5cf5c0
Update src/ImageSharp.Drawing/Processing/Backends/ParallelExecutionHe…
JimBobSquarePants Apr 14, 2026
ada96d1
Merge branch 'js/canvas-api' of https://github.com/SixLabors/ImageSha…
JimBobSquarePants Apr 14, 2026
390d2a4
Update ParallelExecutionHelper.cs
JimBobSquarePants Apr 14, 2026
8935070
ProcessWithCanvas -> Paint
JimBobSquarePants Apr 14, 2026
1af0996
Process -> Apply
JimBobSquarePants Apr 14, 2026
64edabf
Add useful scripts.
JimBobSquarePants Apr 14, 2026
f61551d
restructure solutions and fix DrawShapesWithImageSharp sample
antonfirsov Apr 18, 2026
8ebefc2
make the lines benchmark resizable
antonfirsov Apr 19, 2026
e48c02c
Refactor WebGPU handles and render targets
JimBobSquarePants Apr 19, 2026
9637899
Use safe handle refs for WebGPU native calls via using
JimBobSquarePants Apr 19, 2026
84e2c32
Use DrawingOptions in composition and stroke commands
JimBobSquarePants Apr 19, 2026
185f7d6
Fix tests
JimBobSquarePants Apr 19, 2026
acca457
Update WebGPU docs.
JimBobSquarePants Apr 19, 2026
529615b
Align chunk tile heights to 16-row bins
JimBobSquarePants Apr 19, 2026
0f450fc
Add more efficient path-row shaders and sparse tile handling
JimBobSquarePants Apr 20, 2026
ecc069f
Fix benchmark resize handling
JimBobSquarePants Apr 20, 2026
d3c3979
Add hosted window API and samples + fix bugs/perf
JimBobSquarePants Apr 22, 2026
3fc9b18
Remove overly defensive guards
JimBobSquarePants Apr 22, 2026
d444734
Make CloneForClearOperation internal
JimBobSquarePants Apr 22, 2026
b89a0af
Use IEnumerable for DrawGlyphs
JimBobSquarePants Apr 22, 2026
f1ec587
Unify text measurement API to TextMetrics
JimBobSquarePants Apr 22, 2026
de08b34
Remove InnerJoin config, ensure WebGPU configuration coverage
JimBobSquarePants Apr 24, 2026
872b315
Remove WebGPUTextureTransfer and use Readback APIs
JimBobSquarePants Apr 24, 2026
dd37975
Remove partial modifier from DrawingCanvas
JimBobSquarePants Apr 24, 2026
a50e945
Rename DrawingCanvasExtensions class
JimBobSquarePants Apr 24, 2026
d8706d4
Full cleanup pass
JimBobSquarePants Apr 24, 2026
1defc56
Use WebGPUHostedSurface and normalize API
JimBobSquarePants Apr 27, 2026
76ff622
Treat DeviceLost a non-fatal until it is.
JimBobSquarePants Apr 27, 2026
681b5a4
Refactor WebGPU resource allocation to throw
JimBobSquarePants Apr 27, 2026
e79e82a
Replace TryReadRegion with ReadRegion (throws)
JimBobSquarePants Apr 27, 2026
b5c6458
Add Apply readback scene and UI wiring
JimBobSquarePants Apr 27, 2026
07c74ad
Make NativeSurface abstract, simplify, and add WebGPU surface
JimBobSquarePants Apr 27, 2026
210df0d
Make types internal
JimBobSquarePants Apr 27, 2026
356bbd8
Add WebGPU path-gradient support and remove fallback behavior
JimBobSquarePants Apr 27, 2026
1310439
Move canvas convenience APIs to extensions
JimBobSquarePants Apr 27, 2026
c343942
Normalize stroke docs.
JimBobSquarePants Apr 27, 2026
dfd3237
Update TextBuilderTests.cs
JimBobSquarePants Apr 27, 2026
24386f0
Update PathTests.cs
JimBobSquarePants Apr 27, 2026
970a42e
More Path extensions tests
JimBobSquarePants Apr 27, 2026
d15c48b
Add FillPath_UncontainedGeometry WebGPU test
JimBobSquarePants Apr 27, 2026
1771beb
Handle point strokes in WebGPU encoder
JimBobSquarePants Apr 27, 2026
93d4c77
Use Allocator/IMemoryOwner instead of ArrayPool
JimBobSquarePants Apr 27, 2026
654b96b
Use WebGPUNativeTarget and refactor native surface
JimBobSquarePants Apr 28, 2026
66b9e71
Rename HostedSurface to ExternalSurface
JimBobSquarePants Apr 28, 2026
dedd939
Remove FramebufferSize from WebGPUSurfaceFrame
JimBobSquarePants Apr 28, 2026
c2e93f8
Remove Present method; auto-present on Dispose
JimBobSquarePants Apr 28, 2026
6dc2adc
Make presentMode readonly; remove properties
JimBobSquarePants Apr 28, 2026
5c7fae3
Introduce DrawingCanvas base type and APIs
JimBobSquarePants Apr 28, 2026
1045220
Introduce FlattenedPointBuilder and rendering optimizations
JimBobSquarePants Apr 28, 2026
2dee25d
Add rich drawing samples and assets. Fix SaveLayer clipping
JimBobSquarePants Apr 28, 2026
c4f08fa
Clean up images that shouldn't be there.
JimBobSquarePants Apr 28, 2026
a31ec09
Tweak sample
JimBobSquarePants Apr 28, 2026
f043269
Add files to LFS
JimBobSquarePants Apr 28, 2026
9a12335
Dispose Canvas then ensure surface handle release
JimBobSquarePants Apr 28, 2026
b6bc3f8
Make DrawingCanvas factory internal and update tests
JimBobSquarePants Apr 28, 2026
6fa5d73
ImageSharp.Drawing.All
antonfirsov Apr 29, 2026
8dfce85
simplify CompositePixelRegistration storage and related lookup methods
antonfirsov Apr 29, 2026
69d2cba
fix xmldoc leftover
antonfirsov Apr 29, 2026
2ed1c0a
delete unused code
antonfirsov Apr 30, 2026
86c1fbe
Add retained drawing scenes and refactor WebGPU
JimBobSquarePants Apr 30, 2026
f53fd52
Merge branch 'js/canvas-api' of https://github.com/SixLabors/ImageSha…
JimBobSquarePants Apr 30, 2026
c71f248
Remove TPixel generics from WebGPU API
JimBobSquarePants Apr 30, 2026
f80477d
Refactor drawing backend API and WebGPU helpers
JimBobSquarePants Apr 30, 2026
0169887
Add partitioned parallel encoding for WebGPU scenes
JimBobSquarePants Apr 30, 2026
78d680d
Add WebGPU uncaptured-error handling and safety
JimBobSquarePants Apr 30, 2026
24c7c6e
Add retain regression tests
JimBobSquarePants Apr 30, 2026
8b314aa
Remove TryGetOrCreateSharedBuffer
JimBobSquarePants Apr 30, 2026
fd5a72d
Refactor WebGPU buffer creation helpers to remove Try
JimBobSquarePants Apr 30, 2026
03bd40a
Merge branch 'js/canvas-api' of https://github.com/SixLabors/ImageSha…
antonfirsov Apr 30, 2026
1dfca18
delete unused code
antonfirsov Apr 30, 2026
be9ab86
delete more dead code
antonfirsov Apr 30, 2026
66327e4
Rename Graphics to DeviceContext and make field
JimBobSquarePants Apr 30, 2026
7c66fb2
Remove WebGPUNativeSurfaceFactory
JimBobSquarePants Apr 30, 2026
884c0f7
Add ReadbackImage API and Buffer2DRegion usage
JimBobSquarePants May 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,12 +92,12 @@ jobs:
framework: net8.0
sdk: 8.0.x
runtime: -x64
codecov: true
codecov: false
- os: macos-26
framework: net8.0
sdk: 8.0.x
runtime: -x64
codecov: false
codecov: true
- os: windows-latest
framework: net8.0
sdk: 8.0.x
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -227,4 +227,7 @@ artifacts/

/tests/CodeCoverage/OpenCover.*
SixLabors.Shapes.Coverage.xml
/tests/SixLabors.Shapes.Benchmarks/BenchmarkDotNet.Artifacts/results/
/tests/SixLabors.Shapes.Benchmarks/BenchmarkDotNet.Artifacts/results/
.dotnet
.codex-*
.claude
11 changes: 11 additions & 0 deletions ImageSharp.Drawing.CI.slnf
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"solution": {
"path": "ImageSharp.Drawing.sln",
"projects": [
"src\\ImageSharp.Drawing.WebGPU.ShaderGen\\ImageSharp.Drawing.WebGPU.ShaderGen.csproj",
"src\\ImageSharp.Drawing.WebGPU\\ImageSharp.Drawing.WebGPU.csproj",
"src\\ImageSharp.Drawing\\ImageSharp.Drawing.csproj",
"tests\\ImageSharp.Drawing.Tests\\ImageSharp.Drawing.Tests.csproj"
]
}
}
98 changes: 98 additions & 0 deletions ImageSharp.Drawing.sln
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "_root", "_root", "{C317F1B1
Directory.Build.targets = Directory.Build.targets
LICENSE = LICENSE
README.md = README.md
THIRD-PARTY-NOTICES = THIRD-PARTY-NOTICES
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".github", ".github", "{1799C43E-5C54-4A8F-8D64-B1475241DB0D}"
Expand Down Expand Up @@ -332,33 +333,125 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{5286
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DrawShapesWithImageSharp", "samples\DrawShapesWithImageSharp\DrawShapesWithImageSharp.csproj", "{5493F024-0A3F-420C-AC2D-05B77A36025B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DrawingBackendBenchmark", "samples\DrawingBackendBenchmark\DrawingBackendBenchmark.csproj", "{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "workflows", "workflows", "{23859314-5693-4E6C-BE5C-80A433439D2A}"
ProjectSection(SolutionItems) = preProject
.github\workflows\build-and-test.yml = .github\workflows\build-and-test.yml
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageSharp.Drawing.WebGPU", "src\ImageSharp.Drawing.WebGPU\ImageSharp.Drawing.WebGPU.csproj", "{061582C2-658F-40AE-A978-7D74A4EB2C0A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebGPUWindowDemo", "samples\WebGPUWindowDemo\WebGPUWindowDemo.csproj", "{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ImageSharp.Drawing.WebGPU.ShaderGen", "src\ImageSharp.Drawing.WebGPU.ShaderGen\ImageSharp.Drawing.WebGPU.ShaderGen.csproj", "{C7606104-5D58-4670-912C-3F336606B02D}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|x64.ActiveCfg = Debug|Any CPU
{2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|x64.Build.0 = Debug|Any CPU
{2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|x86.ActiveCfg = Debug|Any CPU
{2E33181E-6E28-4662-A801-E2E7DC206029}.Debug|x86.Build.0 = Debug|Any CPU
{2E33181E-6E28-4662-A801-E2E7DC206029}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2E33181E-6E28-4662-A801-E2E7DC206029}.Release|Any CPU.Build.0 = Release|Any CPU
{2E33181E-6E28-4662-A801-E2E7DC206029}.Release|x64.ActiveCfg = Release|Any CPU
{2E33181E-6E28-4662-A801-E2E7DC206029}.Release|x64.Build.0 = Release|Any CPU
{2E33181E-6E28-4662-A801-E2E7DC206029}.Release|x86.ActiveCfg = Release|Any CPU
{2E33181E-6E28-4662-A801-E2E7DC206029}.Release|x86.Build.0 = Release|Any CPU
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Debug|x64.ActiveCfg = Debug|Any CPU
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Debug|x64.Build.0 = Debug|Any CPU
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Debug|x86.ActiveCfg = Debug|Any CPU
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Debug|x86.Build.0 = Debug|Any CPU
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Release|Any CPU.Build.0 = Release|Any CPU
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Release|x64.ActiveCfg = Release|Any CPU
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Release|x64.Build.0 = Release|Any CPU
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Release|x86.ActiveCfg = Release|Any CPU
{EA3000E9-2A91-4EC4-8A68-E566DEBDC4F6}.Release|x86.Build.0 = Release|Any CPU
{59804113-1DD4-4F80-8D06-35FF71652508}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{59804113-1DD4-4F80-8D06-35FF71652508}.Debug|Any CPU.Build.0 = Debug|Any CPU
{59804113-1DD4-4F80-8D06-35FF71652508}.Debug|x64.ActiveCfg = Debug|Any CPU
{59804113-1DD4-4F80-8D06-35FF71652508}.Debug|x64.Build.0 = Debug|Any CPU
{59804113-1DD4-4F80-8D06-35FF71652508}.Debug|x86.ActiveCfg = Debug|Any CPU
{59804113-1DD4-4F80-8D06-35FF71652508}.Debug|x86.Build.0 = Debug|Any CPU
{59804113-1DD4-4F80-8D06-35FF71652508}.Release|Any CPU.ActiveCfg = Release|Any CPU
{59804113-1DD4-4F80-8D06-35FF71652508}.Release|Any CPU.Build.0 = Release|Any CPU
{59804113-1DD4-4F80-8D06-35FF71652508}.Release|x64.ActiveCfg = Release|Any CPU
{59804113-1DD4-4F80-8D06-35FF71652508}.Release|x64.Build.0 = Release|Any CPU
{59804113-1DD4-4F80-8D06-35FF71652508}.Release|x86.ActiveCfg = Release|Any CPU
{59804113-1DD4-4F80-8D06-35FF71652508}.Release|x86.Build.0 = Release|Any CPU
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Debug|x64.ActiveCfg = Debug|Any CPU
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Debug|x64.Build.0 = Debug|Any CPU
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Debug|x86.ActiveCfg = Debug|Any CPU
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Debug|x86.Build.0 = Debug|Any CPU
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Release|Any CPU.Build.0 = Release|Any CPU
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Release|x64.ActiveCfg = Release|Any CPU
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Release|x64.Build.0 = Release|Any CPU
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Release|x86.ActiveCfg = Release|Any CPU
{5493F024-0A3F-420C-AC2D-05B77A36025B}.Release|x86.Build.0 = Release|Any CPU
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}.Debug|x64.ActiveCfg = Debug|Any CPU
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}.Debug|x64.Build.0 = Debug|Any CPU
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}.Debug|x86.ActiveCfg = Debug|Any CPU
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}.Debug|x86.Build.0 = Debug|Any CPU
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}.Release|Any CPU.Build.0 = Release|Any CPU
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}.Release|x64.ActiveCfg = Release|Any CPU
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}.Release|x64.Build.0 = Release|Any CPU
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}.Release|x86.ActiveCfg = Release|Any CPU
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4}.Release|x86.Build.0 = Release|Any CPU
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Debug|x64.ActiveCfg = Debug|Any CPU
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Debug|x64.Build.0 = Debug|Any CPU
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Debug|x86.ActiveCfg = Debug|Any CPU
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Debug|x86.Build.0 = Debug|Any CPU
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Release|Any CPU.Build.0 = Release|Any CPU
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Release|x64.ActiveCfg = Release|Any CPU
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Release|x64.Build.0 = Release|Any CPU
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Release|x86.ActiveCfg = Release|Any CPU
{061582C2-658F-40AE-A978-7D74A4EB2C0A}.Release|x86.Build.0 = Release|Any CPU
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}.Debug|x64.ActiveCfg = Debug|Any CPU
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}.Debug|x64.Build.0 = Debug|Any CPU
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}.Debug|x86.ActiveCfg = Debug|Any CPU
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}.Debug|x86.Build.0 = Debug|Any CPU
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}.Release|Any CPU.Build.0 = Release|Any CPU
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}.Release|x64.ActiveCfg = Release|Any CPU
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}.Release|x64.Build.0 = Release|Any CPU
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}.Release|x86.ActiveCfg = Release|Any CPU
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA}.Release|x86.Build.0 = Release|Any CPU
{C7606104-5D58-4670-912C-3F336606B02D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C7606104-5D58-4670-912C-3F336606B02D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C7606104-5D58-4670-912C-3F336606B02D}.Debug|x64.ActiveCfg = Debug|Any CPU
{C7606104-5D58-4670-912C-3F336606B02D}.Debug|x64.Build.0 = Debug|Any CPU
{C7606104-5D58-4670-912C-3F336606B02D}.Debug|x86.ActiveCfg = Debug|Any CPU
{C7606104-5D58-4670-912C-3F336606B02D}.Debug|x86.Build.0 = Debug|Any CPU
{C7606104-5D58-4670-912C-3F336606B02D}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C7606104-5D58-4670-912C-3F336606B02D}.Release|Any CPU.Build.0 = Release|Any CPU
{C7606104-5D58-4670-912C-3F336606B02D}.Release|x64.ActiveCfg = Release|Any CPU
{C7606104-5D58-4670-912C-3F336606B02D}.Release|x64.Build.0 = Release|Any CPU
{C7606104-5D58-4670-912C-3F336606B02D}.Release|x86.ActiveCfg = Release|Any CPU
{C7606104-5D58-4670-912C-3F336606B02D}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand All @@ -385,12 +478,17 @@ Global
{59804113-1DD4-4F80-8D06-35FF71652508} = {56801022-D71A-4FBE-BC5B-CBA08E2284EC}
{68A8CC40-6AED-4E96-B524-31B1158FDEEA} = {815C0625-CD3D-440F-9F80-2D83856AB7AE}
{5493F024-0A3F-420C-AC2D-05B77A36025B} = {528610AC-7C0C-46E8-9A2D-D46FD92FEE29}
{7A9D2E23-4EF4-4C10-A449-2E80E37F26D4} = {528610AC-7C0C-46E8-9A2D-D46FD92FEE29}
{23859314-5693-4E6C-BE5C-80A433439D2A} = {1799C43E-5C54-4A8F-8D64-B1475241DB0D}
{061582C2-658F-40AE-A978-7D74A4EB2C0A} = {815C0625-CD3D-440F-9F80-2D83856AB7AE}
{2541FDCD-78AC-40DB-B5E3-6A715DC132BA} = {528610AC-7C0C-46E8-9A2D-D46FD92FEE29}
{C7606104-5D58-4670-912C-3F336606B02D} = {815C0625-CD3D-440F-9F80-2D83856AB7AE}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {5F8B9D1F-CD8B-4CC5-8216-D531E25BD795}
EndGlobalSection
GlobalSection(SharedMSBuildProjectFiles) = preSolution
shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.projitems*{061582c2-658f-40ae-a978-7d74a4eb2c0a}*SharedItemsImports = 5
shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.projitems*{2e33181e-6e28-4662-a801-e2e7dc206029}*SharedItemsImports = 5
shared-infrastructure\src\SharedInfrastructure\SharedInfrastructure.projitems*{68a8cc40-6aed-4e96-b524-31b1158fdeea}*SharedItemsImports = 13
EndGlobalSection
Expand Down
11 changes: 3 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,10 @@ SixLabors.ImageSharp.Drawing
[![Build Status](https://img.shields.io/github/actions/workflow/status/SixLabors/ImageSharp.Drawing/build-and-test.yml?branch=main)](https://github.com/SixLabors/ImageSharp.Drawing/actions)
[![Code coverage](https://codecov.io/gh/SixLabors/ImageSharp.Drawing/branch/main/graph/badge.svg)](https://codecov.io/gh/SixLabors/ImageSharp.Drawing)
[![License: Six Labors Split](https://img.shields.io/badge/license-Six%20Labors%20Split-%23e30183)](https://github.com/SixLabors/ImageSharp.Drawing/blob/main/LICENSE)
[![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=flat&logo=twitter)](https://twitter.com/intent/tweet?hashtags=imagesharp,dotnet,oss&text=ImageSharp.+A+new+cross-platform+2D+graphics+API+in+C%23&url=https%3a%2f%2fgithub.com%2fSixLabors%2fImageSharp&via=sixlabors)

</div>

### **ImageSharp.Drawing** provides extensions to ImageSharp containing powerful, cross-platform 2D polygon manipulation and drawing APIs.

Designed to democratize image processing, ImageSharp.Drawing brings you an incredibly powerful yet beautifully simple API.

Built against [.NET 6](https://docs.microsoft.com/en-us/dotnet/standard/net-standard), ImageSharp.Drawing can be used in device, cloud, and embedded/IoT scenarios.
**ImageSharp.Drawing** is a cross-platform 2D drawing library built on top of [ImageSharp](https://github.com/SixLabors/ImageSharp). It provides path construction, polygon manipulation, fills, strokes, gradient brushes, pattern brushes, and text rendering. Built against [.NET 8](https://docs.microsoft.com/en-us/dotnet/standard/net-standard).

## License

Expand Down Expand Up @@ -61,12 +56,12 @@ If you prefer, you can compile ImageSharp.Drawing yourself (please do and help!)

- Using [Visual Studio 2022](https://visualstudio.microsoft.com/vs/)
- Make sure you have the latest version installed
- Make sure you have [the .NET 7 SDK](https://www.microsoft.com/net/core#windows) installed
- Make sure you have [the .NET 8 SDK](https://www.microsoft.com/net/core#windows) installed

Alternatively, you can work from command line and/or with a lightweight editor on **both Linux/Unix and Windows**:

- [Visual Studio Code](https://code.visualstudio.com/) with [C# Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode.csharp)
- [the .NET 7 SDK](https://www.microsoft.com/net/core#linuxubuntu)
- [the .NET 8 SDK](https://www.microsoft.com/net/core#linuxubuntu)

To clone ImageSharp.Drawing locally, click the "Clone in [YOUR_OS]" button above or run the following git commands:

Expand Down
40 changes: 40 additions & 0 deletions THIRD-PARTY-NOTICES
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
SixLabors.ImageSharp.Drawing uses or incorporates ideas, algorithms, and/or
implementation guidance from third-party projects that are distributed under
licenses different from the Six Labors ImageSharp.Drawing software.

The attached notices are provided for informational purposes only. Please
review the original project repositories and license files for complete terms.

================================================================================

Blaze (https://github.com/aurimasg/blaze)
License: MIT

Portions of this software were developed with reference to the Blaze
project, including rasterization and related implementation techniques.
See also: src/ImageSharp.Drawing/Processing/Backends/DEFAULT_RASTERIZER.MD

Copyright (c) 2023 Aurimas Gasiulis

The Blaze project is distributed under the MIT License. The full license text
is available in the Blaze repository LICENSE file.

================================================================================

Vello (https://github.com/linebender/vello)
License: Apache-2.0 OR MIT

Portions of this software were developed with reference to the Vello project,
including GPU rasterization pipeline structure, shader stages, and related
implementation techniques.
See also:
- src/ImageSharp.Drawing.WebGPU/WEBGPU_BACKEND.md
- src/ImageSharp.Drawing.WebGPU/WEBGPU_RASTERIZER.md

Copyright 2020 the Vello Authors

The Vello project is distributed under the Apache License, Version 2.0, or the
MIT License. The full license texts are available in the Vello repository
LICENSE-APACHE and LICENSE-MIT files.

================================================================================
6 changes: 4 additions & 2 deletions ci-build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,11 @@ param(
[string]$targetFramework
)

dotnet clean -c Release
$solution = Join-Path $PSScriptRoot "ImageSharp.Drawing.CI.slnf"

dotnet clean $solution -c Release

$repositoryUrl = "https://github.com/$env:GITHUB_REPOSITORY"

# Building for a specific framework.
dotnet build -c Release -f $targetFramework /p:RepositoryUrl=$repositoryUrl
dotnet build $solution -c Release -f $targetFramework /p:RepositoryUrl=$repositoryUrl
6 changes: 4 additions & 2 deletions ci-pack.ps1
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
dotnet clean -c Release
$solution = Join-Path $PSScriptRoot "ImageSharp.Drawing.CI.slnf"

dotnet clean $solution -c Release

$repositoryUrl = "https://github.com/$env:GITHUB_REPOSITORY"

# Building for packing and publishing.
dotnet pack -c Release --output "$PSScriptRoot/artifacts" /p:RepositoryUrl=$repositoryUrl
dotnet pack $solution -c Release --output "$PSScriptRoot/artifacts" /p:RepositoryUrl=$repositoryUrl
7 changes: 4 additions & 3 deletions ci-test.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,13 @@ param(
)

$netFxRegex = '^net\d+'
$solution = Join-Path $PSScriptRoot "ImageSharp.Drawing.CI.slnf"

if ($codecov -eq 'true') {

# Allow toggling of profile to workaround any potential JIT errors caused by code injection.
dotnet clean -c $codecovProfile
dotnet test --collect "XPlat Code Coverage" --settings .\tests\coverlet.runsettings -c $codecovProfile -f $targetFramework /p:CodeCov=true
dotnet clean $solution -c $codecovProfile
dotnet test $solution --collect "XPlat Code Coverage" --settings .\tests\coverlet.runsettings -c $codecovProfile -f $targetFramework /p:CodeCov=true
}
elseif ($platform -eq '-x86' -and $targetFramework -match $netFxRegex) {

Expand All @@ -33,5 +34,5 @@ elseif ($platform -eq '-x86' -and $targetFramework -match $netFxRegex) {
}
else {

dotnet test --no-build -c Release -f $targetFramework
dotnet test $solution --no-build -c Release -f $targetFramework
}
Loading
Loading