Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 销毁SDL_窗口而不销毁本机窗口句柄?_Video_Rendering_Sdl 2 - Fatal编程技术网

Video 销毁SDL_窗口而不销毁本机窗口句柄?

Video 销毁SDL_窗口而不销毁本机窗口句柄?,video,rendering,sdl-2,Video,Rendering,Sdl 2,我正在实现一个视频播放器API软件,它为给定的Rtsp地址播放视频。 使用API的软件将窗口句柄传递给API,API在其上渲染视频。 我尝试使用SDL渲染帧,它是确定的。但当我使用SDL_DestroyWindow()销毁SDL_窗口时,其他软件传递其句柄的本机窗口也会被销毁。 然后我评论了SDL_DestroyWindow部分,但这次重用相同的本机窗口句柄是一个问题。当其他软件通过API传递相同的本机窗口句柄,并且我使用SDL_CreateWindowFrom()创建SDL_窗口时,其他软件无

我正在实现一个视频播放器API软件,它为给定的Rtsp地址播放视频。 使用API的软件将窗口句柄传递给API,API在其上渲染视频。 我尝试使用SDL渲染帧,它是确定的。但当我使用SDL_DestroyWindow()销毁SDL_窗口时,其他软件传递其句柄的本机窗口也会被销毁。 然后我评论了SDL_DestroyWindow部分,但这次重用相同的本机窗口句柄是一个问题。当其他软件通过API传递相同的本机窗口句柄,并且我使用SDL_CreateWindowFrom()创建SDL_窗口时,其他软件无法获取本机窗口单击事件。
有没有办法将SDL_窗口再次转换为本机窗口?或者你对我的问题有什么解决方案的建议吗?

正如Keltar所说,ShowWindow(手柄,SW_-SHOW)解决了这个问题。由于SDL在调用SDL_DestroyWindow()时隐藏了窗口,所以应该通过调用ShowWindow(handle,SW_SHOW)来显示窗口。

正如Keltar所说,ShowWindow(handle,SW_SHOW)解决了这个问题。由于SDL在调用SDL_DestroyWindow()时会隐藏窗口,因此应该通过调用ShowWindow(handle,SW_SHOW)来显示窗口。

您的目标操作系统和SDL版本是什么?SDL不会破坏通过SDL_CreateWindowFrom传递的系统窗口。操作系统是windows。SDL版本是2.0.4是什么让你认为它破坏了窗口?检查确认SDL只会破坏它自己创建的窗口。您能在
destronWindow
windows函数上设置断点并检查它是从哪里调用的吗?正如您所说,源代码似乎还可以。现在我编写了一个基本的.net代码,它将面板句柄传递给API。当我在第一次视频渲染后销毁句柄时,视频无法在第二次渲染。但在调试代码时,我可以验证SDL是否可以创建SDL_窗口、SDL_纹理和SDL_渲染器。一切似乎都正常,但没有渲染。若我并没有销毁句柄,那个么视频将被渲染,但我无法获取面板点击事件。确定,而SDL实际上从不销毁窗口。您可以在windows上使用例如
ShowWindow(手柄,SW\u-show)
再次显示它。您的目标操作系统和SDL版本是什么?SDL不会破坏通过SDL_CreateWindowFrom传递的系统窗口。操作系统是windows。SDL版本是2.0.4是什么让你认为它破坏了窗口?检查确认SDL只会破坏它自己创建的窗口。您能在
destronWindow
windows函数上设置断点并检查它是从哪里调用的吗?正如您所说,源代码似乎还可以。现在我编写了一个基本的.net代码,它将面板句柄传递给API。当我在第一次视频渲染后销毁句柄时,视频无法在第二次渲染。但在调试代码时,我可以验证SDL是否可以创建SDL_窗口、SDL_纹理和SDL_渲染器。一切似乎都正常,但没有渲染。若我并没有销毁句柄,那个么视频将被渲染,但我无法获取面板点击事件。确定,而SDL实际上从不销毁窗口。您可以在windows上使用例如
ShowWindow(手柄,SW\u show)
再次显示它。