Skia canvas sealed - #100
Open
DenisUngemach wants to merge 5 commits into
Open
Conversation
Integrates an SWT’s canvas extension framework, which replacing the native backend for canvases with the SWT.SKIA style bit and leveraging OpenGL. - Includes core classes for rendering - resource management - a factory for SWT integration. - Implements caching for fonts, images, and text, supports DPI scaling, and manages Skija resources explicitly. - The plugin is modular, minimizes API changes, and is OSGi-activatable. - for more information read the skia.md in bundles/org.eclipse.swt.skia SkiaCanvas: Skia version update necessary. Bug for sealed classes - for adding the SWT.SKIA field, the version of SWT should be increased - there seams to be a bug on the api tools for sealed classes. Locally on my system, there are no api bugs for handle etc. But on github i get error messages, that handle etc are used. this only happens for sealed classes. Skia: remove copy jar sources to lib. Only causes warnings and errors. These are not necessary in the org.eclipse.swt.skia plugin. Only convenience. [linux] hashCode and equals in FontProperties added. Skia: use target orbit resource Skia: fix bugs. - GC.getClipping never returns null - standard line stype is solid - if fonts loading fails, it uses the standard SWT font. - if in Canvas scroll is used, the externalCanvas handler redraws. - image cache is by default off (image caching can cause bugs), text image works fine. Skia: surface recreate in the paint workflow Do not listen to resize actions and resize the skia surface there. It is possible that this call comes from not main thread and this causes crashes. Instead check in the paint workflow whether the canvas client area changed and recreate the surface if the canvas client area was modified there. There we are always in the right thread. Extract test projects, streamline dependencies SkiaTests: ensure tests will be executed and work. Skia: refactor to use interface abstractions for canvas and surface also add tests. Skia: add wrapper to skija calls. With that unit tests are possible. Skia: remove image cache feature. - can't be supported sufficiently. Because image modifications can happen with an open GC, then the cache can't be updated. It is possible to increase the image version at all GC drawing command on an image, but this is not desired for the current version of the skia drawing feature. SkiaTests: add tests. Skia: add zoom 150 and 200. Revert "SkiaCanvas: Skia version update necessary. Bug for sealed classes" This reverts commit a38657f.
- for adding the SWT.SKIA field, the version of SWT should be increased - there seams to be a bug on the api tools for sealed classes. Locally on my system, there are no api bugs for handle etc. But on github i get error messages, that handle etc are used. this only happens for sealed classes.
This was referenced Jul 2, 2026
DenisUngemach
force-pushed
the
skia_canvas_sealed
branch
from
August 13, 2026 17:22
c5d15b2 to
f0a2025
Compare
In the PR eclipse-platform#3231 there are two warnings: --------------------------------------------------------------------------------------------- Annotations Check warning on line 62 in eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java @jenkins-eclipse-platform-releng jenkins-eclipse-platform-releng / API Tools UNUSED_PROBLEM_FILTERS NORMAL: The API problem filter for: 'handle illegally implements org.eclipse.swt.graphics.GC' is no longer used Check warning on line 62 in eclipse.platform.swt/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/graphics/GC.java @jenkins-eclipse-platform-releng jenkins-eclipse-platform-releng / API Tools UNUSED_PROBLEM_FILTERS NORMAL: The API problem filter for: 'The field org.eclipse.swt.graphics.GC.handle has been added to a class' is no longer used ----------------------------------------------------------------------------------------------- This commit removes the specified filters in /skija-canvas/binaries/org.eclipse.swt.gtk.linux.x86_64/.settings/.api_filters, so these two errors should no longer come up. But not other errors in the build will occur.
DenisUngemach
force-pushed
the
skia_canvas_sealed
branch
from
August 14, 2026 08:22
f0a2025 to
379cf16
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Skia: remove unused filters.
In the PR eclipse-platform#3231
there are two warnings:
This commit removes the specified filters in
/skija-canvas/binaries/org.eclipse.swt.gtk.linux.x86_64/.settings/.api_filters,
so these two errors should no longer come up.
But now there are other errors in the build...