go-sdl2 icon indicating copy to clipboard operation
go-sdl2 copied to clipboard

Unable to call RenderGeometery with nil indicies

Open advisoft opened this issue 2 years ago • 2 comments

The SDL2 documentation says you can pass in NULL indices.

image

The go-sdl2 function assumes there is at least one indice passed in:

image

I presume the fix is probably something like this:

diff --git a/sdl/render.go b/sdl/render.go
index 6e2abab..45b67c9 100644
--- a/sdl/render.go
+++ b/sdl/render.go
@@ -1176,9 +1176,10 @@ func (renderer *Renderer) RenderGeometry(texture *Texture, vertices []Vertex, in
 	_texture := texture.cptr()
 	_vertices := (*C.SDL_Vertex)(unsafe.Pointer(&vertices[0]))
 	_num_vertices := C.int(len(vertices))
-	_indices := (*C.int)(unsafe.Pointer(&indices[0]))
+	var _indices *C.int
 	_num_indices := C.int(0)
 	if indices != nil {
+		_indices = (*C.int)(unsafe.Pointer(&indices[0]))
 		_num_indices = C.int(len(indices))
 	}
 	err = errorFromInt(int(C.SDL_RenderGeometry(renderer.cptr(), _texture, _vertices, _num_vertices, _indices, _num_indices)))

advisoft avatar Apr 11 '22 00:04 advisoft

Thanks for reporting the issue and providing the fix @advisoft! I have applied it and tagged a new patch release with v0.4.20.

veeableful avatar Apr 11 '22 04:04 veeableful

Thank you.

advisoft avatar Apr 11 '22 04:04 advisoft