public inbox for kawa@sourceware.org
 help / color / mirror / Atom feed
* Problem reading font data.
@ 2022-10-26 20:21 Panicz Maciej Godek
       [not found] ` <CAPh7weCjXvm69=qhNv3bsDFZaGbui1G9dh5uXxOya+jzeYopOQ@mail.gmail.com>
  0 siblings, 1 reply; 2+ messages in thread
From: Panicz Maciej Godek @ 2022-10-26 20:21 UTC (permalink / raw)
  To: kawa

[-- Attachment #1: Type: text/plain, Size: 3776 bytes --]

I have the following code (it doesn't require graphics environment to run):

(define-alias Font java.awt.Font)
(define-alias InputStream java.io.InputStream)
(define ClassLoader ::java.lang.ClassLoader
 (java.lang.ClassLoader:getSystemClassLoader))

(define the-graphics-environment
 ::parameter[java.awt.GraphicsEnvironment]
  (make-parameter
   (invoke-static
    java.awt.GraphicsEnvironment
    'getLocalGraphicsEnvironment)))
                                  (define (load-font path::String #!key
(size ::float 12.0))
  (let* ((font-source ::InputStream
    (ClassLoader:getResourceAsStream path))
           (font ::Font (Font:createFont
                       Font:TRUETYPE_FONT
                       font-source)))                             (invoke
(the-graphics-environment)                                    'registerFont
font)
    (font:deriveFont size)))

(define-constant Basic-Regular
  (load-font "assets/Basic-Regular.otf" size: 20)

The Basic-Regular.orf file is present in the assets directory, located in
the same directory as the above file (that I called font-test.scm.

When I run the code with

$ kawa -f font-test.scm

it behaves well. But when I instead use

$ java -jar /path/to/kawa.jar -f font-test.scm

or

$ java -cp /path/to/kawa.jar kawa.repl -f font-test.scm

I get the following error:

java.io.IOException: Problem reading font data.                       at
java.desktop/java.awt.Font.createFont0(Font.java:1208)
                                             at
java.desktop/java.awt.Font.createFont(Font.java:1076)
                                              at
atInteractiveLevel$Mn8.loadFont$check(font-test.scm:21)
                                              at
gnu.mapping.CallContext.runUntilValue(CallContext.java:656)
                                              at
atInteractiveLevel$Mn9.run(font-test.scm:27)               at
gnu.expr.ModuleExp.evalModule2(ModuleExp.java:290)         at
kawa.Shell.run(Shell.java:300)                             at
kawa.Shell.runFile(Shell.java:562)                         at
kawa.Shell.runFileOrClass(Shell.java:485)                  at
kawa.repl.processArgs(repl.java:298)                       at
kawa.repl.main(repl.java:830)

I even went so far to modify the `which kawa` script by inserting "set -x"
in the first line following the she-bang:

+ KAWALIB=/data/data/com.termux/files/home/usr/share/kawa/lib/kawa.jar
                                                +
CLASSPATH=/data/data/com.termux/files/home/usr/share/kawa/lib/kawa.jar:/data/data/com.termux/files/usr/share/java/android.jar:
                                                        + export CLASSPATH
                                          + test -n
/data/data/com.termux/files/usr/opt/openjdk         +
JAVA=/data/data/com.termux/files/usr/opt/openjdk/bin/java   + JVM_FLAGS=
                                              + exec
/data/data/com.termux/files/usr/opt/openjdk/bin/java
-Dkawa.command.line=/data/data/com.termux/files/home/usr/bin/kawa -f
font-test.scm -Dkawa.command.pid=20316
-Dkawa.home=/data/data/com.termux/files/home/usr/share/kawa kawa.repl -f
font-test.scm


So - in orded to minimize the differences, I typed the following
incantation:

$ KAWALIB=/data/data/com.termux/files/home/usr/share/kawa/lib/kawa.jar
CLASSPATH=/data/data/com.termux/files/home/usr/share/kawa/lib/kawa.jar
/data/data/com.termux/files/usr/opt/openjdk/bin/java
-Dkawa.command.line="/data/data/com.termux/files/home/usr/bin/kawa -f
font-test.scm"  -Dkawa.home=/data/data/com.termux/files/home/usr/share/kawa
kawa.repl -f font-test.scm

But that still doesn't work.
Does anyone know what could be the difference between these two runtime
environments?

(I checked, and they both report the same value of (current-path))

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2022-10-26 20:46 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-10-26 20:21 Problem reading font data Panicz Maciej Godek
     [not found] ` <CAPh7weCjXvm69=qhNv3bsDFZaGbui1G9dh5uXxOya+jzeYopOQ@mail.gmail.com>
2022-10-26 20:46   ` Panicz Maciej Godek

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).