@@ -88,17 +88,15 @@ public static WindowHandle InitializePlatform()
88
88
DebugPrintWithError ( IsVulkanEnabled ? "Vulkan support enabled" : "Vulkan support disabled" ) ;
89
89
Sdl . ClearError ( ) ;
90
90
91
- var props = CreateDummyWindowProps ( ) ;
92
- var tempWindow = Sdl . CreateWindowWithProperties ( props ) ;
91
+ var tempWindow = Sdl . CreateWindow ( "Dummy Window" , 1 , 1 , Sdl . WindowHidden ) ;
93
92
if ( tempWindow == nullptr )
94
93
{
95
94
// Should be able to at least create a window.
96
- Sdl . DestroyProperties ( props ) ;
97
95
Sdl . ThrowError ( ) ;
98
96
return nullptr ;
99
97
}
100
98
101
- var tempChildWindow = Sdl . CreateWindowWithProperties ( props ) ;
99
+ var tempChildWindow = Sdl . CreateWindow ( "Dummy Window 2" , 1 , 1 , Sdl . WindowHidden ) ;
102
100
if ( tempChildWindow != nullptr )
103
101
{
104
102
IsChildrenEnabled = true ;
@@ -111,15 +109,38 @@ public static WindowHandle InitializePlatform()
111
109
IsWindowEnabled = Sdl . SetWindowPosition ( tempWindow , 1 , 1 ) ;
112
110
DebugPrintWithError ( $ "Window decoration { ( IsWindowEnabled ? "supported" : "unsupported" ) } ") ;
113
111
Sdl . ClearError ( ) ;
114
- Sdl . DestroyProperties ( props ) ;
115
112
return tempWindow ;
116
113
}
117
114
118
- private static uint CreateDummyWindowProps ( )
115
+ private WindowHandle GetDummyWindow ( ulong flags = 0 , ulong nFlags = 0 )
119
116
{
120
- var props = Sdl . CreateProperties ( ) ;
121
- Sdl . SetBooleanProperty ( props , Sdl . PropWindowCreateHiddenBoolean , true ) ;
122
- return props ;
117
+ flags |= Sdl . WindowHidden ;
118
+ ulong originalFlags = 0 ;
119
+ if (
120
+ Handle != nullptr
121
+ && flags == ( flags & ( flags |= ( originalFlags = Sdl . GetWindowFlags ( Handle ) ) ) )
122
+ )
123
+ {
124
+ return Handle ;
125
+ }
126
+
127
+ flags &= ~ nFlags ;
128
+ Sdl . DestroyWindow ( Handle ) ; // so we don't get errors pertaining to multi-window on single-window platforms
129
+ var ret = Sdl . CreateWindow ( "Dummy Window" , 1 , 1 , flags ) ;
130
+ if ( ret == nullptr )
131
+ {
132
+ if ( originalFlags != 0 )
133
+ {
134
+ // Recreate the old dummy window.
135
+ Handle = Sdl . CreateWindow ( "Dummy Window" , 1 , 1 , originalFlags ) ;
136
+ }
137
+ }
138
+ else
139
+ {
140
+ Handle = ret ;
141
+ }
142
+
143
+ return ret ;
123
144
}
124
145
125
146
public void PreInitializeSurface ( )
0 commit comments