Class { #name : #DiyaFontIcon, #superclass : #DiyaText, #pools : [ 'FT2Types' ], #category : #'Diya-Graphics' } { #category : #initialization } DiyaFontIcon >> data: code [ super data:(code isArray ifTrue: [ code ] ifFalse:[{code}]). ] { #category : #initialization } DiyaFontIcon >> drawText [ |index offset tex glyph | index := 1. tex := self texture. offset := (self alignLine: self fontSize)@(self valignText: self fontSize). data do: [ :c| glyph := tex getGlyph: c asInteger. (self getCharsVerticesFrom: glyph offset: offset cellh: tex cellh) do: [ :e| vbuffer at: index put:e. index := index + 1 ]. "offset setX: offset x + tex spacing setY: offset y" ]. ] { #category : #accessing } DiyaFontIcon >> fontName [ ^ self ? #textIconFamily ] { #category : #initialization } DiyaFontIcon >> getLinebreakIndices: delta [ self shouldNotBeCalled ] { #category : #accessing } DiyaFontIcon >> iconSize [ ^ self fontSize ] { #category : #initialization } DiyaFontIcon >> initialize [ super initialize. data := { }. vbuffer := FFIExternalArray externalNewType: GLfloat size:24. vbuffer autoRelease. ] { #category : #initialization } DiyaFontIcon >> lastSeparatorFrom: i [ self shouldNotBeCalled ] { #category : #initialization } DiyaFontIcon >> process [ data ifNil: [ ^self ]. bbox := Rectangle origin: 0@0 corner: ((data size) * (self fontSize) ) @ self fontSize. ^ super process. ]