Merge pull request #2175 from fonttools/move-paint-format-enum
COLRv1: fix lazy loading by moving Paint.Format enum outside of Paint class nested scope
This commit is contained in:
commit
e7ea2b0147
@ -492,7 +492,7 @@ class LayerV1ListBuilder:
|
|||||||
self, paletteIndex: int, alpha: _ScalarInput = _DEFAULT_ALPHA
|
self, paletteIndex: int, alpha: _ScalarInput = _DEFAULT_ALPHA
|
||||||
) -> ot.Paint:
|
) -> ot.Paint:
|
||||||
ot_paint = ot.Paint()
|
ot_paint = ot.Paint()
|
||||||
ot_paint.Format = int(ot.Paint.Format.PaintSolid)
|
ot_paint.Format = int(ot.PaintFormat.PaintSolid)
|
||||||
ot_paint.Color = buildColorIndex(paletteIndex, alpha)
|
ot_paint.Color = buildColorIndex(paletteIndex, alpha)
|
||||||
return ot_paint
|
return ot_paint
|
||||||
|
|
||||||
@ -504,7 +504,7 @@ class LayerV1ListBuilder:
|
|||||||
p2: Optional[_PointTuple] = None,
|
p2: Optional[_PointTuple] = None,
|
||||||
) -> ot.Paint:
|
) -> ot.Paint:
|
||||||
ot_paint = ot.Paint()
|
ot_paint = ot.Paint()
|
||||||
ot_paint.Format = int(ot.Paint.Format.PaintLinearGradient)
|
ot_paint.Format = int(ot.PaintFormat.PaintLinearGradient)
|
||||||
ot_paint.ColorLine = _to_color_line(colorLine)
|
ot_paint.ColorLine = _to_color_line(colorLine)
|
||||||
|
|
||||||
if p2 is None:
|
if p2 is None:
|
||||||
@ -525,7 +525,7 @@ class LayerV1ListBuilder:
|
|||||||
) -> ot.Paint:
|
) -> ot.Paint:
|
||||||
|
|
||||||
ot_paint = ot.Paint()
|
ot_paint = ot.Paint()
|
||||||
ot_paint.Format = int(ot.Paint.Format.PaintRadialGradient)
|
ot_paint.Format = int(ot.PaintFormat.PaintRadialGradient)
|
||||||
ot_paint.ColorLine = _to_color_line(colorLine)
|
ot_paint.ColorLine = _to_color_line(colorLine)
|
||||||
|
|
||||||
# normalize input types (which may or may not specify a varIdx)
|
# normalize input types (which may or may not specify a varIdx)
|
||||||
@ -558,7 +558,7 @@ class LayerV1ListBuilder:
|
|||||||
endAngle: _ScalarInput,
|
endAngle: _ScalarInput,
|
||||||
) -> ot.Paint:
|
) -> ot.Paint:
|
||||||
ot_paint = ot.Paint()
|
ot_paint = ot.Paint()
|
||||||
ot_paint.Format = int(ot.Paint.Format.PaintSweepGradient)
|
ot_paint.Format = int(ot.PaintFormat.PaintSweepGradient)
|
||||||
ot_paint.ColorLine = _to_color_line(colorLine)
|
ot_paint.ColorLine = _to_color_line(colorLine)
|
||||||
ot_paint.centerX = _to_variable_int16(centerX)
|
ot_paint.centerX = _to_variable_int16(centerX)
|
||||||
ot_paint.centerY = _to_variable_int16(centerY)
|
ot_paint.centerY = _to_variable_int16(centerY)
|
||||||
@ -568,14 +568,14 @@ class LayerV1ListBuilder:
|
|||||||
|
|
||||||
def buildPaintGlyph(self, glyph: str, paint: _PaintInput) -> ot.Paint:
|
def buildPaintGlyph(self, glyph: str, paint: _PaintInput) -> ot.Paint:
|
||||||
ot_paint = ot.Paint()
|
ot_paint = ot.Paint()
|
||||||
ot_paint.Format = int(ot.Paint.Format.PaintGlyph)
|
ot_paint.Format = int(ot.PaintFormat.PaintGlyph)
|
||||||
ot_paint.Glyph = glyph
|
ot_paint.Glyph = glyph
|
||||||
ot_paint.Paint = self.buildPaint(paint)
|
ot_paint.Paint = self.buildPaint(paint)
|
||||||
return ot_paint
|
return ot_paint
|
||||||
|
|
||||||
def buildPaintColrGlyph(self, glyph: str) -> ot.Paint:
|
def buildPaintColrGlyph(self, glyph: str) -> ot.Paint:
|
||||||
ot_paint = ot.Paint()
|
ot_paint = ot.Paint()
|
||||||
ot_paint.Format = int(ot.Paint.Format.PaintColrGlyph)
|
ot_paint.Format = int(ot.PaintFormat.PaintColrGlyph)
|
||||||
ot_paint.Glyph = glyph
|
ot_paint.Glyph = glyph
|
||||||
return ot_paint
|
return ot_paint
|
||||||
|
|
||||||
@ -583,7 +583,7 @@ class LayerV1ListBuilder:
|
|||||||
self, transform: _AffineInput, paint: _PaintInput
|
self, transform: _AffineInput, paint: _PaintInput
|
||||||
) -> ot.Paint:
|
) -> ot.Paint:
|
||||||
ot_paint = ot.Paint()
|
ot_paint = ot.Paint()
|
||||||
ot_paint.Format = int(ot.Paint.Format.PaintTransform)
|
ot_paint.Format = int(ot.PaintFormat.PaintTransform)
|
||||||
if not isinstance(transform, ot.Affine2x3):
|
if not isinstance(transform, ot.Affine2x3):
|
||||||
transform = buildAffine2x3(transform)
|
transform = buildAffine2x3(transform)
|
||||||
ot_paint.Transform = transform
|
ot_paint.Transform = transform
|
||||||
@ -594,7 +594,7 @@ class LayerV1ListBuilder:
|
|||||||
self, paint: _PaintInput, dx: _ScalarInput, dy: _ScalarInput
|
self, paint: _PaintInput, dx: _ScalarInput, dy: _ScalarInput
|
||||||
):
|
):
|
||||||
ot_paint = ot.Paint()
|
ot_paint = ot.Paint()
|
||||||
ot_paint.Format = int(ot.Paint.Format.PaintTranslate)
|
ot_paint.Format = int(ot.PaintFormat.PaintTranslate)
|
||||||
ot_paint.Paint = self.buildPaint(paint)
|
ot_paint.Paint = self.buildPaint(paint)
|
||||||
ot_paint.dx = _to_variable_f16dot16_float(dx)
|
ot_paint.dx = _to_variable_f16dot16_float(dx)
|
||||||
ot_paint.dy = _to_variable_f16dot16_float(dy)
|
ot_paint.dy = _to_variable_f16dot16_float(dy)
|
||||||
@ -608,7 +608,7 @@ class LayerV1ListBuilder:
|
|||||||
centerY: _ScalarInput,
|
centerY: _ScalarInput,
|
||||||
) -> ot.Paint:
|
) -> ot.Paint:
|
||||||
ot_paint = ot.Paint()
|
ot_paint = ot.Paint()
|
||||||
ot_paint.Format = int(ot.Paint.Format.PaintRotate)
|
ot_paint.Format = int(ot.PaintFormat.PaintRotate)
|
||||||
ot_paint.Paint = self.buildPaint(paint)
|
ot_paint.Paint = self.buildPaint(paint)
|
||||||
ot_paint.angle = _to_variable_f16dot16_float(angle)
|
ot_paint.angle = _to_variable_f16dot16_float(angle)
|
||||||
ot_paint.centerX = _to_variable_f16dot16_float(centerX)
|
ot_paint.centerX = _to_variable_f16dot16_float(centerX)
|
||||||
@ -624,7 +624,7 @@ class LayerV1ListBuilder:
|
|||||||
centerY: _ScalarInput,
|
centerY: _ScalarInput,
|
||||||
) -> ot.Paint:
|
) -> ot.Paint:
|
||||||
ot_paint = ot.Paint()
|
ot_paint = ot.Paint()
|
||||||
ot_paint.Format = int(ot.Paint.Format.PaintSkew)
|
ot_paint.Format = int(ot.PaintFormat.PaintSkew)
|
||||||
ot_paint.Paint = self.buildPaint(paint)
|
ot_paint.Paint = self.buildPaint(paint)
|
||||||
ot_paint.xSkewAngle = _to_variable_f16dot16_float(xSkewAngle)
|
ot_paint.xSkewAngle = _to_variable_f16dot16_float(xSkewAngle)
|
||||||
ot_paint.ySkewAngle = _to_variable_f16dot16_float(ySkewAngle)
|
ot_paint.ySkewAngle = _to_variable_f16dot16_float(ySkewAngle)
|
||||||
@ -639,7 +639,7 @@ class LayerV1ListBuilder:
|
|||||||
backdrop: _PaintInput,
|
backdrop: _PaintInput,
|
||||||
):
|
):
|
||||||
ot_paint = ot.Paint()
|
ot_paint = ot.Paint()
|
||||||
ot_paint.Format = int(ot.Paint.Format.PaintComposite)
|
ot_paint.Format = int(ot.PaintFormat.PaintComposite)
|
||||||
ot_paint.SourcePaint = self.buildPaint(source)
|
ot_paint.SourcePaint = self.buildPaint(source)
|
||||||
ot_paint.CompositeMode = _to_composite_mode(mode)
|
ot_paint.CompositeMode = _to_composite_mode(mode)
|
||||||
ot_paint.BackdropPaint = self.buildPaint(backdrop)
|
ot_paint.BackdropPaint = self.buildPaint(backdrop)
|
||||||
@ -647,7 +647,7 @@ class LayerV1ListBuilder:
|
|||||||
|
|
||||||
def buildColrLayers(self, paints: List[_PaintInput]) -> ot.Paint:
|
def buildColrLayers(self, paints: List[_PaintInput]) -> ot.Paint:
|
||||||
ot_paint = ot.Paint()
|
ot_paint = ot.Paint()
|
||||||
ot_paint.Format = int(ot.Paint.Format.PaintColrLayers)
|
ot_paint.Format = int(ot.PaintFormat.PaintColrLayers)
|
||||||
self.slices.append(ot_paint)
|
self.slices.append(ot_paint)
|
||||||
|
|
||||||
paints = [
|
paints = [
|
||||||
@ -672,7 +672,7 @@ class LayerV1ListBuilder:
|
|||||||
if reuse_lbound == -1:
|
if reuse_lbound == -1:
|
||||||
continue
|
continue
|
||||||
new_slice = ot.Paint()
|
new_slice = ot.Paint()
|
||||||
new_slice.Format = int(ot.Paint.Format.PaintColrLayers)
|
new_slice.Format = int(ot.PaintFormat.PaintColrLayers)
|
||||||
new_slice.NumLayers = ubound - lbound
|
new_slice.NumLayers = ubound - lbound
|
||||||
new_slice.FirstLayerIndex = reuse_lbound
|
new_slice.FirstLayerIndex = reuse_lbound
|
||||||
paints = paints[:lbound] + [new_slice] + paints[ubound:]
|
paints = paints[:lbound] + [new_slice] + paints[ubound:]
|
||||||
@ -726,8 +726,8 @@ class LayerV1ListBuilder:
|
|||||||
|
|
||||||
LayerV1ListBuilder._buildFunctions = {
|
LayerV1ListBuilder._buildFunctions = {
|
||||||
pf.value: getattr(LayerV1ListBuilder, "build" + pf.name)
|
pf.value: getattr(LayerV1ListBuilder, "build" + pf.name)
|
||||||
for pf in ot.Paint.Format
|
for pf in ot.PaintFormat
|
||||||
if pf != ot.Paint.Format.PaintColrLayers
|
if pf != ot.PaintFormat.PaintColrLayers
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -185,7 +185,7 @@ class LayerV1ListUnbuilder:
|
|||||||
|
|
||||||
LayerV1ListUnbuilder._unbuildFunctions = {
|
LayerV1ListUnbuilder._unbuildFunctions = {
|
||||||
pf.value: getattr(LayerV1ListUnbuilder, "unbuild" + pf.name)
|
pf.value: getattr(LayerV1ListUnbuilder, "unbuild" + pf.name)
|
||||||
for pf in ot.Paint.Format
|
for pf in ot.PaintFormat
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1324,25 +1324,26 @@ class CompositeMode(IntEnum):
|
|||||||
HSL_LUMINOSITY = 26
|
HSL_LUMINOSITY = 26
|
||||||
|
|
||||||
|
|
||||||
class Paint(getFormatSwitchingBaseTableClass("uint8")):
|
class PaintFormat(IntEnum):
|
||||||
|
PaintColrLayers = 1
|
||||||
|
PaintSolid = 2
|
||||||
|
PaintLinearGradient = 3
|
||||||
|
PaintRadialGradient = 4
|
||||||
|
PaintSweepGradient = 5
|
||||||
|
PaintGlyph = 6
|
||||||
|
PaintColrGlyph = 7
|
||||||
|
PaintTransform = 8
|
||||||
|
PaintTranslate = 9
|
||||||
|
PaintRotate = 10
|
||||||
|
PaintSkew = 11
|
||||||
|
PaintComposite = 12
|
||||||
|
|
||||||
class Format(IntEnum):
|
|
||||||
PaintColrLayers = 1
|
class Paint(getFormatSwitchingBaseTableClass("uint8")):
|
||||||
PaintSolid = 2
|
|
||||||
PaintLinearGradient = 3
|
|
||||||
PaintRadialGradient = 4
|
|
||||||
PaintSweepGradient = 5
|
|
||||||
PaintGlyph = 6
|
|
||||||
PaintColrGlyph = 7
|
|
||||||
PaintTransform = 8
|
|
||||||
PaintTranslate = 9
|
|
||||||
PaintRotate = 10
|
|
||||||
PaintSkew = 11
|
|
||||||
PaintComposite = 12
|
|
||||||
|
|
||||||
def getFormatName(self):
|
def getFormatName(self):
|
||||||
try:
|
try:
|
||||||
return self.__class__.Format(self.Format).name
|
return PaintFormat(self.Format).name
|
||||||
except ValueError:
|
except ValueError:
|
||||||
raise NotImplementedError(f"Unknown Paint format: {self.Format}")
|
raise NotImplementedError(f"Unknown Paint format: {self.Format}")
|
||||||
|
|
||||||
|
@ -241,13 +241,13 @@ def test_buildColorIndex():
|
|||||||
|
|
||||||
def test_buildPaintSolid():
|
def test_buildPaintSolid():
|
||||||
p = LayerV1ListBuilder().buildPaintSolid(0)
|
p = LayerV1ListBuilder().buildPaintSolid(0)
|
||||||
assert p.Format == ot.Paint.Format.PaintSolid
|
assert p.Format == ot.PaintFormat.PaintSolid
|
||||||
assert p.Color.PaletteIndex == 0
|
assert p.Color.PaletteIndex == 0
|
||||||
assert p.Color.Alpha.value == 1.0
|
assert p.Color.Alpha.value == 1.0
|
||||||
assert p.Color.Alpha.varIdx == 0
|
assert p.Color.Alpha.varIdx == 0
|
||||||
|
|
||||||
p = LayerV1ListBuilder().buildPaintSolid(1, alpha=0.5)
|
p = LayerV1ListBuilder().buildPaintSolid(1, alpha=0.5)
|
||||||
assert p.Format == ot.Paint.Format.PaintSolid
|
assert p.Format == ot.PaintFormat.PaintSolid
|
||||||
assert p.Color.PaletteIndex == 1
|
assert p.Color.PaletteIndex == 1
|
||||||
assert p.Color.Alpha.value == 0.5
|
assert p.Color.Alpha.value == 0.5
|
||||||
assert p.Color.Alpha.varIdx == 0
|
assert p.Color.Alpha.varIdx == 0
|
||||||
@ -255,7 +255,7 @@ def test_buildPaintSolid():
|
|||||||
p = LayerV1ListBuilder().buildPaintSolid(
|
p = LayerV1ListBuilder().buildPaintSolid(
|
||||||
3, alpha=builder.VariableFloat(0.5, varIdx=2)
|
3, alpha=builder.VariableFloat(0.5, varIdx=2)
|
||||||
)
|
)
|
||||||
assert p.Format == ot.Paint.Format.PaintSolid
|
assert p.Format == ot.PaintFormat.PaintSolid
|
||||||
assert p.Color.PaletteIndex == 3
|
assert p.Color.PaletteIndex == 3
|
||||||
assert p.Color.Alpha.value == 0.5
|
assert p.Color.Alpha.value == 0.5
|
||||||
assert p.Color.Alpha.varIdx == 2
|
assert p.Color.Alpha.varIdx == 2
|
||||||
@ -371,7 +371,7 @@ def test_buildPaintRadialGradient():
|
|||||||
r1 = builder.VariableInt(5)
|
r1 = builder.VariableInt(5)
|
||||||
|
|
||||||
gradient = layerBuilder.buildPaintRadialGradient(color_line, c0, c1, r0, r1)
|
gradient = layerBuilder.buildPaintRadialGradient(color_line, c0, c1, r0, r1)
|
||||||
assert gradient.Format == ot.Paint.Format.PaintRadialGradient
|
assert gradient.Format == ot.PaintFormat.PaintRadialGradient
|
||||||
assert gradient.ColorLine == color_line
|
assert gradient.ColorLine == color_line
|
||||||
assert (gradient.x0, gradient.y0) == c0
|
assert (gradient.x0, gradient.y0) == c0
|
||||||
assert (gradient.x1, gradient.y1) == c1
|
assert (gradient.x1, gradient.y1) == c1
|
||||||
@ -401,7 +401,7 @@ def test_buildPaintSweepGradient():
|
|||||||
endAngle=42,
|
endAngle=42,
|
||||||
)
|
)
|
||||||
|
|
||||||
assert paint.Format == ot.Paint.Format.PaintSweepGradient
|
assert paint.Format == ot.PaintFormat.PaintSweepGradient
|
||||||
assert paint.centerX.value == 127
|
assert paint.centerX.value == 127
|
||||||
assert paint.centerY.value == 129
|
assert paint.centerY.value == 129
|
||||||
assert paint.startAngle.value == 15
|
assert paint.startAngle.value == 15
|
||||||
@ -412,11 +412,11 @@ def test_buildPaintGlyph_Solid():
|
|||||||
layerBuilder = LayerV1ListBuilder()
|
layerBuilder = LayerV1ListBuilder()
|
||||||
layer = layerBuilder.buildPaintGlyph("a", 2)
|
layer = layerBuilder.buildPaintGlyph("a", 2)
|
||||||
assert layer.Glyph == "a"
|
assert layer.Glyph == "a"
|
||||||
assert layer.Paint.Format == ot.Paint.Format.PaintSolid
|
assert layer.Paint.Format == ot.PaintFormat.PaintSolid
|
||||||
assert layer.Paint.Color.PaletteIndex == 2
|
assert layer.Paint.Color.PaletteIndex == 2
|
||||||
|
|
||||||
layer = layerBuilder.buildPaintGlyph("a", layerBuilder.buildPaintSolid(3, 0.9))
|
layer = layerBuilder.buildPaintGlyph("a", layerBuilder.buildPaintSolid(3, 0.9))
|
||||||
assert layer.Paint.Format == ot.Paint.Format.PaintSolid
|
assert layer.Paint.Format == ot.PaintFormat.PaintSolid
|
||||||
assert layer.Paint.Color.PaletteIndex == 3
|
assert layer.Paint.Color.PaletteIndex == 3
|
||||||
assert layer.Paint.Color.Alpha.value == 0.9
|
assert layer.Paint.Color.Alpha.value == 0.9
|
||||||
|
|
||||||
@ -429,7 +429,7 @@ def test_buildPaintGlyph_LinearGradient():
|
|||||||
{"stops": [(0.0, 3), (1.0, 4)]}, (100, 200), (150, 250)
|
{"stops": [(0.0, 3), (1.0, 4)]}, (100, 200), (150, 250)
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
assert layer.Paint.Format == ot.Paint.Format.PaintLinearGradient
|
assert layer.Paint.Format == ot.PaintFormat.PaintLinearGradient
|
||||||
assert layer.Paint.ColorLine.ColorStop[0].StopOffset.value == 0.0
|
assert layer.Paint.ColorLine.ColorStop[0].StopOffset.value == 0.0
|
||||||
assert layer.Paint.ColorLine.ColorStop[0].Color.PaletteIndex == 3
|
assert layer.Paint.ColorLine.ColorStop[0].Color.PaletteIndex == 3
|
||||||
assert layer.Paint.ColorLine.ColorStop[1].StopOffset.value == 1.0
|
assert layer.Paint.ColorLine.ColorStop[1].StopOffset.value == 1.0
|
||||||
@ -458,7 +458,7 @@ def test_buildPaintGlyph_RadialGradient():
|
|||||||
10,
|
10,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
assert layer.Paint.Format == ot.Paint.Format.PaintRadialGradient
|
assert layer.Paint.Format == ot.PaintFormat.PaintRadialGradient
|
||||||
assert layer.Paint.ColorLine.ColorStop[0].StopOffset.value == 0.0
|
assert layer.Paint.ColorLine.ColorStop[0].StopOffset.value == 0.0
|
||||||
assert layer.Paint.ColorLine.ColorStop[0].Color.PaletteIndex == 5
|
assert layer.Paint.ColorLine.ColorStop[0].Color.PaletteIndex == 5
|
||||||
assert layer.Paint.ColorLine.ColorStop[1].StopOffset.value == 0.5
|
assert layer.Paint.ColorLine.ColorStop[1].StopOffset.value == 0.5
|
||||||
@ -478,7 +478,7 @@ def test_buildPaintGlyph_Dict_Solid():
|
|||||||
layerBuilder = LayerV1ListBuilder()
|
layerBuilder = LayerV1ListBuilder()
|
||||||
layer = layerBuilder.buildPaintGlyph("a", {"format": 2, "paletteIndex": 0})
|
layer = layerBuilder.buildPaintGlyph("a", {"format": 2, "paletteIndex": 0})
|
||||||
assert layer.Glyph == "a"
|
assert layer.Glyph == "a"
|
||||||
assert layer.Paint.Format == ot.Paint.Format.PaintSolid
|
assert layer.Paint.Format == ot.PaintFormat.PaintSolid
|
||||||
assert layer.Paint.Color.PaletteIndex == 0
|
assert layer.Paint.Color.PaletteIndex == 0
|
||||||
|
|
||||||
|
|
||||||
@ -493,7 +493,7 @@ def test_buildPaintGlyph_Dict_LinearGradient():
|
|||||||
"p1": (10, 10),
|
"p1": (10, 10),
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
assert layer.Paint.Format == ot.Paint.Format.PaintLinearGradient
|
assert layer.Paint.Format == ot.PaintFormat.PaintLinearGradient
|
||||||
assert layer.Paint.ColorLine.ColorStop[0].StopOffset.value == 0.0
|
assert layer.Paint.ColorLine.ColorStop[0].StopOffset.value == 0.0
|
||||||
|
|
||||||
|
|
||||||
@ -510,13 +510,13 @@ def test_buildPaintGlyph_Dict_RadialGradient():
|
|||||||
"r1": 0,
|
"r1": 0,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
assert layer.Paint.Format == ot.Paint.Format.PaintRadialGradient
|
assert layer.Paint.Format == ot.PaintFormat.PaintRadialGradient
|
||||||
assert layer.Paint.r0.value == 4
|
assert layer.Paint.r0.value == 4
|
||||||
|
|
||||||
|
|
||||||
def test_buildPaintColrGlyph():
|
def test_buildPaintColrGlyph():
|
||||||
paint = LayerV1ListBuilder().buildPaintColrGlyph("a")
|
paint = LayerV1ListBuilder().buildPaintColrGlyph("a")
|
||||||
assert paint.Format == ot.Paint.Format.PaintColrGlyph
|
assert paint.Format == ot.PaintFormat.PaintColrGlyph
|
||||||
assert paint.Glyph == "a"
|
assert paint.Glyph == "a"
|
||||||
|
|
||||||
|
|
||||||
@ -530,9 +530,9 @@ def test_buildPaintTransform():
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
assert paint.Format == ot.Paint.Format.PaintTransform
|
assert paint.Format == ot.PaintFormat.PaintTransform
|
||||||
assert paint.Paint.Format == ot.Paint.Format.PaintGlyph
|
assert paint.Paint.Format == ot.PaintFormat.PaintGlyph
|
||||||
assert paint.Paint.Paint.Format == ot.Paint.Format.PaintSolid
|
assert paint.Paint.Paint.Format == ot.PaintFormat.PaintSolid
|
||||||
|
|
||||||
assert paint.Transform.xx.value == 1.0
|
assert paint.Transform.xx.value == 1.0
|
||||||
assert paint.Transform.yx.value == 2.0
|
assert paint.Transform.yx.value == 2.0
|
||||||
@ -553,14 +553,14 @@ def test_buildPaintTransform():
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
assert paint.Format == ot.Paint.Format.PaintTransform
|
assert paint.Format == ot.PaintFormat.PaintTransform
|
||||||
assert paint.Transform.xx.value == 1.0
|
assert paint.Transform.xx.value == 1.0
|
||||||
assert paint.Transform.yx.value == 0.0
|
assert paint.Transform.yx.value == 0.0
|
||||||
assert paint.Transform.xy.value == 0.0
|
assert paint.Transform.xy.value == 0.0
|
||||||
assert paint.Transform.yy.value == 0.3333
|
assert paint.Transform.yy.value == 0.3333
|
||||||
assert paint.Transform.dx.value == 10
|
assert paint.Transform.dx.value == 10
|
||||||
assert paint.Transform.dy.value == 10
|
assert paint.Transform.dy.value == 10
|
||||||
assert paint.Paint.Format == ot.Paint.Format.PaintRadialGradient
|
assert paint.Paint.Format == ot.PaintFormat.PaintRadialGradient
|
||||||
|
|
||||||
|
|
||||||
def test_buildPaintComposite():
|
def test_buildPaintComposite():
|
||||||
@ -578,23 +578,23 @@ def test_buildPaintComposite():
|
|||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
assert composite.Format == ot.Paint.Format.PaintComposite
|
assert composite.Format == ot.PaintFormat.PaintComposite
|
||||||
assert composite.SourcePaint.Format == ot.Paint.Format.PaintComposite
|
assert composite.SourcePaint.Format == ot.PaintFormat.PaintComposite
|
||||||
assert composite.SourcePaint.SourcePaint.Format == ot.Paint.Format.PaintGlyph
|
assert composite.SourcePaint.SourcePaint.Format == ot.PaintFormat.PaintGlyph
|
||||||
assert composite.SourcePaint.SourcePaint.Glyph == "c"
|
assert composite.SourcePaint.SourcePaint.Glyph == "c"
|
||||||
assert composite.SourcePaint.SourcePaint.Paint.Format == ot.Paint.Format.PaintSolid
|
assert composite.SourcePaint.SourcePaint.Paint.Format == ot.PaintFormat.PaintSolid
|
||||||
assert composite.SourcePaint.SourcePaint.Paint.Color.PaletteIndex == 2
|
assert composite.SourcePaint.SourcePaint.Paint.Color.PaletteIndex == 2
|
||||||
assert composite.SourcePaint.CompositeMode == ot.CompositeMode.SRC_OVER
|
assert composite.SourcePaint.CompositeMode == ot.CompositeMode.SRC_OVER
|
||||||
assert composite.SourcePaint.BackdropPaint.Format == ot.Paint.Format.PaintGlyph
|
assert composite.SourcePaint.BackdropPaint.Format == ot.PaintFormat.PaintGlyph
|
||||||
assert composite.SourcePaint.BackdropPaint.Glyph == "b"
|
assert composite.SourcePaint.BackdropPaint.Glyph == "b"
|
||||||
assert (
|
assert (
|
||||||
composite.SourcePaint.BackdropPaint.Paint.Format == ot.Paint.Format.PaintSolid
|
composite.SourcePaint.BackdropPaint.Paint.Format == ot.PaintFormat.PaintSolid
|
||||||
)
|
)
|
||||||
assert composite.SourcePaint.BackdropPaint.Paint.Color.PaletteIndex == 1
|
assert composite.SourcePaint.BackdropPaint.Paint.Color.PaletteIndex == 1
|
||||||
assert composite.CompositeMode == ot.CompositeMode.SRC_OVER
|
assert composite.CompositeMode == ot.CompositeMode.SRC_OVER
|
||||||
assert composite.BackdropPaint.Format == ot.Paint.Format.PaintGlyph
|
assert composite.BackdropPaint.Format == ot.PaintFormat.PaintGlyph
|
||||||
assert composite.BackdropPaint.Glyph == "a"
|
assert composite.BackdropPaint.Glyph == "a"
|
||||||
assert composite.BackdropPaint.Paint.Format == ot.Paint.Format.PaintSolid
|
assert composite.BackdropPaint.Paint.Format == ot.PaintFormat.PaintSolid
|
||||||
assert composite.BackdropPaint.Paint.Color.PaletteIndex == 0
|
assert composite.BackdropPaint.Paint.Color.PaletteIndex == 0
|
||||||
|
|
||||||
|
|
||||||
@ -608,8 +608,8 @@ def test_buildPaintTranslate():
|
|||||||
dy=-345,
|
dy=-345,
|
||||||
)
|
)
|
||||||
|
|
||||||
assert paint.Format == ot.Paint.Format.PaintTranslate
|
assert paint.Format == ot.PaintFormat.PaintTranslate
|
||||||
assert paint.Paint.Format == ot.Paint.Format.PaintGlyph
|
assert paint.Paint.Format == ot.PaintFormat.PaintGlyph
|
||||||
assert paint.dx.value == 123
|
assert paint.dx.value == 123
|
||||||
assert paint.dy.value == -345
|
assert paint.dy.value == -345
|
||||||
|
|
||||||
@ -625,8 +625,8 @@ def test_buildPaintRotate():
|
|||||||
centerY=129,
|
centerY=129,
|
||||||
)
|
)
|
||||||
|
|
||||||
assert paint.Format == ot.Paint.Format.PaintRotate
|
assert paint.Format == ot.PaintFormat.PaintRotate
|
||||||
assert paint.Paint.Format == ot.Paint.Format.PaintGlyph
|
assert paint.Paint.Format == ot.PaintFormat.PaintGlyph
|
||||||
assert paint.angle.value == 15
|
assert paint.angle.value == 15
|
||||||
assert paint.centerX.value == 127
|
assert paint.centerX.value == 127
|
||||||
assert paint.centerY.value == 129
|
assert paint.centerY.value == 129
|
||||||
@ -644,8 +644,8 @@ def test_buildPaintSkew():
|
|||||||
centerY=129,
|
centerY=129,
|
||||||
)
|
)
|
||||||
|
|
||||||
assert paint.Format == ot.Paint.Format.PaintSkew
|
assert paint.Format == ot.PaintFormat.PaintSkew
|
||||||
assert paint.Paint.Format == ot.Paint.Format.PaintGlyph
|
assert paint.Paint.Format == ot.PaintFormat.PaintGlyph
|
||||||
assert paint.xSkewAngle.value == 15
|
assert paint.xSkewAngle.value == 15
|
||||||
assert paint.ySkewAngle.value == 42
|
assert paint.ySkewAngle.value == 42
|
||||||
assert paint.centerX.value == 127
|
assert paint.centerX.value == 127
|
||||||
@ -714,21 +714,21 @@ def test_buildColrV1_more_than_255_paints():
|
|||||||
|
|
||||||
assert len(paints) == num_paints + 1
|
assert len(paints) == num_paints + 1
|
||||||
|
|
||||||
assert all(paints[i].Format == ot.Paint.Format.PaintGlyph for i in range(255))
|
assert all(paints[i].Format == ot.PaintFormat.PaintGlyph for i in range(255))
|
||||||
|
|
||||||
assert paints[255].Format == ot.Paint.Format.PaintColrLayers
|
assert paints[255].Format == ot.PaintFormat.PaintColrLayers
|
||||||
assert paints[255].FirstLayerIndex == 0
|
assert paints[255].FirstLayerIndex == 0
|
||||||
assert paints[255].NumLayers == 255
|
assert paints[255].NumLayers == 255
|
||||||
|
|
||||||
assert all(
|
assert all(
|
||||||
paints[i].Format == ot.Paint.Format.PaintGlyph
|
paints[i].Format == ot.PaintFormat.PaintGlyph
|
||||||
for i in range(256, num_paints + 1)
|
for i in range(256, num_paints + 1)
|
||||||
)
|
)
|
||||||
|
|
||||||
assert baseGlyphs.BaseGlyphCount == len(colorGlyphs)
|
assert baseGlyphs.BaseGlyphCount == len(colorGlyphs)
|
||||||
assert baseGlyphs.BaseGlyphV1Record[0].BaseGlyph == "a"
|
assert baseGlyphs.BaseGlyphV1Record[0].BaseGlyph == "a"
|
||||||
assert (
|
assert (
|
||||||
baseGlyphs.BaseGlyphV1Record[0].Paint.Format == ot.Paint.Format.PaintColrLayers
|
baseGlyphs.BaseGlyphV1Record[0].Paint.Format == ot.PaintFormat.PaintColrLayers
|
||||||
)
|
)
|
||||||
assert baseGlyphs.BaseGlyphV1Record[0].Paint.FirstLayerIndex == 255
|
assert baseGlyphs.BaseGlyphV1Record[0].Paint.FirstLayerIndex == 255
|
||||||
assert baseGlyphs.BaseGlyphV1Record[0].Paint.NumLayers == num_paints + 1 - 255
|
assert baseGlyphs.BaseGlyphV1Record[0].Paint.NumLayers == num_paints + 1 - 255
|
||||||
@ -841,9 +841,9 @@ def _paint_names(paints) -> List[str]:
|
|||||||
# semi-readable assertions on a LayerV1List order.
|
# semi-readable assertions on a LayerV1List order.
|
||||||
result = []
|
result = []
|
||||||
for paint in paints:
|
for paint in paints:
|
||||||
if paint.Format == int(ot.Paint.Format.PaintGlyph):
|
if paint.Format == int(ot.PaintFormat.PaintGlyph):
|
||||||
result.append(paint.Glyph)
|
result.append(paint.Glyph)
|
||||||
elif paint.Format == int(ot.Paint.Format.PaintColrLayers):
|
elif paint.Format == int(ot.PaintFormat.PaintColrLayers):
|
||||||
result.append(
|
result.append(
|
||||||
f"Layers[{paint.FirstLayerIndex}:{paint.FirstLayerIndex+paint.NumLayers}]"
|
f"Layers[{paint.FirstLayerIndex}:{paint.FirstLayerIndex+paint.NumLayers}]"
|
||||||
)
|
)
|
||||||
|
@ -7,19 +7,19 @@ import pytest
|
|||||||
TEST_COLOR_GLYPHS = {
|
TEST_COLOR_GLYPHS = {
|
||||||
"glyph00010": [
|
"glyph00010": [
|
||||||
{
|
{
|
||||||
"format": int(ot.Paint.Format.PaintGlyph),
|
"format": int(ot.PaintFormat.PaintGlyph),
|
||||||
"glyph": "glyph00011",
|
"glyph": "glyph00011",
|
||||||
"paint": {
|
"paint": {
|
||||||
"format": int(ot.Paint.Format.PaintSolid),
|
"format": int(ot.PaintFormat.PaintSolid),
|
||||||
"paletteIndex": 2,
|
"paletteIndex": 2,
|
||||||
"alpha": 0.5,
|
"alpha": 0.5,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": int(ot.Paint.Format.PaintGlyph),
|
"format": int(ot.PaintFormat.PaintGlyph),
|
||||||
"glyph": "glyph00012",
|
"glyph": "glyph00012",
|
||||||
"paint": {
|
"paint": {
|
||||||
"format": int(ot.Paint.Format.PaintLinearGradient),
|
"format": int(ot.PaintFormat.PaintLinearGradient),
|
||||||
"colorLine": {
|
"colorLine": {
|
||||||
"stops": [
|
"stops": [
|
||||||
{"offset": 0.0, "paletteIndex": 3, "alpha": 1.0},
|
{"offset": 0.0, "paletteIndex": 3, "alpha": 1.0},
|
||||||
@ -34,13 +34,13 @@ TEST_COLOR_GLYPHS = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": int(ot.Paint.Format.PaintGlyph),
|
"format": int(ot.PaintFormat.PaintGlyph),
|
||||||
"glyph": "glyph00013",
|
"glyph": "glyph00013",
|
||||||
"paint": {
|
"paint": {
|
||||||
"format": int(ot.Paint.Format.PaintTransform),
|
"format": int(ot.PaintFormat.PaintTransform),
|
||||||
"transform": (-13.0, 14.0, 15.0, -17.0, 18.0, 19.0),
|
"transform": (-13.0, 14.0, 15.0, -17.0, 18.0, 19.0),
|
||||||
"paint": {
|
"paint": {
|
||||||
"format": int(ot.Paint.Format.PaintRadialGradient),
|
"format": int(ot.PaintFormat.PaintRadialGradient),
|
||||||
"colorLine": {
|
"colorLine": {
|
||||||
"stops": [
|
"stops": [
|
||||||
{"offset": 0.0, "paletteIndex": 6, "alpha": 1.0},
|
{"offset": 0.0, "paletteIndex": 6, "alpha": 1.0},
|
||||||
@ -60,25 +60,25 @@ TEST_COLOR_GLYPHS = {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": int(ot.Paint.Format.PaintTranslate),
|
"format": int(ot.PaintFormat.PaintTranslate),
|
||||||
"dx": 257.0,
|
"dx": 257.0,
|
||||||
"dy": 258.0,
|
"dy": 258.0,
|
||||||
"paint": {
|
"paint": {
|
||||||
"format": int(ot.Paint.Format.PaintRotate),
|
"format": int(ot.PaintFormat.PaintRotate),
|
||||||
"angle": 45.0,
|
"angle": 45.0,
|
||||||
"centerX": 255.0,
|
"centerX": 255.0,
|
||||||
"centerY": 256.0,
|
"centerY": 256.0,
|
||||||
"paint": {
|
"paint": {
|
||||||
"format": int(ot.Paint.Format.PaintSkew),
|
"format": int(ot.PaintFormat.PaintSkew),
|
||||||
"xSkewAngle": -11.0,
|
"xSkewAngle": -11.0,
|
||||||
"ySkewAngle": 5.0,
|
"ySkewAngle": 5.0,
|
||||||
"centerX": 253.0,
|
"centerX": 253.0,
|
||||||
"centerY": 254.0,
|
"centerY": 254.0,
|
||||||
"paint": {
|
"paint": {
|
||||||
"format": int(ot.Paint.Format.PaintGlyph),
|
"format": int(ot.PaintFormat.PaintGlyph),
|
||||||
"glyph": "glyph00011",
|
"glyph": "glyph00011",
|
||||||
"paint": {
|
"paint": {
|
||||||
"format": int(ot.Paint.Format.PaintSolid),
|
"format": int(ot.PaintFormat.PaintSolid),
|
||||||
"paletteIndex": 2,
|
"paletteIndex": 2,
|
||||||
"alpha": 0.5,
|
"alpha": 0.5,
|
||||||
},
|
},
|
||||||
@ -88,26 +88,26 @@ TEST_COLOR_GLYPHS = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
"glyph00014": {
|
"glyph00014": {
|
||||||
"format": int(ot.Paint.Format.PaintComposite),
|
"format": int(ot.PaintFormat.PaintComposite),
|
||||||
"mode": "src_over",
|
"mode": "src_over",
|
||||||
"source": {
|
"source": {
|
||||||
"format": int(ot.Paint.Format.PaintColrGlyph),
|
"format": int(ot.PaintFormat.PaintColrGlyph),
|
||||||
"glyph": "glyph00010",
|
"glyph": "glyph00010",
|
||||||
},
|
},
|
||||||
"backdrop": {
|
"backdrop": {
|
||||||
"format": int(ot.Paint.Format.PaintTransform),
|
"format": int(ot.PaintFormat.PaintTransform),
|
||||||
"transform": (1.0, 0.0, 0.0, 1.0, 300.0, 0.0),
|
"transform": (1.0, 0.0, 0.0, 1.0, 300.0, 0.0),
|
||||||
"paint": {
|
"paint": {
|
||||||
"format": int(ot.Paint.Format.PaintColrGlyph),
|
"format": int(ot.PaintFormat.PaintColrGlyph),
|
||||||
"glyph": "glyph00010",
|
"glyph": "glyph00010",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
"glyph00015": {
|
"glyph00015": {
|
||||||
"format": int(ot.Paint.Format.PaintGlyph),
|
"format": int(ot.PaintFormat.PaintGlyph),
|
||||||
"glyph": "glyph00011",
|
"glyph": "glyph00011",
|
||||||
"paint": {
|
"paint": {
|
||||||
"format": int(ot.Paint.Format.PaintSweepGradient),
|
"format": int(ot.PaintFormat.PaintSweepGradient),
|
||||||
"colorLine": {
|
"colorLine": {
|
||||||
"stops": [
|
"stops": [
|
||||||
{"offset": 0.0, "paletteIndex": 3, "alpha": 1.0},
|
{"offset": 0.0, "paletteIndex": 3, "alpha": 1.0},
|
||||||
@ -123,19 +123,19 @@ TEST_COLOR_GLYPHS = {
|
|||||||
},
|
},
|
||||||
"glyph00016": [
|
"glyph00016": [
|
||||||
{
|
{
|
||||||
"format": int(ot.Paint.Format.PaintGlyph),
|
"format": int(ot.PaintFormat.PaintGlyph),
|
||||||
"glyph": "glyph00011",
|
"glyph": "glyph00011",
|
||||||
"paint": {
|
"paint": {
|
||||||
"format": int(ot.Paint.Format.PaintSolid),
|
"format": int(ot.PaintFormat.PaintSolid),
|
||||||
"paletteIndex": 2,
|
"paletteIndex": 2,
|
||||||
"alpha": 0.5,
|
"alpha": 0.5,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"format": int(ot.Paint.Format.PaintGlyph),
|
"format": int(ot.PaintFormat.PaintGlyph),
|
||||||
"glyph": "glyph00012",
|
"glyph": "glyph00012",
|
||||||
"paint": {
|
"paint": {
|
||||||
"format": int(ot.Paint.Format.PaintLinearGradient),
|
"format": int(ot.PaintFormat.PaintLinearGradient),
|
||||||
"colorLine": {
|
"colorLine": {
|
||||||
"stops": [
|
"stops": [
|
||||||
{"offset": 0.0, "paletteIndex": 3, "alpha": 1.0},
|
{"offset": 0.0, "paletteIndex": 3, "alpha": 1.0},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user