diff --git a/sdl/surface.go b/sdl/surface.go
index <HASH>..<HASH> 100644
--- a/sdl/surface.go
+++ b/sdl/surface.go
@@ -196,8 +196,11 @@ func (surface *Surface) FillRect(rect *Rect, color uint32) error {
 }
 
 // Surface (https://wiki.libsdl.org/SDL_FillRects)
-func (surface *Surface) FillRects(rects []Rect, color uint32) int {
-	return int(C.SDL_FillRects(surface.cptr(), rects[0].cptr(), C.int(len(rects)), C.Uint32(color)))
+func (surface *Surface) FillRects(rects []Rect, color uint32) error {
+	if C.SDL_FillRects(surface.cptr(), rects[0].cptr(), C.int(len(rects)), C.Uint32(color)) != 0 {
+		return GetError()
+	}
+	return nil
 }
 
 // Surface (https://wiki.libsdl.org/SDL_BlitSurface)
Make FillRects idiomatic with respect to errors