Commit Graph

7939 Commits

Author SHA1 Message Date
Matthias Koefferlein 6253f04966 Fixed issue #2396 (support weak refs in Python) 2026-07-19 10:45:51 +02:00
Matthias Köfferlein 3c6b342448
Merge pull request #2387 from querielo/kirill/pixelbuffer-to-bytes
Add PixelBuffer#to_bytes for zero-overhead pixel access
2026-07-16 22:58:35 +02:00
Kirill Osipov 9a606ec4e9 Cap PixelBuffer.from_bytes dimensions at 64k x 64k
Following review feedback, the reader now rejects a header claiming a
width or height beyond 65536, guarding against malformed byte streams
that would otherwise trigger an unreasonable allocation. The writer
stays full 32-bit ('unlimited'), and native little-endian order and the
transparency mask are kept as-is. Adds Ruby and Python tests for the
oversized-header rejection.

Ref: https://github.com/KLayout/klayout/pull/2387#issuecomment-4984941409
2026-07-16 19:03:34 +02:00
Kirill Osipov 2fa7b24345 Add PixelBuffer#from_bytes and width/height header to to_bytes 2026-07-16 19:03:34 +02:00
Matthias Köfferlein 4ac26d686d
Merge pull request #2388 from KLayout/bugfix/issue-2384
Fixed issue #2384
2026-07-12 00:23:03 +02:00
Matthias Köfferlein fa043bc441
Merge pull request #2373 from nikosavola/nikosavola/push-toxvqxkontlt
Remove dead CI configurations
2026-07-12 00:18:26 +02:00
Matthias Köfferlein a84f440602
Merge pull request #2381 from KLayout/dependabot/github_actions/pypa/cibuildwheel-4.1.0
Bump pypa/cibuildwheel from 3.4.1 to 4.1.0
2026-07-12 00:16:55 +02:00
Matthias Köfferlein fdc30cc76b
Merge pull request #2382 from KLayout/dependabot/github_actions/actions/checkout-7
Bump actions/checkout from 6 to 7
2026-07-12 00:16:41 +02:00
Matthias Köfferlein 7f600cc24c
Merge pull request #2386 from querielo/kirill/multithread
Use multiple drawing workers for image_with_options rendering
2026-07-12 00:16:24 +02:00
Matthias Koefferlein 43a5d8c548 Fixed issue #2384
Problem was that the magnification was applied twice
when running the checks inside compound DRC checks.
2026-07-09 23:43:25 +02:00
Kirill Osipov 35ec1107b6 Add PixelBuffer#to_bytes for zero-overhead RGBA pixel access
Exposes a GSI method on tl::PixelBuffer that returns the raw ARGB32
contents as a byte vector (4 bytes per pixel, row-major, top to bottom)
via a single memcpy. Unlike to_png_data this skips all image encoding,
which is useful when the caller just wants direct pixel data.
2026-07-06 12:55:26 +02:00
Kirill Osipov 7d6aa2e728 Use multiple drawing workers for image_with_options rendering
LayoutCanvas::image_with_options always rendered the layout with a
single thread (workers = 0), which serialized image generation even on
views configured for parallel drawing. Now it honors the view's
drawing_workers() count when the view is not in synchronous mode, and
waits for the asynchronous workers to finish before reading back the
rendered bitmaps. This speeds up image export on large layouts while
preserving the original single-threaded behavior in synchronous mode.
2026-07-06 11:09:28 +02:00
dependabot[bot] b57b862a02
Bump actions/checkout from 6 to 7
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-01 21:12:39 +00:00
dependabot[bot] af66d6c4ab
Bump pypa/cibuildwheel from 3.4.1 to 4.1.0
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 3.4.1 to 4.1.0.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v3.4.1...v4.1.0)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-version: 4.1.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-07-01 21:12:34 +00:00
Niko Savola 463f51dcb0
Remove dead CI configurations 2026-06-22 16:14:58 +03:00
Matthias Koefferlein d352db146f Trying to fix unit tests with Python 3.14 - it delivers a different reference count under unit test conditions 2026-06-20 00:06:42 +02:00
Matthias Koefferlein 025a30ab2e Fixing package dependencies for Ubuntu 26 2026-06-18 23:52:46 +02:00
Matthias Koefferlein f71d13bff6 Adding Ubunut 26 support 2026-06-18 23:37:01 +02:00
Matthias Köfferlein 6d6596aedd
Merge pull request #2371 from nikosavola/nikosavola/push-ttnvpupwulrs
Use native concurrency groups in GitHub CI build workflow
2026-06-08 21:21:54 +02:00
Matthias Köfferlein c1fb406a10
Merge pull request #2372 from nikosavola/nikosavola/push-nopxwmtwsyly
Add caching for KLayout microbits in Azure Pipelines
2026-06-08 21:21:19 +02:00
Matthias Köfferlein adc63e21ea
Merge pull request #2370 from nikosavola/nikosavola/push-lumzkwruumtm
CI/CD triggers to skip builds on non-source changes
2026-06-08 21:19:57 +02:00
Niko Savola af7df87e0e
Use native concurrency groups in build workflow
The cancel-workflow-action step was likely added before native concurrency groups existed
2026-06-05 12:13:32 +03:00
Niko Savola b0bdc73a44
Optimize CI/CD triggers to skip builds on non-source changes 2026-06-05 12:08:55 +03:00
Niko Savola b7ed46482c
Add caching for KLayout microbits in Azure Pipelines 2026-06-05 12:00:09 +03:00
Matthias Koefferlein 6270877110 Updating stubs 2026-05-27 23:47:09 +02:00
Matthias Koefferlein 0a29d8926e Updating changelog 2026-05-27 22:51:27 +02:00
Matthias Köfferlein a6acda4f79
Merge pull request #2361 from KLayout/feature/issue-2360
Feature/issue 2360
2026-05-27 19:06:54 +02:00
Matthias Koefferlein 7d5f61db59 Issue #2360: Implemented name sorting by default (can be turned off) for 'make_top_level_pins' 2026-05-26 23:26:16 +02:00
Matthias Koefferlein 6e0d968058 Python stubs regenerated, DRC/LVS doc updated 2026-05-25 22:01:03 +02:00
Matthias Koefferlein 4db6afb5f3 Merge remote-tracking branch 'origin/bugfix/issue-2356' into wip 2026-05-25 20:51:55 +02:00
Matthias Koefferlein be8b165b6a Merge remote-tracking branch 'origin/bugfix/issue-2350' into wip 2026-05-25 20:51:42 +02:00
Matthias Koefferlein 2ea0936257 Preparations for 0.30.9 2026-05-25 20:39:01 +02:00
Matthias Koefferlein a10cfce1e7 Testdata variants needed (one for clang?) 2026-05-25 19:23:56 +02:00
Matthias Koefferlein 7508c8e4a4 Enabling context writing also for top cells - this allows the OASIS writer to generate proxy cells on output during fix of issue #2350 2026-05-25 01:13:58 +02:00
Matthias Koefferlein 37977d21e9 Fixing issue #2350 (strm2oas writes empty OAS)
Problem was that the OASIS writer was simply ignoring
all top level proxy cells (PCells, Library references).

