add multisampling
This commit is contained in:
parent
98f3e740e6
commit
80b107c039
|
@ -8,6 +8,7 @@ import (
|
||||||
"github.com/faiface/glhf"
|
"github.com/faiface/glhf"
|
||||||
"github.com/faiface/mainthread"
|
"github.com/faiface/mainthread"
|
||||||
"github.com/faiface/pixel"
|
"github.com/faiface/pixel"
|
||||||
|
"github.com/go-gl/gl/v3.3-core/gl"
|
||||||
"github.com/go-gl/glfw/v3.3/glfw"
|
"github.com/go-gl/glfw/v3.3/glfw"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
)
|
)
|
||||||
|
@ -75,6 +76,9 @@ type WindowConfig struct {
|
||||||
// Invisible specifies whether the window will be initially hidden.
|
// Invisible specifies whether the window will be initially hidden.
|
||||||
// You can make the window visible later using Window.Show().
|
// You can make the window visible later using Window.Show().
|
||||||
Invisible bool
|
Invisible bool
|
||||||
|
|
||||||
|
//SamplesMSAA specifies the level of MSAA to be used. 0 to disable.
|
||||||
|
SamplesMSAA int
|
||||||
}
|
}
|
||||||
|
|
||||||
// Window is a window handler. Use this type to manipulate a window (input, drawing, etc.).
|
// Window is a window handler. Use this type to manipulate a window (input, drawing, etc.).
|
||||||
|
@ -127,6 +131,8 @@ func NewWindow(cfg WindowConfig) (*Window, error) {
|
||||||
glfw.WindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)
|
glfw.WindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)
|
||||||
glfw.WindowHint(glfw.OpenGLForwardCompatible, glfw.True)
|
glfw.WindowHint(glfw.OpenGLForwardCompatible, glfw.True)
|
||||||
|
|
||||||
|
gl.Enable(gl.MULTISAMPLE)
|
||||||
|
|
||||||
glfw.WindowHint(glfw.Resizable, bool2int[cfg.Resizable])
|
glfw.WindowHint(glfw.Resizable, bool2int[cfg.Resizable])
|
||||||
glfw.WindowHint(glfw.Decorated, bool2int[!cfg.Undecorated])
|
glfw.WindowHint(glfw.Decorated, bool2int[!cfg.Undecorated])
|
||||||
glfw.WindowHint(glfw.Floating, bool2int[cfg.AlwaysOnTop])
|
glfw.WindowHint(glfw.Floating, bool2int[cfg.AlwaysOnTop])
|
||||||
|
@ -134,6 +140,7 @@ func NewWindow(cfg WindowConfig) (*Window, error) {
|
||||||
glfw.WindowHint(glfw.TransparentFramebuffer, bool2int[cfg.TransparentFramebuffer])
|
glfw.WindowHint(glfw.TransparentFramebuffer, bool2int[cfg.TransparentFramebuffer])
|
||||||
glfw.WindowHint(glfw.Maximized, bool2int[cfg.Maximized])
|
glfw.WindowHint(glfw.Maximized, bool2int[cfg.Maximized])
|
||||||
glfw.WindowHint(glfw.Visible, bool2int[!cfg.Invisible])
|
glfw.WindowHint(glfw.Visible, bool2int[!cfg.Invisible])
|
||||||
|
glfw.WindowHint(glfw.Samples, cfg.SamplesMSAA)
|
||||||
|
|
||||||
if cfg.Position.X != 0 || cfg.Position.Y != 0 {
|
if cfg.Position.X != 0 || cfg.Position.Y != 0 {
|
||||||
glfw.WindowHint(glfw.Visible, glfw.False)
|
glfw.WindowHint(glfw.Visible, glfw.False)
|
||||||
|
|
Loading…
Reference in New Issue