我有一个包含多个循环的程序,每个循环都在一个Goroutine中运行。我需要在我的程序运行时插入或拔下显示器,所以我必须重新启动sdl让它找到我的新显示器,我通过sdl.quit()退出最后一个sdl和sdl.init(sdl.InitEverything)再次初始化它。我的问题是我必须在一个循环中处理sdl事件,如果我不这样做,它将变得无响应,但这个循环将阻止我的主代码。我不需要处理鼠标点击之类的任何事件,我只想显示一些简单的图片并对其进行操作,有没有办法停止事件或在goroutine中运行整个sdl?我试过了,但得到了奇怪的结果。这是我的结构:typeSDLstruct{windo
我有一个包含多个循环的程序,每个循环都在一个Goroutine中运行。我需要在我的程序运行时插入或拔下显示器,所以我必须重新启动sdl让它找到我的新显示器,我通过sdl.quit()退出最后一个sdl和sdl.init(sdl.InitEverything)再次初始化它。我的问题是我必须在一个循环中处理sdl事件,如果我不这样做,它将变得无响应,但这个循环将阻止我的主代码。我不需要处理鼠标点击之类的任何事件,我只想显示一些简单的图片并对其进行操作,有没有办法停止事件或在goroutine中运行整个sdl?我试过了,但得到了奇怪的结果。这是我的结构:typeSDLstruct{windo
我已经尝试在任何地方查找它并尽我所能,但我无法让SDL在Go中工作。这是我的代码,有点草率,但我只是想让它工作,只是为了测试它,作为一个起点。我打算稍后清理它并摆脱所有不必要的#defines。packagemain//#cgoLDFLAGS:-lSDL-lSDL_main-lSDL_image//#include//#include//#include//#includeimport"C"import"runtime"funcinit(){runtime.LockOSThread()}funcmain(){varimage*C.SDL_Surfacevarscreen*C.SDL_S
我已经尝试在任何地方查找它并尽我所能,但我无法让SDL在Go中工作。这是我的代码,有点草率,但我只是想让它工作,只是为了测试它,作为一个起点。我打算稍后清理它并摆脱所有不必要的#defines。packagemain//#cgoLDFLAGS:-lSDL-lSDL_main-lSDL_image//#include//#include//#include//#includeimport"C"import"runtime"funcinit(){runtime.LockOSThread()}funcmain(){varimage*C.SDL_Surfacevarscreen*C.SDL_S
我最近转向了linux,但在使用gcc编译SDLC程序时遇到了问题。我正在使用的命令:gcc`sdl-config--cflags--libs`-omainmain.c即使通过分离sdl-config标志:gcc`sdl-config--cflags`-cmain.cgcc`sdl-config--libs`-omainmain.o我遇到了同样的错误:/tmp/ccHYyjKd.o:Infunction`main':main.c:(.text+0xe):undefinedreferenceto`SDL_SetMainReady'main.c:(.text+0x18):undefined
我最近转向了linux,但在使用gcc编译SDLC程序时遇到了问题。我正在使用的命令:gcc`sdl-config--cflags--libs`-omainmain.c即使通过分离sdl-config标志:gcc`sdl-config--cflags`-cmain.cgcc`sdl-config--libs`-omainmain.o我遇到了同样的错误:/tmp/ccHYyjKd.o:Infunction`main':main.c:(.text+0xe):undefinedreferenceto`SDL_SetMainReady'main.c:(.text+0x18):undefined
我试图找到一种方法来创建一个以屏幕为中心的SDL窗口,我找到了这段代码#ifdefWIN32#includeSDL_SysWMinfoi;SDL_VERSION(&i.version);if(SDL_GetWMInfo(&i)){HWNDhwnd=i.window;SetWindowPos(hwnd,HWND_TOP,x,y,width,height,flags);}#endif//WIN32但它仅适用于Windows。我如何在Linux中执行此操作? 最佳答案 使用putenv()在初始化SDL和创建窗口之前:#include#i
我试图找到一种方法来创建一个以屏幕为中心的SDL窗口,我找到了这段代码#ifdefWIN32#includeSDL_SysWMinfoi;SDL_VERSION(&i.version);if(SDL_GetWMInfo(&i)){HWNDhwnd=i.window;SetWindowPos(hwnd,HWND_TOP,x,y,width,height,flags);}#endif//WIN32但它仅适用于Windows。我如何在Linux中执行此操作? 最佳答案 使用putenv()在初始化SDL和创建窗口之前:#include#i
我正在使用SDL2和OpenGL创建一个应用程序,它在3台不同的计算机上运行良好。但是在另一台计算机(更新的archlinux)上,它不会,并且会因以下错误而崩溃:OpenGLcontextalreadycreated所以我的问题是:如何检查OpenGL上下文是否已创建?然后,如果它已经创建,我如何获得它的句柄?如果我不能这样做,我该如何绕过这个问题? 最佳答案 SDL2实际上不会在您没有要求的情况下创建OpenGL上下文。但是,如果您要求它在OpenGL根本不工作时创建一个OpenGL上下文,SDL2喜欢,erm,有点自由式。(实
我正在使用SDL2和OpenGL创建一个应用程序,它在3台不同的计算机上运行良好。但是在另一台计算机(更新的archlinux)上,它不会,并且会因以下错误而崩溃:OpenGLcontextalreadycreated所以我的问题是:如何检查OpenGL上下文是否已创建?然后,如果它已经创建,我如何获得它的句柄?如果我不能这样做,我该如何绕过这个问题? 最佳答案 SDL2实际上不会在您没有要求的情况下创建OpenGL上下文。但是,如果您要求它在OpenGL根本不工作时创建一个OpenGL上下文,SDL2喜欢,erm,有点自由式。(实