mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-25 03:08:54 +01:00
b359985e97
Many of the structs found in internal.h (internal_windows.go) contain defines such as GLFW_WIN32_WINDOW_STATE which gets replaced with a struct defined in win32platform_windows.go (win32_platform.h). Originally, these structs where directly placed inside of internal_windows.go. However, to make it easier to add macOS and Linux these cannot be in this file. This commit separates the windows specific structs into the respective windows file and updates the field to be named state. Updates #2546
127 lines
3.2 KiB
Go
127 lines
3.2 KiB
Go
// SPDX-License-Identifier: Zlib
|
|
// SPDX-FileCopyrightText: 2002-2006 Marcus Geelnard
|
|
// SPDX-FileCopyrightText: 2006-2019 Camilla Löwy
|
|
// SPDX-FileCopyrightText: 2022 The Ebitengine Authors
|
|
|
|
package goglfw
|
|
|
|
import "golang.org/x/sys/windows"
|
|
|
|
const (
|
|
_GLFW_WNDCLASSNAME = "GLFW30"
|
|
)
|
|
|
|
type platformWindowState struct {
|
|
handle windows.HWND
|
|
bigIcon _HICON
|
|
smallIcon _HICON
|
|
|
|
cursorTracked bool
|
|
frameAction bool
|
|
iconified bool
|
|
maximized bool
|
|
transparent bool // Whether to enable framebuffer transparency on DWM
|
|
scaleToMonitor bool
|
|
|
|
// Cached size used to filter out duplicate events
|
|
width int
|
|
height int
|
|
|
|
// The last received cursor position, regardless of source
|
|
lastCursorPosX int
|
|
lastCursorPosY int
|
|
|
|
// The last recevied high surrogate when decoding pairs of UTF-16 messages
|
|
highSurrogate uint16
|
|
}
|
|
|
|
type platformContextState struct {
|
|
dc _HDC
|
|
handle _HGLRC
|
|
interval int
|
|
}
|
|
|
|
type platformMonitorState struct {
|
|
handle _HMONITOR
|
|
|
|
// This size matches the static size of DISPLAY_DEVICE.DeviceName
|
|
adapterName string
|
|
displayName string
|
|
modesPruned bool
|
|
modeChanged bool
|
|
}
|
|
|
|
type platformCursorState struct {
|
|
handle _HCURSOR
|
|
}
|
|
|
|
type platformTLSState struct {
|
|
allocated bool
|
|
index uint32
|
|
}
|
|
|
|
type platformLibraryWindowState struct {
|
|
instance _HINSTANCE
|
|
helperWindowHandle windows.HWND
|
|
deviceNotificationHandle _HDEVNOTIFY
|
|
acquiredMonitorCount int
|
|
clipboardString string
|
|
keycodes [512]Key
|
|
scancodes [KeyLast + 1]int
|
|
keynames [KeyLast + 1]string
|
|
|
|
// Where to place the cursor when re-enabled
|
|
restoreCursorPosX float64
|
|
restoreCursorPosY float64
|
|
|
|
// The window whose disabled cursor mode is active
|
|
disabledCursorWindow *Window
|
|
rawInput []byte
|
|
mouseTrailSize uint32
|
|
}
|
|
|
|
type platformLibraryContextState struct {
|
|
inited bool
|
|
|
|
EXT_swap_control bool
|
|
EXT_colorspace bool
|
|
ARB_multisample bool
|
|
ARB_framebuffer_sRGB bool
|
|
EXT_framebuffer_sRGB bool
|
|
ARB_pixel_format bool
|
|
ARB_create_context bool
|
|
ARB_create_context_profile bool
|
|
EXT_create_context_es2_profile bool
|
|
ARB_create_context_robustness bool
|
|
ARB_create_context_no_error bool
|
|
ARB_context_flush_control bool
|
|
}
|
|
|
|
func _IsWindowsXPOrGreater() bool {
|
|
return isWindowsVersionOrGreaterWin32(uint16(_HIBYTE(_WIN32_WINNT_WINXP)), uint16(_LOBYTE(_WIN32_WINNT_WINXP)), 0)
|
|
}
|
|
|
|
func _IsWindowsVistaOrGreater() bool {
|
|
return isWindowsVersionOrGreaterWin32(uint16(_HIBYTE(_WIN32_WINNT_VISTA)), uint16(_LOBYTE(_WIN32_WINNT_VISTA)), 0)
|
|
}
|
|
|
|
func _IsWindows7OrGreater() bool {
|
|
return isWindowsVersionOrGreaterWin32(uint16(_HIBYTE(_WIN32_WINNT_WIN7)), uint16(_LOBYTE(_WIN32_WINNT_WIN7)), 0)
|
|
}
|
|
|
|
func _IsWindows8OrGreater() bool {
|
|
return isWindowsVersionOrGreaterWin32(uint16(_HIBYTE(_WIN32_WINNT_WIN8)), uint16(_LOBYTE(_WIN32_WINNT_WIN8)), 0)
|
|
}
|
|
|
|
func _IsWindows8Point1OrGreater() bool {
|
|
return isWindowsVersionOrGreaterWin32(uint16(_HIBYTE(_WIN32_WINNT_WINBLUE)), uint16(_LOBYTE(_WIN32_WINNT_WINBLUE)), 0)
|
|
}
|
|
|
|
func isWindows10AnniversaryUpdateOrGreaterWin32() bool {
|
|
return isWindows10BuildOrGreaterWin32(14393)
|
|
}
|
|
|
|
func isWindows10CreatorsUpdateOrGreaterWin32() bool {
|
|
return isWindows10BuildOrGreaterWin32(15063)
|
|
}
|