The original bug #1835 fixed that by changing the
reader behavior, so it would keep top level proxies.
However, doing the spin through the writer got them
removed and in addition, the cleanup happing during
editing would also remove them.

Solution is to centralize the strategy of cleaning
cells. The cleanup now is changed to not remove
proxy top cells if they are the only ones. This is
consistent with the previous reader-only behavior.

The writer implements the same behavior by means
dropping cells marked for cleanup, instead of simply
skipping all proxy cells.
2026-05-25 00:09:38 +02:00
Matthias Koefferlein 249de43350 Fixed some compiler warnings 2026-05-25 00:07:30 +02:00
Matthias Koefferlein 9415e40916 Updating test data 2026-05-24 19:21:44 +02:00
Matthias Koefferlein 95271e3edc Fixing color interpolation of false color maps
Problem was when an interval was separated from
the rest through a discontinuous color and did not have any
color range (start and end color same).

The new scheme fixes the problem by computing a
data mapping that has two slightly distinct values
for the two discontinuous colors.
2026-05-24 19:17:33 +02:00
Matthias Koefferlein 472a7aa7fd Adding Gaussian hat average mode to density map 2026-05-24 19:17:23 +02:00
Matthias Koefferlein 0648ee1bd0 Merge branch 'wip' 2026-05-24 15:26:19 +02:00
Matthias Koefferlein 8992222d9d Enabling Qt-less builds 2026-05-24 15:10:21 +02:00
Matthias Koefferlein 378d2cd961 Changed visibility management of tool options (aka "Editor options")
Now, the tool options dock is either visible or not. Visibility
can be configured like for the other docks. Key binding stays
"F3" by default for the dock visibility.

The dock is populated with pages depending on the tool. It may
also be empty.
2026-05-24 14:10:45 +02:00
Matthias Koefferlein 4cc1d2ff9a Fixed a potential crash
This bug was triggered during development and happened
because the tool bar build code was invalidating
QAction objects indirectly while they are used for
building the main menu.

Solution is to separate building of menu bar and
tool bar / context menus.
2026-05-24 14:09:08 +02:00
Matthias Koefferlein cb918203c7 Adding the ruler options widget and disabling editor options in viewer mode 2026-05-24 00:17:25 +02:00
Matthias Koefferlein c8362d16f1 Adding a ruler options widget page 2026-05-24 00:16:35 +02:00
Matthias Koefferlein 98a8d370aa Tweaking the snap behavior on ruler move a little. 2026-05-24 00:15:51 +02:00
Matthias Koefferlein 3371333dd7 img plugin does not need editor options pages. 2026-05-24 00:14:18 +02:00
Matthias Koefferlein e42bb63e8a Renaming 'editor options' to 'tool options' 2026-05-24 00:13:51 +02:00
Matthias Koefferlein 4d77056da1 For more clarity change 'snap to objects (unless disabled in template)' to 'never snap to object' (inverted) in rulers config. 2026-05-24 00:11:57 +02:00
Matthias Koefferlein b5be4fc497 Small bugfix on object snap - observe snap directions
Problem: snapping with angle constraints and object snapping
sometimes gave results not conforming to the angle constaints.
This happened when shape edges are parallel to the cutlines that
define the angle constraint.
2026-05-24 00:00:30 +02:00