Merge pull request #237 from fgrosse/more-window-hints

Add window hints to created maximized or invisible windows
This commit is contained in:
Alex R. Delp 2020-05-24 00:01:25 -07:00 committed by GitHub
commit 585f7c1f14
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 2 deletions

View File

@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
- Gamepad API added
- Support setting an initial window position
- Support hiding the window initially
- Support creating maximized windows
## [v0.10.0-beta] 2020-05-10
- Add `WindowConfig.TransparentFramebuffer` option to support window transparency onto the background

View File

@ -43,10 +43,10 @@ type WindowConfig struct {
// specified Monitor.
Monitor *Monitor
// Whether the Window is resizable.
// Resizable specifies whether the window will be resizable by the user.
Resizable bool
// Undecorated Window ommits the borders and decorations (close button, etc.).
// Undecorated Window omits the borders and decorations (close button, etc.).
Undecorated bool
// NoIconify specifies whether fullscreen windows should not automatically
@ -68,6 +68,13 @@ type WindowConfig struct {
// VSync (vertical synchronization) synchronizes Window's framerate with the framerate of
// the monitor.
VSync bool
// Maximized specifies whether the window is maximized.
Maximized bool
// Invisible specifies whether the window will be initially hidden.
// You can make the window visible later using Window.Show().
Invisible bool
}
// Window is a window handler. Use this type to manipulate a window (input, drawing, etc.).
@ -122,6 +129,8 @@ func NewWindow(cfg WindowConfig) (*Window, error) {
glfw.WindowHint(glfw.Floating, bool2int[cfg.AlwaysOnTop])
glfw.WindowHint(glfw.AutoIconify, bool2int[!cfg.NoIconify])
glfw.WindowHint(glfw.TransparentFramebuffer, bool2int[cfg.TransparentFramebuffer])
glfw.WindowHint(glfw.Maximized, bool2int[cfg.Maximized])
glfw.WindowHint(glfw.Visible, bool2int[!cfg.Invisible])
if cfg.Position.X != 0 || cfg.Position.Y != 0 {
glfw.WindowHint(glfw.Visible, glfw.False)
@ -477,3 +486,11 @@ func (w *Window) Color(at pixel.Vec) pixel.RGBA {
func (w *Window) Canvas() *Canvas {
return w.canvas
}
// Show makes the window visible, if it was previously hidden. If the window is
// already visible or is in full screen mode, this function does nothing.
func (w *Window) Show() {
mainthread.Call(func() {
w.window.Show()
})
}