diff options
author | Nikita Gubarkov <Nikita.Gubarkov@jetbrains.com> | 2020-05-16 00:46:45 +0300 |
---|---|---|
committer | Nikita Gubarkov <Nikita.Gubarkov@jetbrains.com> | 2020-05-20 18:32:03 +0300 |
commit | 28b0dbf18c2fdb550ffca9a41a646a2cc21e710b (patch) | |
tree | a6dc8877570522981ec55ae4a5f0ffe5069ca99c /src/java.desktop/unix/classes/sun/java2d | |
parent | 9de2d941eff8bb1ad6622ea05eceaf7e92723eef (diff) | |
download | JetBrainsRuntime-28b0dbf18c2fdb550ffca9a41a646a2cc21e710b.tar.gz |
JBR-410 Added emoji support for Linux
Diffstat (limited to 'src/java.desktop/unix/classes/sun/java2d')
-rw-r--r-- | src/java.desktop/unix/classes/sun/java2d/xr/XRBackend.java | 4 | ||||
-rw-r--r-- | src/java.desktop/unix/classes/sun/java2d/xr/XRBackendNative.java | 14 |
2 files changed, 18 insertions, 0 deletions
diff --git a/src/java.desktop/unix/classes/sun/java2d/xr/XRBackend.java b/src/java.desktop/unix/classes/sun/java2d/xr/XRBackend.java index b44bca61ef0..dc8be1df223 100644 --- a/src/java.desktop/unix/classes/sun/java2d/xr/XRBackend.java +++ b/src/java.desktop/unix/classes/sun/java2d/xr/XRBackend.java @@ -94,6 +94,10 @@ public interface XRBackend { public void XRenderFreeGlyphs(int glyphSet, int[] gids); + public void addBGRAGlyphImages(int drawable, List<XRGlyphCacheEntry> cacheEntries); + + public void freeBGRAGlyphImages(long[] glyphInfoPointers, int glyphCount); + public void XRenderCompositeText(byte op, int src, int dst, int maskFormatID, int xSrc, int ySrc, int xDst, int yDst, diff --git a/src/java.desktop/unix/classes/sun/java2d/xr/XRBackendNative.java b/src/java.desktop/unix/classes/sun/java2d/xr/XRBackendNative.java index e5f337d3415..010899bb94b 100644 --- a/src/java.desktop/unix/classes/sun/java2d/xr/XRBackendNative.java +++ b/src/java.desktop/unix/classes/sun/java2d/xr/XRBackendNative.java @@ -250,6 +250,20 @@ public class XRBackendNative implements XRBackend { private static native void XRFreeGlyphsNative(int glyphSet, int[] gids, int idCnt); + public void addBGRAGlyphImages(int drawable, List<XRGlyphCacheEntry> cacheEntries) { + long[] glyphInfoPtrs = getGlyphInfoPtrs(cacheEntries); + addBGRAGlyphImagesNative(drawable, glyphInfoPtrs, glyphInfoPtrs.length, FMTPTR_ARGB32); + // addBGRAGlyphImagesNative replaced values in glyphInfoPtrs with pointers to BGRAGlyphInfo structs, save them + int i = 0; + for(XRGlyphCacheEntry cacheEntry : cacheEntries) { + cacheEntry.setBgraGlyphInfoPtr(glyphInfoPtrs[i++]); + } + } + + private native void addBGRAGlyphImagesNative(int drawable, long[] glyphInfoPtrs, int glyphCnt, long format32); + + public native void freeBGRAGlyphImages(long[] glyphInfoPointers, int glyphCount); + private static native void XRenderCompositeTextNative(int op, int src, int dst, int srcX, int srcY, long maskFormat, |