btex: default colour change

This commit is contained in:
minjaesong
2024-04-26 03:51:29 +09:00
parent bb10c55739
commit 2534ca4ff7
4 changed files with 19 additions and 8 deletions

View File

@@ -30,8 +30,8 @@ class BTeXDocument {
get() = 2 * pageMarginV + textHeight
companion object {
val DEFAULT_PAGE_BACK = Color(0xe1e1d7ff.toInt())
val DEFAULT_PAGE_FORE = Color(0x131311ff)
val DEFAULT_PAGE_BACK = Color(0xe0dfdb_ff.toInt())
val DEFAULT_PAGE_FORE = Color(0x151110ff)
}
private val pages = ArrayList<BTeXPage>()

View File

@@ -2,9 +2,12 @@ package net.torvald.btex
import com.badlogic.gdx.files.FileHandle
import com.badlogic.gdx.graphics.Color
import com.badlogic.gdx.graphics.g2d.SpriteBatch
import com.jme3.math.FastMath.DEG_TO_RAD
import net.torvald.colourutil.OKLch
import net.torvald.colourutil.tosRGB
import net.torvald.terrarum.App
import net.torvald.terrarum.btex.BTeXDocument
import net.torvald.terrarum.btex.BTeXDocument.Companion.DEFAULT_PAGE_FORE
import net.torvald.terrarum.btex.BTeXDrawCall
import net.torvald.terrarum.btex.MovableTypeDrawCall
import net.torvald.terrarum.gameitems.ItemID
@@ -14,8 +17,9 @@ import net.torvald.terrarumsansbitmap.gdx.TerrarumSansBitmap
import org.xml.sax.Attributes
import org.xml.sax.InputSource
import org.xml.sax.helpers.DefaultHandler
import java.io.*
import java.util.*
import java.io.File
import java.io.FileInputStream
import java.io.StringReader
import javax.xml.parsers.SAXParserFactory
import kotlin.reflect.KFunction
import kotlin.reflect.full.declaredFunctions
@@ -47,7 +51,7 @@ object BTeXParser {
}
internal class BTeXHandler(val doc: BTeXDocument) : DefaultHandler() {
private val DEFAULT_FONTCOL = Color(0x222222ff)
private val DEFAULT_FONTCOL = DEFAULT_PAGE_FORE
private val LINE_HEIGHT = doc.lineHeightInPx
private var cover = ""
@@ -472,7 +476,10 @@ object BTeXParser {
@OpenTag // reflective access is impossible with 'private'
fun processElemCOVER(handler: BTeXHandler, doc: BTeXDocument, theTag: String, uri: String, attribs: HashMap<String, String>, siblingIndex: Int) {
doc.addNewPage(Color(0x6f4a45ff))
val hue = (attribs["hue"]?.toFloatOrNull() ?: 28f) * DEG_TO_RAD
val coverCol = OKLch(hue, 0.05f, 0.36f)
val (r, g, b) = coverCol.tosRGB()
doc.addNewPage(Color(r, g, b, 1f))
handler.spanColour = "white"
}

View File

@@ -44,6 +44,10 @@ import kotlin.math.min
data class OKHsv(var h: Float, var s: Float, var v: Float)
data class OKHsl(var h: Float, var s: Float, var l: Float)
data class OKLab(var L: Float, var a: Float, var b: Float)
data class OKLch(var H: Float, var C: Float, var L: Float)
fun OKLch.toOKLab() = OKLab(L, C * cos(H), C * sin(H))
fun OKLch.tosRGB() = this.toOKLab().toLinearRGB().unLinearise()
object OKHsvUtil {
internal data class LC(var L: Float, var C: Float)

View File

@@ -28,7 +28,7 @@ class BTeXTest : ApplicationAdapter() {
val csi0 = "\u001B[m"
val tex = """<btexdoc cover="hardcover" inner="standard" papersize="standard">
<cover>
<cover hue="160">
<title>The Way to Mastery of Lorem Ipsum<br />Or, How To Write and Publish a Book</title>
<author>Terran Publishing</author>
<edition>Test Edition</edition>