Tôi chỉ muốn tạo một trò chơi toàn màn hình. Tôi biết cách thay đổi độ phân giải trên Windows nhưng làm cách nào để thay đổi độ phân giải trong Linux? Có một giải pháp QT nền tảng cho việc này không? Ngoài ra tôi đã có biên giới xung quanh GLWidget của tôi. Làm thế nào để làm cho các widget bao gồm toàn bộ cửa sổ?Làm thế nào để thay đổi độ phân giải màn hình bằng QT, OpenGL, C++ và Linux?
Tôi chỉ sẽ gửi mã:
#include <QtOpenGL>
class GLWidget : public QGLWidget
{
public:
void initializeGL()
{
glClearColor(0.0f, 0.0f, 1.0f, 0.0f);
glClearDepth(1.0f);
}
void paintGL()
{
glClear(GL_COLOR_BUFFER_BIT);
}
void resizeGL(int width, int height)
{
int side = qMin(width, height);
glViewport((width - side)/2, (height - side)/2, side, side);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-0.5f, +0.5f, -0.5f, +0.5f, 4.0f, 15.0f);
glMatrixMode(GL_MODELVIEW);
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QDesktopWidget *desktop = app.desktop();
QWidget window;
GLWidget *glWidget = new GLWidget;
QHBoxLayout *mainLayout = new QHBoxLayout;
mainLayout->addWidget(glWidget);
window.setLayout(mainLayout);
window.setWindowTitle("Hello GL");
window.resize(QSize(640, 480));
window.show();
window.showFullScreen();
return app.exec();
}
SDL có lẽ là một bộ công cụ tốt hơn cho các trò chơi hơn Qt. –
Hãy xem [xrandr] (http://www.thinkwiki.org/wiki/Xorg_RandR_1.2). – Linuxios
Ai đó [đã yêu cầu điều này] (http://stackoverflow.com/questions/3372252/changing-the-screen-resolution-from-qt). – sashoalm