mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-11-10 04:57:26 +01:00
ebiten: omit the exceeding part of vertices at Draw*
This commit is contained in:
parent
e1386e2032
commit
c7ca9cb321
12
image.go
12
image.go
@ -413,6 +413,8 @@ const MaxVerticesCount = graphics.MaxVerticesCount
|
|||||||
// Vertex contains color values, which are interpreted as straight-alpha colors by default.
|
// Vertex contains color values, which are interpreted as straight-alpha colors by default.
|
||||||
// This depends on the option's ColorScaleMode.
|
// This depends on the option's ColorScaleMode.
|
||||||
//
|
//
|
||||||
|
// If len(vertices) is more than MaxVerticesCount, the exceeding part is ignored.
|
||||||
|
//
|
||||||
// If len(indices) is not multiple of 3, DrawTriangles panics.
|
// If len(indices) is not multiple of 3, DrawTriangles panics.
|
||||||
//
|
//
|
||||||
// If a value in indices is out of range of vertices, or not less than MaxVerticesCount, DrawTriangles panics.
|
// If a value in indices is out of range of vertices, or not less than MaxVerticesCount, DrawTriangles panics.
|
||||||
@ -432,6 +434,10 @@ func (i *Image) DrawTriangles(vertices []Vertex, indices []uint16, img *Image, o
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(vertices) > graphics.MaxVerticesCount {
|
||||||
|
// The last part cannot be specified by indices. Just omit them.
|
||||||
|
vertices = vertices[:graphics.MaxVerticesCount]
|
||||||
|
}
|
||||||
if len(indices)%3 != 0 {
|
if len(indices)%3 != 0 {
|
||||||
panic("ebiten: len(indices) % 3 must be 0")
|
panic("ebiten: len(indices) % 3 must be 0")
|
||||||
}
|
}
|
||||||
@ -563,6 +569,8 @@ var _ [len(DrawTrianglesShaderOptions{}.Images) - graphics.ShaderImageCount]stru
|
|||||||
//
|
//
|
||||||
// For the details about the shader, see https://ebitengine.org/en/documents/shader.html.
|
// For the details about the shader, see https://ebitengine.org/en/documents/shader.html.
|
||||||
//
|
//
|
||||||
|
// If len(vertices) is more than MaxVerticesCount, the exceeding part is ignored.
|
||||||
|
//
|
||||||
// If len(indices) is not multiple of 3, DrawTrianglesShader panics.
|
// If len(indices) is not multiple of 3, DrawTrianglesShader panics.
|
||||||
//
|
//
|
||||||
// If a value in indices is out of range of vertices, or not less than MaxVerticesCount, DrawTrianglesShader panics.
|
// If a value in indices is out of range of vertices, or not less than MaxVerticesCount, DrawTrianglesShader panics.
|
||||||
@ -577,6 +585,10 @@ func (i *Image) DrawTrianglesShader(vertices []Vertex, indices []uint16, shader
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(vertices) > graphics.MaxVerticesCount {
|
||||||
|
// The last part cannot be specified by indices. Just omit them.
|
||||||
|
vertices = vertices[:graphics.MaxVerticesCount]
|
||||||
|
}
|
||||||
if len(indices)%3 != 0 {
|
if len(indices)%3 != 0 {
|
||||||
panic("ebiten: len(indices) % 3 must be 0")
|
panic("ebiten: len(indices) % 3 must be 0")
|
||||||
}
|
}
|
||||||
|
@ -92,8 +92,7 @@ func mustUseDifferentVertexBuffer(nextNumVertexFloats int) bool {
|
|||||||
// EnqueueDrawTrianglesCommand enqueues a drawing-image command.
|
// EnqueueDrawTrianglesCommand enqueues a drawing-image command.
|
||||||
func (q *commandQueue) EnqueueDrawTrianglesCommand(dst *Image, srcs [graphics.ShaderImageCount]*Image, offsets [graphics.ShaderImageCount - 1][2]float32, vertices []float32, indices []uint16, blend graphicsdriver.Blend, dstRegion, srcRegion graphicsdriver.Region, shader *Shader, uniforms []uint32, evenOdd bool) {
|
func (q *commandQueue) EnqueueDrawTrianglesCommand(dst *Image, srcs [graphics.ShaderImageCount]*Image, offsets [graphics.ShaderImageCount - 1][2]float32, vertices []float32, indices []uint16, blend graphicsdriver.Blend, dstRegion, srcRegion graphicsdriver.Region, shader *Shader, uniforms []uint32, evenOdd bool) {
|
||||||
if len(vertices) > graphics.MaxVertexFloatsCount {
|
if len(vertices) > graphics.MaxVertexFloatsCount {
|
||||||
// The last part cannot be specified by indices. Just omit them.
|
panic(fmt.Sprintf("graphicscommand: len(vertices) must equal to or less than %d but was %d", graphics.MaxVertexFloatsCount, len(vertices)))
|
||||||
vertices = vertices[:graphics.MaxVertexFloatsCount]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
split := false
|
split := false
|
||||||
|
Loading…
Reference in New Issue
Block a user