mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-11-10 04:57:26 +01:00
ebiten: Use the common vertices backend at DrawTriangles
This commit is contained in:
parent
15a0c53918
commit
41f060b1d2
5
image.go
5
image.go
@ -327,8 +327,7 @@ func (i *Image) DrawTriangles(vertices []Vertex, indices []uint16, img *Image, o
|
|||||||
|
|
||||||
filter := driver.Filter(options.Filter)
|
filter := driver.Filter(options.Filter)
|
||||||
|
|
||||||
// TODO: Use the same backend as graphics.QuadVertices.
|
vs := graphics.Vertices(len(vertices))
|
||||||
vs := make([]float32, len(vertices)*graphics.VertexFloatNum)
|
|
||||||
for i, v := range vertices {
|
for i, v := range vertices {
|
||||||
vs[i*graphics.VertexFloatNum] = v.DstX
|
vs[i*graphics.VertexFloatNum] = v.DstX
|
||||||
vs[i*graphics.VertexFloatNum+1] = v.DstY
|
vs[i*graphics.VertexFloatNum+1] = v.DstY
|
||||||
@ -417,7 +416,7 @@ func (i *Image) DrawTrianglesShader(vertices []Vertex, indices []uint16, shader
|
|||||||
|
|
||||||
mode := driver.CompositeMode(options.CompositeMode)
|
mode := driver.CompositeMode(options.CompositeMode)
|
||||||
|
|
||||||
vs := make([]float32, len(vertices)*graphics.VertexFloatNum)
|
vs := graphics.Vertices(len(vertices))
|
||||||
for i, v := range vertices {
|
for i, v := range vertices {
|
||||||
vs[i*graphics.VertexFloatNum] = v.DstX
|
vs[i*graphics.VertexFloatNum] = v.DstX
|
||||||
vs[i*graphics.VertexFloatNum+1] = v.DstY
|
vs[i*graphics.VertexFloatNum+1] = v.DstY
|
||||||
|
@ -63,9 +63,6 @@ type verticesBackend struct {
|
|||||||
m sync.Mutex
|
m sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
||||||
// slice returns a float32 slice for n vertices.
|
|
||||||
// slice returns a slice that never overlaps with other slices returned this function,
|
|
||||||
// and users can do optimization based on this fact.
|
|
||||||
func (v *verticesBackend) slice(n int) []float32 {
|
func (v *verticesBackend) slice(n int) []float32 {
|
||||||
v.m.Lock()
|
v.m.Lock()
|
||||||
defer v.m.Unlock()
|
defer v.m.Unlock()
|
||||||
@ -88,6 +85,16 @@ func (v *verticesBackend) slice(n int) []float32 {
|
|||||||
return s
|
return s
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Vertices returns a float32 slice for n vertices.
|
||||||
|
// Vertices returns a slice that never overlaps with other slices returned this function,
|
||||||
|
// and users can do optimization based on this fact.
|
||||||
|
func Vertices(n int) []float32 {
|
||||||
|
return theVerticesBackend.slice(n)
|
||||||
|
}
|
||||||
|
|
||||||
|
// QuadVertices returns a float32 slice for a quadrangle.
|
||||||
|
// QuadVertices returns a slice that never overlaps with other slices returned this function,
|
||||||
|
// and users can do optimization based on this fact.
|
||||||
func QuadVertices(sx0, sy0, sx1, sy1 float32, a, b, c, d, tx, ty float32, cr, cg, cb, ca float32) []float32 {
|
func QuadVertices(sx0, sy0, sx1, sy1 float32, a, b, c, d, tx, ty float32, cr, cg, cb, ca float32) []float32 {
|
||||||
x := sx1 - sx0
|
x := sx1 - sx0
|
||||||
y := sy1 - sy0
|
y := sy1 - sy0
|
||||||
|
Loading…
Reference in New Issue
Block a user