Files
radiantwave/archive/vendor/github.com/veandco/go-sdl2/sdl/system_windows.go
T
2026-08-07 14:51:41 -05:00

56 lines
1.4 KiB
Go

package sdl
/*
#include "sdl_wrapper.h"
#include "system.h"
#if !(SDL_VERSION_ATLEAST(2,0,16))
#if defined(WARN_OUTDATED)
#pragma message("SDL_RenderGetD3D11Device is not supported before SDL 2.0.16")
#endif
typedef struct ID3D11Device ID3D11Device;
static ID3D11Device* SDL_RenderGetD3D11Device(SDL_Renderer * renderer)
{
return NULL;
}
#endif
*/
import "C"
import (
"unsafe"
)
type WindowsMessageHook func(userdata interface{}, hWnd unsafe.Pointer, message uint32, wParam uint64, lParam int64)
var windowsMessageHook WindowsMessageHook
type ID3D11Device C.ID3D11Device;
// SetWindowsMessageHook sets a callback for every Windows message, run before TranslateMessage().
// (https://wiki.libsdl.org/SDL_SetWindowsMessageHook)
func SetWindowsMessageHook(callback WindowsMessageHook, userdata interface{}) {
windowsMessageHook = callback
C.SetWindowsMessageHook()
}
//export goWindowsMessageHook
func goWindowsMessageHook(userdata interface{}, hWnd unsafe.Pointer, message uint32, wParam uint64, lParam int64) {
if windowsMessageHook == nil {
return
}
windowsMessageHook(userdata, hWnd, message, wParam, lParam)
}
// SDL_RenderGetD3D11Device gets the D3D11 device associated with a renderer.
// (https://wiki.libsdl.org/SDL_RenderGetD3D11Device)
func (renderer *Renderer) GetD3D11Device() (device *ID3D11Device, err error) {
device = (*ID3D11Device)(C.SDL_RenderGetD3D11Device(renderer.cptr()))
if device == nil {
err = GetError()
}
return
}