package renderer import ( "log" "github.com/go-gl/gl/v4.1-core/gl" ) type Renderer struct { clearColor [4]float32 } func NewRenderer() *Renderer { return &Renderer{ clearColor: [4]float32{0.1, 0.1, 0.1, 0.1}, } } func (r *Renderer) Init() error { if err := gl.Init(); err != nil { return err } gl.Enable(gl.DEPTH_TEST) gl.Enable(gl.BLEND) gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA) version := gl.GoStr(gl.GetString(gl.VERSION)) log.Println("OpenGL version:", version) return nil } func (r *Renderer) Clear() { gl.ClearColor(r.clearColor[0], r.clearColor[1], r.clearColor[2], r.clearColor[3]) gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT) } func (r *Renderer) SetClearColor(rgba [4]float32) { r.clearColor = rgba } func (r *Renderer) SetViewport(x, y, width, height int32) { gl.Viewport(x, y, width, height) }