[x3d-public] draft X3D 4.1 prose for font files and libraries DEF/USE

Joe D Williams joedwil at earthlink.net
Fri Mar 14 21:27:05 PDT 2025


> FontLibrary : X3DNode, X3DUrlObject {

To add a library concept we need to add
a url
and a name
and lists of contained language, family, and style.

If library can be a Node, then along with the url and name,
maybe meta to include lists for language, family and style.
Now we need another node to help FontStyle.

Getting this right is proof we might be able to figure out
how to declare a non-rendering asset and use it later
in that scene.
This is all a style thing, by and for the family.
Proto does that but this non-rendering "Library" concrete Node
that can be used later is something that has been tried but
never made a standards-track.appearance.

FontLibrary node has a DEF and includes
information for url, name language family style data
There must be enough file description so at authortime
reasonable checks can be made that references to that
node are valid. So, required meta for FontLibrary must include
available font names, languages, families, and styles.

References to the FontLibrary are made from FontStyle.
Fontstyle adds a node called LibraryFont
that can (has to) USE a FontLibrary node.

FontLibrary DEF MyFont
url
name
language(s)
family
style(s)
...
FontStyle ...
language
family
style
LibraryFont USE MyFont

Right, in order to use an external font file it has
to be defined in a FontLibary node and
referenced in FontStyle

The application must use the FontStyle parameters
language, family, style in addition to the url and name
in the FontLibrary node to apply the correct font from
the library.

So, That could be sort of like one of the examples.

Thanks and Best,
Joe.



-----Original Message-----
From: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org></x3d-public at web3d.org>
Sent: Mar 14, 2025 10:31 AM
To: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org>, Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org></x3d-public at web3d.org></x3d-public at web3d.org>
Cc: Joe D Williams <joedwil at earthlink.net>, Andreas Plesch <andreasplesch at gmail.com></andreasplesch at gmail.com></joedwil at earthlink.net>
Subject: Re: [x3d-public] draft X3D 4.1 prose for font files and libraries

I have finally studied this and have some thoughts that are taking som time to organize.

>is scoped to the current model
... scoped to the current execution context.
maybe talking between root and other context(s) using import/export
This means scoped same as inline or proto or layer?
Same as inline or proto/protoinstance, layers, other?
shared from LayerSet?


The fontLibrary field can contain a single FontLibrary node that may provide a font matching a value in the list of allowed family values.
Do we really need to add this field? Subject to mailing list discussion, we expect to delete the family field

I don't understand this strike and question. The examples and some markup do not seem to match either intent.

> we expect to delete the family field

deprecate? should have a great reason to do that, please tell
FontStyle : X3DFontStyleNode { SFNode [in,out] metadata NULL [X3DMetadataObject] MFString [] family "SERIF"FontLibrary : X3DNode, X3DUrlObject {

If needed, Please make this a node that I want to DEF at the highest level and
USE data from it in Text node(s) wherever in that scene it is legal.

We need the concept of a library that is clearly defined
and content can be at tested in AuthorTime.

To add a library concept we need to add
a url
and a name
and lists of contained language, family, and style.

The example 2 does not imply a 'global' library.
the example 1 implies a 'global' library but dumps on Fontstyle

Example: For X3D, for USD it is likely that an indexed library will be
available as essentially a 'global' asset that can be referenced from
anywhere in the - well, the audio manifest - how do they call it?
Anyway, the current url form could include a url with a set of
parameters that specify a certain file in a library.
But that would be a complicated url because
language, family, and style would need to be included.
Maybe by metadata?

Not really complete thoughts,
Joe







-----Original Message-----
From: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org></x3d-public at web3d.org>
Sent: Mar 14, 2025 8:27 AM
To: Extensible 3D (X3D) Graphics public discussion <x3d-public at web3d.org></x3d-public at web3d.org>
Cc: John Carlson <yottzumm at gmail.com>, Andreas Plesch <andreasplesch at gmail.com></andreasplesch at gmail.com></yottzumm at gmail.com>
Subject: Re: [x3d-public] draft X3D 4.1 prose for font files and libraries

Or alternatively, provide a cssStyle attribute/field. Another idea would be to add a css class in the family field??? Maybe one could support both FontStyle.url and css support? Hmm! John
On Fri, Mar 14, 2025 at 10:12 AM John Carlson <yottzumm at gmail.com (mailto:yottzumm at gmail.com)=""> wrote:I don’t have a clue on why FontStyle.url is insufficient, except that some font urls have more than one font. Perhaps all that is needed is providing more values to existing FontStyle fields, and gracefully hide most of the ugly, complicated stuff. Perhaps it would be best to provide a registry of fonts separate from the standards? Maybe even with component levels? Really, this conversation started with me asking about CSS fonts. How about adding CSS styles to FontStyle??? That is, provide a way to include a CSS file, perhaps with Inline? Or just use existing style attribute? Hmm! John On Fri, Mar 14, 2025 at 5:41 AM Michalis Kamburelis via x3d-public <x3d-public at web3d.org (mailto:x3d-public at web3d.org)=""> wrote:</x3d-public at web3d.org></yottzumm at gmail.com>
I still have not heard a convincing argument why a more
straightforward "FontStyle.url" was rejected. "FontStyle.url" seems
like a straightforward solution that avoids all the pitfalls of
"FontLibrary", because the association between FontStyle <-> font file
is just explicit.





More information about the x3d-public mailing list