mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-01 07:35:40 +00:00
gpu/clip: fix vertex corner positions
Fixes the 1px overlap of curve quads. Without this patch the rendered quads were skewed vertically and were 2 pixels shorter in height. The NorthWest pixels were moved to the SouthWest instead of NorthWest and the SouthEast pixels were moved to the NorthEast instead of SouthEast. References: https://todo.sr.ht/~eliasnaur/gio/339 Signed-off-by: Walter Werner SCHNEIDER <contact@schnwalter.eu> Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
committed by
Elias Naur
parent
f45039734f
commit
4c0e526c0b
+6
-6
@@ -19,10 +19,10 @@ type quadSplitter struct {
|
|||||||
|
|
||||||
func encodeQuadTo(data []byte, meta uint32, from, ctrl, to f32.Point) {
|
func encodeQuadTo(data []byte, meta uint32, from, ctrl, to f32.Point) {
|
||||||
// inlined code:
|
// inlined code:
|
||||||
// encodeVertex(data, meta, -1, 1, from, ctrl, to)
|
// encodeVertex(data, meta, 1, -1, from, ctrl, to)
|
||||||
// encodeVertex(data[vertStride:], meta, 1, 1, from, ctrl, to)
|
// encodeVertex(data[vertStride:], meta, 1, 1, from, ctrl, to)
|
||||||
// encodeVertex(data[vertStride*2:], meta, -1, -1, from, ctrl, to)
|
// encodeVertex(data[vertStride*2:], meta, -1, -1, from, ctrl, to)
|
||||||
// encodeVertex(data[vertStride*3:], meta, 1, -1, from, ctrl, to)
|
// encodeVertex(data[vertStride*3:], meta, -1, 1, from, ctrl, to)
|
||||||
// this code needs to stay in sync with `vertex.encode`.
|
// this code needs to stay in sync with `vertex.encode`.
|
||||||
|
|
||||||
bo := binary.LittleEndian
|
bo := binary.LittleEndian
|
||||||
@@ -48,10 +48,10 @@ func encodeQuadTo(data []byte, meta uint32, from, ctrl, to f32.Point) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
nwCorner = 1*0.25 + 0*0.5
|
nwCorner = 1*0.5 + 0*0.25
|
||||||
neCorner = 1*0.25 + 1*0.5
|
neCorner = 1*0.5 + 1*0.25
|
||||||
swCorner = 0*0.25 + 0*0.5
|
swCorner = 0*0.5 + 0*0.25
|
||||||
seCorner = 0*0.25 + 1*0.5
|
seCorner = 0*0.5 + 1*0.25
|
||||||
)
|
)
|
||||||
|
|
||||||
func encodeVertex(data []byte, meta uint32, cornerx, cornery int16, from, ctrl, to f32.Point) {
|
func encodeVertex(data []byte, meta uint32, cornerx, cornery int16, from, ctrl, to f32.Point) {
|
||||||
|
|||||||
Reference in New Issue
Block a user