【发布时间】:2016-05-01 21:29:22
【问题描述】:
我正在处理双屏设置。屏幕一个在另一个之上。我在 SDL 中创建了一个窗口,它是两个屏幕组合的大小。该窗口出现在底部屏幕的左上方。我希望它位于顶部屏幕的左上角。当我尝试使用 XMoveWindow 移动它时,它会移动其中的图像而不是移动窗口。我正在渲染一个 OpenGL 场景。 我正在使用 linux 和 SDL 1.2,我知道,有问题,但我无法移动到 SDL2。
有什么想法吗?
我有一个使用
创建的 SDL 窗口SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_NOPARACHUTE);
SDL_GL_SetAttribute( SDL_GL_DOUBLEBUFFER, 1 );
screen = SDL_SetVideoMode(w, h, 32, SDL_HWACCEL | SDL_OPENGL | SDL_GL_DOUBLEBUFFER);
但是当我运行我的程序时,窗口保持在原位,其中的图像已经移动了 200,-200。
#include <SDL/SDL.h>
#include <SDL/SDL_syswm.h>
#include <GL/gl.h>
#include <X11/Xlib.h>
void move()
{
SDL_SysWMinfo info;
SDL_VERSION(&info.version);
if (SDL_GetWMInfo(&info))
{
// Put the window at origin!!!!!
cout << "xmovewindow: " << XMoveWindow(info.info.x11.display, info.info.x11.window, 200, -200) << endl;
// prints "xmovewindow: 1"
}
}
停下来!
【问题讨论】: