feat: primitive styling

This commit is contained in:
IliaDenisov
2026-03-07 17:01:22 +02:00
parent 477e656008
commit e4b956232f
18 changed files with 1264 additions and 175 deletions
+11 -9
View File
@@ -103,27 +103,29 @@ func TestGGDrawerResetClipClearsClip(t *testing.T) {
require.True(t, pixelHasAlpha(dc.Image(), 15, 16))
}
func TestGGDrawerClearRect_ClearsPixels(t *testing.T) {
func TestGGDrawerClearRectTo_FillsBackground(t *testing.T) {
t.Parallel()
dc := gg.NewContext(10, 10)
dr := &GGDrawer{DC: dc}
// Draw something everywhere.
// Draw something to ensure we overwrite non-background.
dr.SetFillColor(color.RGBA{R: 255, A: 255})
dr.ClipRect(0, 0, 10, 10)
dr.AddCircle(5, 5, 5)
dr.Fill()
dr.ResetClip()
// Clear a 2x2 rect at (1,1)
dr.ClearRect(1, 1, 2, 2)
bg := color.RGBA{A: 255} // black
dr.ClearRectTo(1, 1, 2, 2, bg)
img := dc.Image()
_, _, _, a := img.At(1, 1).RGBA()
require.Equal(t, uint32(0), a)
r, g, b, a := img.At(1, 1).RGBA()
// Pixel outside should remain non-zero alpha.
require.Equal(t, uint32(0), r)
require.Equal(t, uint32(0), g)
require.Equal(t, uint32(0), b)
require.Equal(t, uint32(0xffff), a)
// Pixel outside cleared rect should still have non-zero alpha.
_, _, _, a2 := img.At(5, 5).RGBA()
require.NotEqual(t, uint32(0), a2)
}