Skip to content

Skia canvas sealed - #100

Open
DenisUngemach wants to merge 5 commits into
masterfrom
skia_canvas_sealed
Open

Skia canvas sealed#100
DenisUngemach wants to merge 5 commits into
masterfrom
skia_canvas_sealed

Conversation

@DenisUngemach

@DenisUngemach DenisUngemach commented Jul 2, 2026

Copy link
Copy Markdown

Skia: remove unused filters.
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 now there are other errors in the build...

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.
@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown

Test Results

  188 files  ±0    188 suites  ±0   27m 10s ⏱️ -25s
4 733 tests ±0  4 710 ✅ ±0   23 💤 ±0  0 ❌ ±0 
6 867 runs  ±0  6 704 ✅ ±0  163 💤 ±0  0 ❌ ±0 

Results for commit 379cf16. ± Comparison against base commit 0a14bfe.

♻️ This comment has been updated with latest results.

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant