func NewSDLSurfaceComposer(app *spectrum.Application) *SDLSurfaceComposer {
	composer := &SDLSurfaceComposer{
		inputs:             make([]*input_surface_t, 0),
		output_orNil:       nil,
		commandChannel:     make(chan interface{}),
		showPaintedRegions: false,
	}
	go composer.commandLoop(app)
	return composer
}
Creates a new composer, and starts its command-loop in a goroutine
package sdl_output
import (
	"github.com/scottferg/Go-SDL/sdl"
	"github.com/remogatto/gospeccy/src/spectrum"
	"math/rand"
	"unsafe"
)
type SDLSurfaceComposer struct {
	inputs []*input_surface_t
	output_orNil *sdl.Surface
	commandChannel chan interface{}
	showPaintedRegions bool
}
type input_surface_t struct {
	surface        *sdl.Surface
	updatedRectsCh <-chan []sdl.Rect
	forwarderLoop  *spectrum.EventLoop
	x, y           int
}