mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2024-11-10 04:57:26 +01:00
parent
d4226659ee
commit
c99b948df3
@ -19,11 +19,12 @@ import (
|
|||||||
"math"
|
"math"
|
||||||
"reflect"
|
"reflect"
|
||||||
"runtime"
|
"runtime"
|
||||||
"sync"
|
|
||||||
"syscall"
|
"syscall"
|
||||||
"unsafe"
|
"unsafe"
|
||||||
|
|
||||||
"golang.org/x/sys/windows"
|
"golang.org/x/sys/windows"
|
||||||
|
|
||||||
|
"github.com/hajimehoshi/ebiten/v2/internal/microsoftgdk"
|
||||||
)
|
)
|
||||||
|
|
||||||
type (
|
type (
|
||||||
@ -875,29 +876,15 @@ type _D3D12XBOX_CREATE_DEVICE_PARAMETERS struct {
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
d3d12 = windows.NewLazySystemDLL("d3d12.dll")
|
d3d12 = windows.NewLazySystemDLL("d3d12.dll")
|
||||||
|
d3d12x = windows.NewLazySystemDLL(microsoftgdk.D3D12DLLName())
|
||||||
d3dcompiler = windows.NewLazySystemDLL("d3dcompiler_47.dll")
|
d3dcompiler = windows.NewLazySystemDLL("d3dcompiler_47.dll")
|
||||||
dxgi = windows.NewLazySystemDLL("dxgi.dll")
|
dxgi = windows.NewLazySystemDLL("dxgi.dll")
|
||||||
|
|
||||||
d3d12xDLL *windows.LazyDLL
|
|
||||||
d3d12xOnce sync.Once
|
|
||||||
)
|
|
||||||
|
|
||||||
func d3d12x() *windows.LazyDLL {
|
|
||||||
d3d12xOnce.Do(func() {
|
|
||||||
d3d12xDLL = windows.NewLazySystemDLL("d3d12_xs.dll")
|
|
||||||
if d3d12xDLL.Load() != nil {
|
|
||||||
d3d12xDLL = windows.NewLazySystemDLL("d3d12_x.dll")
|
|
||||||
}
|
|
||||||
})
|
|
||||||
return d3d12xDLL
|
|
||||||
}
|
|
||||||
|
|
||||||
var (
|
|
||||||
procD3D12CreateDevice = d3d12.NewProc("D3D12CreateDevice")
|
procD3D12CreateDevice = d3d12.NewProc("D3D12CreateDevice")
|
||||||
procD3D12GetDebugInterface = d3d12.NewProc("D3D12GetDebugInterface")
|
procD3D12GetDebugInterface = d3d12.NewProc("D3D12GetDebugInterface")
|
||||||
procD3D12SerializeRootSignature = d3d12.NewProc("D3D12SerializeRootSignature")
|
procD3D12SerializeRootSignature = d3d12.NewProc("D3D12SerializeRootSignature")
|
||||||
|
|
||||||
procD3D12XboxCreateDevice = d3d12x().NewProc("D3D12XboxCreateDevice")
|
procD3D12XboxCreateDevice = d3d12x.NewProc("D3D12XboxCreateDevice")
|
||||||
|
|
||||||
procD3DCompile = d3dcompiler.NewProc("D3DCompile")
|
procD3DCompile = d3dcompiler.NewProc("D3DCompile")
|
||||||
|
|
||||||
|
@ -277,7 +277,7 @@ func (g *Graphics) initializeDeviceDesktop(useWARP bool, useDebugLayer bool) (fe
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (g *Graphics) initializeDeviceXbox(useWARP bool, useDebugLayer bool) (ferr error) {
|
func (g *Graphics) initializeDeviceXbox(useWARP bool, useDebugLayer bool) (ferr error) {
|
||||||
if err := d3d12x().Load(); err != nil {
|
if err := d3d12x.Load(); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,3 +59,14 @@ func MonitorResolution() (int, int) {
|
|||||||
return 1920, 1080
|
return 1920, 1080
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func D3D12DLLName() string {
|
||||||
|
switch C.XSystemGetDeviceType() {
|
||||||
|
case _XSystemDeviceType_XboxOne, _XSystemDeviceType_XboxOneS, _XSystemDeviceType_XboxOneX, _XSystemDeviceType_XboxOneXDevkit:
|
||||||
|
return "d3d12_x.dll"
|
||||||
|
case _XSystemDeviceType_XboxScarlettLockhart, _XSystemDeviceType_XboxScarlettAnaconda, _XSystemDeviceType_XboxScarlettDevkit:
|
||||||
|
return "d3d12_xs.dll"
|
||||||
|
default:
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -22,5 +22,9 @@ func IsXbox() bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func MonitorResolution() (int, int) {
|
func MonitorResolution() (int, int) {
|
||||||
panic("microsoftgdk: MonitorResolution is not implemented in this environment")
|
return 0, 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func D3D12DLLName() string {
|
||||||
|
return ""
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user