mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-12-26 03:38:55 +01:00
48 lines
925 B
Go
48 lines
925 B
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 glfwwin
|
|
|
|
func (t *tls) create() error {
|
|
if t.win32.allocated {
|
|
panic("glfwwin: TLS must not be allocated")
|
|
}
|
|
|
|
i, err := _TlsAlloc()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
t.win32.index = i
|
|
t.win32.allocated = true
|
|
return nil
|
|
}
|
|
|
|
func (t *tls) destroy() error {
|
|
if t.win32.allocated {
|
|
if err := _TlsFree(t.win32.index); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
t.win32.allocated = false
|
|
t.win32.index = 0
|
|
return nil
|
|
}
|
|
|
|
func (t *tls) get() (uintptr, error) {
|
|
if !t.win32.allocated {
|
|
panic("glfwwin: TLS must be allocated")
|
|
}
|
|
|
|
return _TlsGetValue(t.win32.index)
|
|
}
|
|
|
|
func (t *tls) set(value uintptr) error {
|
|
if !t.win32.allocated {
|
|
panic("glfwwin: TLS must be allocated")
|
|
}
|
|
|
|
return _TlsSetValue(t.win32.index, value)
|
|
}
|