partial fix for mac

This commit is contained in:
Dmitry Sergeev
2026-09-03 13:16:19 +03:00
parent a61767f668
commit 584d4165ff
4 changed files with 34 additions and 7 deletions
+17 -5
View File
@@ -193,6 +193,7 @@ func main() {
log.Fatalf("SDL_Init: %s", sdl.GetError()) log.Fatalf("SDL_Init: %s", sdl.GetError())
return return
} }
defer sdl.Quit()
sdlAudioDevice := sdl.AudioDeviceDefaultPlayback sdlAudioDevice := sdl.AudioDeviceDefaultPlayback
if args.PlaybackId != 0 { if args.PlaybackId != 0 {
@@ -209,12 +210,27 @@ func main() {
return return
} }
vulkanPath := os.Getenv("VULKAN_LIBRARY")
if vulkanPath != "" {
if !sdl.VulkanLoadLibrary(vulkanPath) {
log.Fatalf(
"SDL_Vulkan_LoadLibrary: %s",
sdl.GetError(),
)
}
defer sdl.VulkanUnloadLibrary()
}
if err := vk.Load(); err != nil {
panic(err)
}
windowHandler := sdl.CreateWindow(fmt.Sprintf("%s %s", APP_NAME, APP_VER), WIN_WIDTH, WIN_HEIGHT, sdl.WindowVulkan|sdl.WindowResizable) windowHandler := sdl.CreateWindow(fmt.Sprintf("%s %s", APP_NAME, APP_VER), WIN_WIDTH, WIN_HEIGHT, sdl.WindowVulkan|sdl.WindowResizable)
if windowHandler == 0 { if windowHandler == 0 {
sdl.Quit()
log.Fatalf("SDL_CreateWindow: %s", sdl.GetError()) log.Fatalf("SDL_CreateWindow: %s", sdl.GetError())
return return
} }
defer sdl.DestroyWindow(windowHandler)
// ImGui init // ImGui init
gui := imgui.New() gui := imgui.New()
@@ -236,10 +252,6 @@ func main() {
defer sdl.StopTextInput(windowHandler) defer sdl.StopTextInput(windowHandler)
// fin on ImGui init // fin on ImGui init
if err := vk.Load(); err != nil {
panic(err)
}
sdlExtensions := sdl.VulkanGetInstanceExtensions() sdlExtensions := sdl.VulkanGetInstanceExtensions()
if len(sdlExtensions) == 0 { if len(sdlExtensions) == 0 {
log.Fatal("sdlVulkanGetInstanceExtensions is 0") log.Fatal("sdlVulkanGetInstanceExtensions is 0")
+2
View File
@@ -2,6 +2,8 @@ module mxl-player
go 1.26.0 go 1.26.0
replace github.com/christerso/vulkan-go => /home/itten/extra/vulkan-go
require ( require (
github.com/christerso/vulkan-go v0.0.0-20260618152204-bff25e5b7646 github.com/christerso/vulkan-go v0.0.0-20260618152204-bff25e5b7646
github.com/ebitengine/purego v0.10.2 github.com/ebitengine/purego v0.10.2
-2
View File
@@ -1,7 +1,5 @@
github.com/AllenDang/cimgui-go v1.5.0 h1:wnS4h1wWyE+3x59cHJnNSszka7pIR+pehim6ifOk9Rg= github.com/AllenDang/cimgui-go v1.5.0 h1:wnS4h1wWyE+3x59cHJnNSszka7pIR+pehim6ifOk9Rg=
github.com/AllenDang/cimgui-go v1.5.0/go.mod h1:w7LE33Ex/ZOHqaFBWBHOIVMY4yLSwGLpJMUpX/fb5p4= github.com/AllenDang/cimgui-go v1.5.0/go.mod h1:w7LE33Ex/ZOHqaFBWBHOIVMY4yLSwGLpJMUpX/fb5p4=
github.com/christerso/vulkan-go v0.0.0-20260618152204-bff25e5b7646 h1:xfc6rFxs+U4XktxQa7jyPfg9g0xlb5STDsQn8sURsyo=
github.com/christerso/vulkan-go v0.0.0-20260618152204-bff25e5b7646/go.mod h1:DIo6W2yFav1DflNKc0W0Oc7mecbdBg2btsaHhIYmwUA=
github.com/ebitengine/purego v0.10.2 h1:W809HbnvzAxgdm+aOvlSekrM16wGCdT/e76+9tS7gzE= github.com/ebitengine/purego v0.10.2 h1:W809HbnvzAxgdm+aOvlSekrM16wGCdT/e76+9tS7gzE=
github.com/ebitengine/purego v0.10.2/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= github.com/ebitengine/purego v0.10.2/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
github.com/qvest-digital/go-mxl v1.1.0-rc.1 h1:CUg29Q5c/JA6pqyA5gP3vu7JBr8lRXbOOxC+r0W572s= github.com/qvest-digital/go-mxl v1.1.0-rc.1 h1:CUg29Q5c/JA6pqyA5gP3vu7JBr8lRXbOOxC+r0W572s=
+15
View File
@@ -49,6 +49,8 @@ var (
sdlCreateWindow func(title *byte, w, h int32, flags uint64) uintptr sdlCreateWindow func(title *byte, w, h int32, flags uint64) uintptr
sdlDestroyWindow func(window uintptr) sdlDestroyWindow func(window uintptr)
sdlVulkanLoadLibrary func(path *byte) bool
sdlVulkanUnloadLibrary func()
sdlVulkanGetInstanceExtensions func(count *uint32) uintptr sdlVulkanGetInstanceExtensions func(count *uint32) uintptr
sdlVulkanCreateSurface func(window, instance, allocator uintptr, surface *uint64) bool sdlVulkanCreateSurface func(window, instance, allocator uintptr, surface *uint64) bool
@@ -153,8 +155,13 @@ func Load() error {
purego.RegisterLibFunc(&sdlGetError, h, "SDL_GetError") purego.RegisterLibFunc(&sdlGetError, h, "SDL_GetError")
purego.RegisterLibFunc(&sdlCreateWindow, h, "SDL_CreateWindow") purego.RegisterLibFunc(&sdlCreateWindow, h, "SDL_CreateWindow")
purego.RegisterLibFunc(&sdlDestroyWindow, h, "SDL_DestroyWindow") purego.RegisterLibFunc(&sdlDestroyWindow, h, "SDL_DestroyWindow")
// vulkan
purego.RegisterLibFunc(&sdlVulkanLoadLibrary, h, "SDL_Vulkan_LoadLibrary")
purego.RegisterLibFunc(&sdlVulkanUnloadLibrary, h, "SDL_Vulkan_UnloadLibrary")
purego.RegisterLibFunc(&sdlVulkanGetInstanceExtensions, h, "SDL_Vulkan_GetInstanceExtensions") purego.RegisterLibFunc(&sdlVulkanGetInstanceExtensions, h, "SDL_Vulkan_GetInstanceExtensions")
purego.RegisterLibFunc(&sdlVulkanCreateSurface, h, "SDL_Vulkan_CreateSurface") purego.RegisterLibFunc(&sdlVulkanCreateSurface, h, "SDL_Vulkan_CreateSurface")
purego.RegisterLibFunc(&sdlPollEvent, h, "SDL_PollEvent") purego.RegisterLibFunc(&sdlPollEvent, h, "SDL_PollEvent")
purego.RegisterLibFunc(&sdlGetWindowSizeInPixels, h, "SDL_GetWindowSizeInPixels") purego.RegisterLibFunc(&sdlGetWindowSizeInPixels, h, "SDL_GetWindowSizeInPixels")
purego.RegisterLibFunc(&sdlSetWindowFullscreen, h, "SDL_SetWindowFullscreen") purego.RegisterLibFunc(&sdlSetWindowFullscreen, h, "SDL_SetWindowFullscreen")
@@ -186,6 +193,14 @@ func CreateWindow(title string, w, h int32, flags uint64) uintptr {
} }
func DestroyWindow(window uintptr) { sdlDestroyWindow(window) } func DestroyWindow(window uintptr) { sdlDestroyWindow(window) }
func VulkanLoadLibrary(path string) bool {
return sdlVulkanLoadLibrary(cbytes(path))
}
func VulkanUnloadLibrary() {
sdlVulkanUnloadLibrary()
}
func VulkanGetInstanceExtensions() []string { func VulkanGetInstanceExtensions() []string {
var count uint32 var count uint32
vkExts := sdlVulkanGetInstanceExtensions(&count) vkExts := sdlVulkanGetInstanceExtensions(&count)