public Sdl2Window(IntPtr windowHandle, bool threadedProcessing) { _threadedProcessing = threadedProcessing; if (threadedProcessing) { using (ManualResetEvent mre = new ManualResetEvent(false)) { WindowParams wp = new WindowParams() { WindowHandle = windowHandle, WindowFlags = 0, ResetEvent = mre }; Task.Factory.StartNew(WindowOwnerRoutine, wp, TaskCreationOptions.LongRunning); mre.WaitOne(); } } else { _window = SDL_CreateWindowFrom(windowHandle); WindowID = SDL_GetWindowID(_window); Sdl2EventProcessor.RegisterWindow(this); PostWindowCreated(0); } }
public Sdl2Window(string title, int x, int y, int width, int height, SDL_WindowFlags flags, bool threadedProcessing) { _threadedProcessing = threadedProcessing; if (threadedProcessing) { using (ManualResetEvent mre = new ManualResetEvent(false)) { WindowParams wp = new WindowParams() { Title = title, X = x, Y = y, Width = width, Height = height, WindowFlags = flags, ResetEvent = mre }; Task.Factory.StartNew(WindowOwnerRoutine, wp, TaskCreationOptions.LongRunning); mre.WaitOne(); } } else { _window = SDL_CreateWindow(title, x, y, width, height, flags); WindowID = SDL_GetWindowID(_window); Sdl2EventProcessor.RegisterWindow(this); PostWindowCreated(flags); } }