如何创建自己的实时更新壁纸

如何创建自己的实时更新壁纸

我对 opengl 有一些基本经验,并且想过要一个动画壁纸,同时还要考虑我的机器的一些属性(例如音量、CPU 使用率等)。现在我明白,为了做到这一点,我必须创建一个基本的 opengl 程序(我已经有一个黑屏的简单测试),然后以某种方式将其连接到我的壁纸。有人知道怎么做吗?将它用作屏幕保护程序怎么样?

这是我的基本示例 opengl,现在它只是一个黑屏,但我将在接下来的几天内向其中添加文本和其他内容。

#include <GL/glew.h>
#include <GL/glut.h>

int WIDTH=1080;
int HEIGHT=800;

void CreateDisplay(int argc, char** argv){
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(WIDTH, HEIGHT);
    glutInitWindowPosition(glutGet(GLUT_SCREEN_WIDTH) / 2 - WIDTH / 2, glutGet(GLUT_SCREEN_HEIGHT) / 2 - HEIGHT / 2);
    glutCreateWindow("background");
}

int main(int argc, char** argv) {
    CreateDisplay(argc, argv);
    glutMainLoop();
}

我已经看到活动网站作为 Gnome 背景可以将文件输出到磁盘,然后使用简单的循环不断更新该文件,但我担心每秒执行几次(30 次)会损害我的 SSD 和一般系统性能(而不是在我的 gpu 上运行的简单程序直接输出到桌面)。我还看到动态壁纸然而它只支持到 ubuntu 16.04。

对于我的最终产品,我希望能够从服务器和本地计算机提取数据,以便在桌面上提供一种“系统概览”。

这是在 ubuntu 17.10 中。

相关内容