Verified Commit 3a2ee30e authored by Soren's avatar Soren

Big move and reformat

parent e0408d00
Pipeline #40273951 failed with stages
in 4 minutes and 6 seconds
......@@ -24,7 +24,7 @@ continuationIndent {
extendSite = 4
}
danglingParentheses = false
danglingParentheses = true
newlines {
alwaysBeforeTopLevelStatements = true
......
......@@ -2,29 +2,30 @@ val batikVersion = settingKey[String]("Batik Version")
val imageIOVersion = settingKey[String]("ImageIO Version")
lazy val commonSettings = Seq(
organization := "tf.bug",
batikVersion := "1.10",
imageIOVersion := "3.4.1"
organization := "tf.bug",
batikVersion := "1.10",
imageIOVersion := "3.4.1",
)
lazy val core = (project in file(".")).settings(
commonSettings,
name := "scolor",
version := "0.1.0",
scalaVersion := "2.12.6",
name := "scolor",
version := "0.1.0",
scalaVersion := "2.12.8",
libraryDependencies ++= Seq(
"org.typelevel" %% "spire" % "0.16.0",
"org.apache.xmlgraphics" % "batik-svg-dom" % batikVersion.value,
"org.apache.xmlgraphics" % "batik-transcoder" % batikVersion.value,
"org.apache.xmlgraphics" % "batik-extension" % batikVersion.value,
"org.apache.xmlgraphics" % "batik-rasterizer-ext" % batikVersion.value,
"com.twelvemonkeys.imageio" % "imageio-batik" % imageIOVersion.value,
"com.twelvemonkeys.imageio" % "imageio-core" % imageIOVersion.value,
"com.twelvemonkeys.imageio" % "imageio-metadata" % imageIOVersion.value,
"com.twelvemonkeys.common" % "common-lang" % imageIOVersion.value,
"org.scalatest" %% "scalatest" % "3.0.5" % "test",
"com.storm-enroute" %% "scalameter" % "0.8.2" % "test"
"org.typelevel" %% "spire" % "0.16.0",
"org.apache.xmlgraphics" % "batik-svg-dom" % batikVersion.value,
"org.apache.xmlgraphics" % "batik-transcoder" % batikVersion.value,
"org.apache.xmlgraphics" % "batik-extension" % batikVersion.value,
"org.apache.xmlgraphics" % "batik-rasterizer-ext" % batikVersion.value,
"com.twelvemonkeys.imageio" % "imageio-batik" % imageIOVersion.value,
"com.twelvemonkeys.imageio" % "imageio-core" % imageIOVersion.value,
"com.twelvemonkeys.imageio" % "imageio-metadata" % imageIOVersion.value,
"com.twelvemonkeys.common" % "common-lang" % imageIOVersion.value,
"org.scalatest" %% "scalatest" % "3.0.5" % "test",
"com.storm-enroute" %% "scalameter" % "0.10" % "test",
"org.scodec" %% "scodec-bits" % "1.1.6",
),
testFrameworks += new TestFramework("org.scalameter.ScalaMeterFramework"),
logBuffered := false
logBuffered := false,
)
sbt.version = 1.1.6
\ No newline at end of file
sbt.version = 1.2.7
\ No newline at end of file
package com.tsunderebug.scolor.otf.tables.cff2.charstring
import com.tsunderebug.scolor.Data
trait OTFCFF2CharStringOp extends Data
\ No newline at end of file
package com.tsunderebug.scolor.otf.tables.cff2.charstring
import com.tsunderebug.scolor.table.EnclosingSectionDataType
case class OTFCFF2CharStrings(
) extends EnclosingSectionDataType {}
package com.tsunderebug.scolor.otf.tables.color.google
import com.tsunderebug.scolor.table.EnclosingSectionDataType
trait OTFGoogleGlyphMetrics extends EnclosingSectionDataType
\ No newline at end of file
package com.tsunderebug.scolor
package tf.bug.scolor
import spire.math.{UByte, UInt}
......
package com.tsunderebug.scolor
package tf.bug.scolor
import spire.math.{UByte, UInt}
......
package com.tsunderebug.scolor
package tf.bug.scolor
import java.io.File
......
package com.tsunderebug.scolor
package tf.bug.scolor
import java.awt.image.BufferedImage
......
package com.tsunderebug.scolor
package tf.bug.scolor
import com.tsunderebug.scolor.table.SectionDataType
import tf.bug.scolor.table.SectionDataType
import spire.math.UInt
/**
......
package com.tsunderebug.scolor.helper
package tf.bug.scolor.helper
import java.awt.image.BufferedImage
import java.io.ByteArrayInputStream
import com.tsunderebug.scolor.StringableDocument
import com.tsunderebug.scolor.otf.tables.color.OTFsRGBPNG
import com.tsunderebug.scolor.otf.tables.color.apple.OTFAppleGlyphData
import com.tsunderebug.scolor.otf.tables.color.google.{OTFGoogleGlyphData, OTFGoogleSmallGlyphMetrics}
import com.tsunderebug.scolor.otf.tables.color.svg.OTFSVGDocument
import tf.bug.scolor.StringableDocument
import tf.bug.scolor.otf.tables.color.OTFsRGBPNG
import tf.bug.scolor.otf.tables.color.apple.OTFAppleGlyphData
import tf.bug.scolor.otf.tables.color.google.{OTFGoogleGlyphData, OTFGoogleSmallGlyphMetrics}
import tf.bug.scolor.otf.tables.color.svg.OTFSVGDocument
import javax.imageio.ImageIO
import org.w3c.dom.Document
import spire.math.UByte
......
package com.tsunderebug.scolor.helper
package tf.bug.scolor.helper
import java.time.Instant
import com.tsunderebug.scolor.Models.Codepoint
import com.tsunderebug.scolor.otf.OpenTypeFont
import com.tsunderebug.scolor.otf.tables.color.apple.{OTFAppleStrikeData, OTFSBIXTable}
import com.tsunderebug.scolor.otf.tables.color.google.OTFCBDTTable
import com.tsunderebug.scolor.otf.tables.color.svg.{OTFSVGDocumentIndex, OTFSVGDocumentIndexEntry, OTFSVGTable}
import com.tsunderebug.scolor.otf.tables.os2.{OTFCodePageRange, OTFOS2Table, OTFPanoseClassification, OTFUnicodeRange}
import com.tsunderebug.scolor.otf.tables.{OTFCMapTable, OTFHeadTable, OTFNameTable, OTFPostTable}
import com.tsunderebug.scolor.otf.types.gen.{MacLanguage, WindowsLanguage}
import com.tsunderebug.scolor.otf.types.num.OTFUInt16
import com.tsunderebug.scolor.otf.types.{OTFEncodingRecord, OTFNameRecord, SequentialMapGroup}
import tf.bug.scolor.Models.Codepoint
import tf.bug.scolor.otf.OpenTypeFont
import tf.bug.scolor.otf.tables.color.apple.{OTFAppleStrikeData, OTFSBIXTable}
import tf.bug.scolor.otf.tables.color.google.OTFCBDTTable
import tf.bug.scolor.otf.tables.color.svg.{OTFSVGDocumentIndex, OTFSVGDocumentIndexEntry, OTFSVGTable}
import tf.bug.scolor.otf.tables.os2.{OTFCodePageRange, OTFOS2Table, OTFPanoseClassification, OTFUnicodeRange}
import tf.bug.scolor.otf.tables._
import tf.bug.scolor.otf.types.gen.{MacLanguage, WindowsLanguage}
import tf.bug.scolor.otf.types.num.OTFUInt16
import tf.bug.scolor.otf.types.{OTFEncodingRecord, OTFNameRecord, SequentialMapGroup}
import spire.math.{UByte, UInt, UShort}
case class ColorEmojiFont(
......@@ -129,6 +129,9 @@ case class ColorEmojiFont(
)
)
),
OTFMaxPTable(
UShort(entries.size)
),
OTFCBDTTable(
entries.values.flatMap(_.bitmaps.values.map { case (google, _) => google })
),
......
package com.tsunderebug.scolor {
package tf.bug.scolor {
object Models {
......
package com.tsunderebug.scolor.otf
package tf.bug.scolor.otf
import com.tsunderebug.scolor.otf.types.OTFOffset32
import com.tsunderebug.scolor.{ByteAllocator, Data, Offset}
import tf.bug.scolor.otf.types.OTFOffset32
import tf.bug.scolor.{ByteAllocator, Data, Offset}
import spire.math.{UByte, UInt}
import scala.collection.mutable
......@@ -17,7 +17,8 @@ class OTFByteAllocator(f: OpenTypeFont) extends ByteAllocator {
val top = offset.position.toInt + bytes.length
(offset.position.toInt until top).foreach(p => byteMap += (OTFOffset32(p) -> bytes(p - offset.position.toInt)))
nextAvailableOffset = OTFOffset32(
Math.max(top + (data.alignment.toInt - (top % data.alignment.toInt)), nextOffset.position.toLong))
Math.max(top + (data.alignment.toInt - (top % data.alignment.toInt)), nextOffset.position.toLong)
)
data.data(this).foreach(insert)
}
......@@ -45,7 +46,7 @@ class OTFByteAllocator(f: OpenTypeFont) extends ByteAllocator {
def getBytes: Array[UByte] = {
val m: Long = byteMap.map { case (offset, _) => offset.position.toLong }.max
(0 to m).map(i => byteMap.getOrElse(OTFOffset32(i), UByte(0))).toArray
(0l to m).map(i => byteMap.getOrElse(OTFOffset32(i), UByte(0))).toArray
}
}
package com.tsunderebug.scolor.otf
package tf.bug.scolor.otf
import java.io.{File, FileOutputStream}
import java.nio.{ByteBuffer, ByteOrder}
import com.tsunderebug.scolor._
import com.tsunderebug.scolor.otf.tables.OTFHeadTable
import com.tsunderebug.scolor.otf.types.OTFOffset32
import com.tsunderebug.scolor.table.Table
import tf.bug.scolor._
import tf.bug.scolor.otf.tables.OTFHeadTable
import tf.bug.scolor.otf.types.OTFOffset32
import tf.bug.scolor.table.Table
import spire.math.{UByte, UInt, UShort}
import spire.syntax.std.array._
......@@ -165,7 +165,8 @@ class OpenTypeFont(tables: Traversable[Table]) extends Font {
((i.toInt & 0xFF000000) >> 24).toByte,
((i.toInt & 0x00FF0000) >> 16).toByte,
((i.toInt & 0x0000FF00) >> 8).toByte,
(i.toInt & 0x000000FF).toByte).map(UByte(_))
(i.toInt & 0x000000FF).toByte
).map(UByte(_))
}
}
......
package com.tsunderebug.scolor.otf.tables
package tf.bug.scolor.otf.tables
import com.tsunderebug.scolor.ByteAllocator
import com.tsunderebug.scolor.otf.types.num.OTFUInt16
import com.tsunderebug.scolor.otf.types.{OTFArray, OTFEncodingRecord, TabledEncodingRecord}
import com.tsunderebug.scolor.table.Section
import tf.bug.scolor.{ByteAllocator, Data}
import tf.bug.scolor.otf.types.num.OTFUInt16
import tf.bug.scolor.otf.types.{OTFArray, OTFEncodingRecord, TabledEncodingRecord}
import tf.bug.scolor.table.Section
import spire.math.{UInt, UShort}
case class OTFCMapTable(
......@@ -32,6 +32,6 @@ case class OTFCMapTable(
* @param b The byte allocator
* @return an array of Data objects
*/
override def data(b: ByteAllocator) = Seq()
override def data(b: ByteAllocator): Traversable[Data] = Seq()
}
package com.tsunderebug.scolor.otf.tables
package tf.bug.scolor.otf.tables
import java.time.{LocalDateTime, ZoneOffset}
import com.tsunderebug.scolor.otf.types.OTFFixedPoint
import com.tsunderebug.scolor.otf.types.num.{OTFInt16, OTFInt64, OTFUInt16, OTFUInt32}
import com.tsunderebug.scolor.table.Section
import com.tsunderebug.scolor.{ByteAllocator, Data}
import tf.bug.scolor.otf.types.OTFFixedPoint
import tf.bug.scolor.otf.types.num.{OTFInt16, OTFInt64, OTFUInt16, OTFUInt32}
import tf.bug.scolor.table.Section
import tf.bug.scolor.{ByteAllocator, Data}
import spire.math.{UInt, UShort}
case class OTFHeadTable(
......
package tf.bug.scolor.otf.tables
import tf.bug.scolor.otf.types.OTFFixedPoint
import tf.bug.scolor.otf.types.num.OTFUInt16
import tf.bug.scolor.table.Section
import tf.bug.scolor.{ByteAllocator, Data}
import spire.math.{UInt, UShort}
case class OTFMaxPTable(numGlyphs: UShort) extends OpenTypeTable {
/**
* @return the table tag/name/identifier
*/
override def name: String = "maxp"
/**
* @param b The byte allocator
* @return the sections/partitions/rows of a table
*/
override def sections(b: ByteAllocator): Traversable[Section] = Seq(
Section("version", OTFFixedPoint(0.3125)),
Section("numGlyphs", OTFUInt16(numGlyphs))
)
/**
* Calculate/retrieve/return length in bytes of this data. Useful for if data needs to be allocated before it is calculated.
*
* @param b The byte allocator
* @return an unsigned integer describing the length of this data block
*/
override def length(b: ByteAllocator): UInt = UInt(6)
/**
* Gets data sections if this data block has offsets. Used for if data needs to be allocated but can be in any location.
*
* @param b The byte allocator
* @return an array of Data objects
*/
override def data(b: ByteAllocator): Traversable[Data] = Seq()
}
package com.tsunderebug.scolor.otf.tables
package tf.bug.scolor.otf.tables
import com.tsunderebug.scolor.otf.types._
import com.tsunderebug.scolor.otf.types.num.OTFUInt16
import com.tsunderebug.scolor.table.Section
import com.tsunderebug.scolor.{ByteAllocator, Data}
import tf.bug.scolor.otf.types._
import tf.bug.scolor.otf.types.num.OTFUInt16
import tf.bug.scolor.table.Section
import tf.bug.scolor.{ByteAllocator, Data}
import spire.math.{UInt, UShort}
case class OTFNameTable(
......
package com.tsunderebug.scolor.otf.tables
package tf.bug.scolor.otf.tables
import com.tsunderebug.scolor.otf.types.OTFFixedPoint
import com.tsunderebug.scolor.otf.types.num.{OTFInt16, OTFUInt32}
import com.tsunderebug.scolor.table.Section
import com.tsunderebug.scolor.{ByteAllocator, Data}
import tf.bug.scolor.otf.types.OTFFixedPoint
import tf.bug.scolor.otf.types.num.{OTFInt16, OTFUInt32}
import tf.bug.scolor.table.Section
import tf.bug.scolor.{ByteAllocator, Data}
import spire.math.UInt
case class OTFPostTable(
......
package com.tsunderebug.scolor.otf.tables
package tf.bug.scolor.otf.tables
import com.tsunderebug.scolor.table.Table
import com.tsunderebug.scolor.{ByteAllocator, Offset}
import tf.bug.scolor.table.Table
import tf.bug.scolor.{ByteAllocator, Offset}
import spire.math.UByte
abstract class OpenTypeTable extends Table {
......
package com.tsunderebug.scolor.otf.tables.cff2
package tf.bug.scolor.otf.tables.cff2
import com.tsunderebug.scolor.{ByteAllocator, Data}
import com.tsunderebug.scolor.table.SectionDataType
import tf.bug.scolor.{ByteAllocator, Data}
import tf.bug.scolor.table.SectionDataType
import spire.math.{UByte, UInt, UShort}
case class OTFCFF2FontMatrix(
......@@ -22,7 +22,8 @@ case class OTFCFF2FontMatrix(
OTFCFF2Nibble.zero,
inverseUPEmNibble,
OTFCFF2Nibble.zero,
OTFCFF2Nibble.zero)
OTFCFF2Nibble.zero
)
val tb = tail.map(_.bytes(b)).foldLeft(Array[UByte]())(_ ++ _)
op ++ tb
}
......
package com.tsunderebug.scolor.otf.tables.cff2
package tf.bug.scolor.otf.tables.cff2
import com.tsunderebug.scolor.table.SectionDataType
import com.tsunderebug.scolor.{ByteAllocator, Data}
import tf.bug.scolor.table.SectionDataType
import tf.bug.scolor.{ByteAllocator, Data}
import spire.math.{UByte, UInt}
case class OTFCFF2Nibble(
......
package com.tsunderebug.scolor.otf.tables.cff2
package tf.bug.scolor.otf.tables.cff2
import com.tsunderebug.scolor.{ByteAllocator, Data}
import com.tsunderebug.scolor.otf.tables.OpenTypeTable
import com.tsunderebug.scolor.otf.types.num.{OTFUInt16, OTFUInt8}
import com.tsunderebug.scolor.table.Section
import tf.bug.scolor.{ByteAllocator, Data}
import tf.bug.scolor.otf.tables.OpenTypeTable
import tf.bug.scolor.otf.types.num.{OTFUInt16, OTFUInt8}
import tf.bug.scolor.table.Section
import spire.math.{UByte, UInt, UShort}
case class OTFCFF2Table(
......
package com.tsunderebug.scolor.otf.tables.cff2
package tf.bug.scolor.otf.tables.cff2
import com.tsunderebug.scolor.otf.tables.cff2.charstring.OTFCFF2CharStrings
import com.tsunderebug.scolor.table.{EnclosingSectionDataType, RequireTable, Section}
import com.tsunderebug.scolor.{ByteAllocator, Data}
import tf.bug.scolor.otf.tables.cff2.charstring.OTFCFF2CharStrings
import tf.bug.scolor.table.{EnclosingSectionDataType, RequireTable, Section}
import tf.bug.scolor.{ByteAllocator, Data}
import spire.math.{UInt, UShort}
case class TabledOTFCFF2TopDict(
......@@ -17,7 +17,7 @@ case class TabledOTFCFF2TopDict(
val charStringsOffsetInt = b.allocate(charStrings).position - tableOffset.position
Seq(
Section("FontMatrix", OTFCFF2FontMatrix(unitsPerEm)),
Section("CharStrings", OTFCFF2Number())
// FIXME Section("CharStrings", OTFCFF2Number())
)
}
......
package com.tsunderebug.scolor.otf.tables.cff2.charstring
package tf.bug.scolor.otf.tables.cff2.charstring
import com.tsunderebug.scolor.otf.types.num.OTFInt16
import com.tsunderebug.scolor.{ByteAllocator, Data}
import com.tsunderebug.scolor.table.SectionDataType
import tf.bug.scolor.otf.types.num.OTFInt16
import tf.bug.scolor.{ByteAllocator, Data}
import tf.bug.scolor.table.SectionDataType
import spire.math.{UByte, UInt}
class OTFCFF2CharStringNumber(n: Short) extends SectionDataType {
......
package tf.bug.scolor.otf.tables.cff2.charstring
import tf.bug.scolor.Data
trait OTFCFF2CharStringOp extends Data
\ No newline at end of file
package tf.bug.scolor.otf.tables.cff2.charstring
import tf.bug.scolor.{ByteAllocator, Data}
import tf.bug.scolor.table.{EnclosingSectionDataType, Section}
import spire.math.UInt
case class OTFCFF2CharStrings(
) extends EnclosingSectionDataType {
override def sections(b: ByteAllocator): Traversable[Section] = ???
/**
* Calculate/retrieve/return length in bytes of this data. Useful for if data needs to be allocated before it is calculated.
*
* @param b The byte allocator
* @return an unsigned integer describing the length of this data block
*/
override def length(b: ByteAllocator): UInt = ???
/**
* Gets data sections if this data block has offsets. Used for if data needs to be allocated but can be in any location.
*
* @param b The byte allocator
* @return an array of Data objects
*/
override def data(b: ByteAllocator): Traversable[Data] = ???
}
package com.tsunderebug.scolor.otf.tables.color
package tf.bug.scolor.otf.tables.color
import java.awt.image.BufferedImage
import java.io.ByteArrayOutputStream
import com.tsunderebug.scolor.ByteAllocator
import com.tsunderebug.scolor.table.SectionDataType
import tf.bug.scolor.ByteAllocator
import tf.bug.scolor.table.SectionDataType
import javax.imageio.ImageIO
import spire.math.{UByte, UInt}
......
package com.tsunderebug.scolor.otf.tables.color.apple
package tf.bug.scolor.otf.tables.color.apple
import com.tsunderebug.scolor.ByteAllocator
import com.tsunderebug.scolor.otf.tables.color.OTFsRGBPNG
import com.tsunderebug.scolor.otf.types.OTFString
import com.tsunderebug.scolor.otf.types.num.OTFInt16
import com.tsunderebug.scolor.table.{EnclosingSectionDataType, Section}
import tf.bug.scolor.ByteAllocator
import tf.bug.scolor.otf.tables.color.OTFsRGBPNG
import tf.bug.scolor.otf.types.OTFString
import tf.bug.scolor.otf.types.num.OTFInt16
import tf.bug.scolor.table.{EnclosingSectionDataType, Section}
import spire.math.UInt
case class OTFAppleGlyphData(
......
package com.tsunderebug.scolor.otf.tables.color.apple
package tf.bug.scolor.otf.tables.color.apple
import com.tsunderebug.scolor.ByteAllocator
import com.tsunderebug.scolor.otf.types.OTFArray
import com.tsunderebug.scolor.otf.types.num.{OTFUInt16, OTFUInt32}
import com.tsunderebug.scolor.table.{EnclosingSectionDataType, Section}
import tf.bug.scolor.ByteAllocator
import tf.bug.scolor.otf.types.OTFArray
import tf.bug.scolor.otf.types.num.{OTFUInt16, OTFUInt32}
import tf.bug.scolor.table.{EnclosingSectionDataType, Section}
import spire.math.{UInt, UShort}
case class OTFAppleStrikeData(
......
package com.tsunderebug.scolor.otf.tables.color.apple
package tf.bug.scolor.otf.tables.color.apple
import com.tsunderebug.scolor.ByteAllocator
import com.tsunderebug.scolor.otf.tables.OpenTypeTable
import com.tsunderebug.scolor.otf.types.OTFArray
import com.tsunderebug.scolor.otf.types.num.{OTFUInt16, OTFUInt32}
import com.tsunderebug.scolor.table.Section
import tf.bug.scolor.ByteAllocator
import tf.bug.scolor.otf.tables.OpenTypeTable
import tf.bug.scolor.otf.types.OTFArray
import tf.bug.scolor.otf.types.num.{OTFUInt16, OTFUInt32}
import tf.bug.scolor.table.Section
import spire.math.{UInt, UShort}
case class OTFSBIXTable(
......@@ -20,11 +20,11 @@ case class OTFSBIXTable(
* @param b The byte allocator
* @return the sections/partitions/rows of a table
*/
override def sections(b: ByteAllocator) = Seq(
override def sections(b: ByteAllocator): Traversable[Section] = Seq(
Section("version", OTFUInt16(UShort(1))),
Section("flags", OTFUInt16(UShort(2))),
Section("numStrikes", OTFUInt32(UInt(sds.size))),
Section("offsets", OTFArray(data(b).map((d) => OTFUInt32(b.allocate(d).position - b.allocate(this).position))))
Section("offsets", OTFArray(data(b).map(d => OTFUInt32(b.allocate(d).position - b.allocate(this).position))))
)
/**
......
package com.tsunderebug.scolor.otf.tables.color.google
package tf.bug.scolor.otf.tables.color.google
import com.tsunderebug.scolor.ByteAllocator
import com.tsunderebug.scolor.otf.tables.OpenTypeTable
import com.tsunderebug.scolor.otf.types._
import com.tsunderebug.scolor.otf.types.num.OTFUInt16
import com.tsunderebug.scolor.table.Section
import tf.bug.scolor.ByteAllocator
import tf.bug.scolor.otf.tables.OpenTypeTable
import tf.bug.scolor.otf.types._
import tf.bug.scolor.otf.types.num.OTFUInt16
import tf.bug.scolor.table.Section
import spire.math.{UInt, UShort}
import spire.syntax.std.array._
......
package com.tsunderebug.scolor.otf.tables.color.google
package tf.bug.scolor.otf.tables.color.google
import com.tsunderebug.scolor.ByteAllocator
import com.tsunderebug.scolor.otf.tables.color.OTFsRGBPNG
import com.tsunderebug.scolor.table.{EnclosingSectionDataType, Section}
import tf.bug.scolor.ByteAllocator
import tf.bug.scolor.otf.tables.color.OTFsRGBPNG
import tf.bug.scolor.table.{EnclosingSectionDataType, Section}
import spire.math.UInt
case class OTFGoogleGlyphData(
......
package tf.bug.scolor.otf.tables.color.google
import tf.bug.scolor.table.EnclosingSectionDataType
trait OTFGoogleGlyphMetrics extends EnclosingSectionDataType
\ No newline at end of file
package com.tsunderebug.scolor.otf.tables.color.google
package tf.bug.scolor.otf.tables.color.google
import com.tsunderebug.scolor.ByteAllocator
import com.tsunderebug.scolor.otf.types.num.{OTFInt8, OTFUInt8}
import com.tsunderebug.scolor.table.Section
import tf.bug.scolor.ByteAllocator
import tf.bug.scolor.otf.types.num.{OTFInt8, OTFUInt8}
import tf.bug.scolor.table.Section
import spire.math.{UByte, UInt}
case class OTFGoogleSmallGlyphMetrics(
......
package com.tsunderebug.scolor.otf.tables.color.svg
package tf.bug.scolor.otf.tables.color.svg
import com.tsunderebug.scolor.{ByteAllocator, Data, StringableDocument}
import tf.bug.scolor.{ByteAllocator, Data, StringableDocument}
import org.w3c.dom.Document
import spire.math.{UByte, UInt}
......
package com.tsunderebug.scolor.otf.tables.color.svg
package tf.bug.scolor.otf.tables.color.svg
import com.tsunderebug.scolor.otf.types.OTFArray
import com.tsunderebug.scolor.otf.types.num.OTFUInt16
import com.tsunderebug.scolor.table.{EnclosingSectionDataType, Section}
import com.tsunderebug.scolor.{ByteAllocator, Data}
import tf.bug.scolor.otf.types.OTFArray
import tf.bug.scolor.otf.types.num.OTFUInt16
import tf.bug.scolor.table.{EnclosingSectionDataType, Section}
import tf.bug.scolor.{ByteAllocator, Data}
import spire.math.{UInt, UShort}
case class OTFSVGDocumentIndex(
......