diff --git a/CHANGELOG.md b/CHANGELOG.md index e3232c0..26095ca 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,8 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] -- Gamepad API? +- Gamepad API support +- Add `WindowConfig.TransparentFramebuffer` option to support window transparency onto the background - Fixed Line intersects failing on lines passing through (0, 0) ## [v0.10.0-alpha] 2020-05-08 diff --git a/pixelgl/window.go b/pixelgl/window.go index 9472659..80bac3c 100644 --- a/pixelgl/window.go +++ b/pixelgl/window.go @@ -56,6 +56,12 @@ type WindowConfig struct { // implement proper full screen windows. AlwaysOnTop bool + // TransparentFramebuffer specifies whether the window framebuffer will be + // transparent. If enabled and supported by the system, the window + // framebuffer alpha channel will be used to combine the framebuffer with + // the background. This does not affect window decorations. + TransparentFramebuffer bool + // VSync (vertical synchronization) synchronizes Window's framerate with the framerate of // the monitor. VSync bool @@ -112,6 +118,7 @@ func NewWindow(cfg WindowConfig) (*Window, error) { glfw.WindowHint(glfw.Decorated, bool2int[!cfg.Undecorated]) glfw.WindowHint(glfw.Floating, bool2int[cfg.AlwaysOnTop]) glfw.WindowHint(glfw.AutoIconify, bool2int[!cfg.NoIconify]) + glfw.WindowHint(glfw.TransparentFramebuffer, bool2int[cfg.TransparentFramebuffer]) var share *glfw.Window if currWin != nil {