图形用户界面隐藏着神秘的机制.它在单个屏幕上混合2D和3D上下文,并允许这两个不同的世界的无缝组合.但是它们以什么方式和在哪个级别实际交错?
实践表明,OpenGL上下文可以嵌入到2D小部件库中,因此可以使用OpenGL支持整个2D界面.一些应用程序可能会探索硬件加速,而其他应用程序则不会(在同一屏幕上渲染时).图形卡是否"知道"屏幕上的2D和3D区域,窗口管理器是否会产生一个有凝聚力的前端的错觉?...当例如滚动网页或在屏幕上移动视频播放器时,可以注意到加速窗口(3D,视频)"跳跃"以适应2D界面.
这个问题似乎微不足道,但我没有遇到任何能够给我一个全面答案的人.答案,这使我能够将OpenGL上下文嵌入到GTK +应用程序中,并了解其工作原理和方式.我已经尝试过GtkGlExt和GLUT,但我想深入理解这个主题,并将自己的解决方案作为学术项目的一部分.我想知道X,GLX,GTK,OpenGL和窗口管理器之间的关系是什么,以及如何探索这个库网络以有意识地编程它.
我不希望有人在这里写论文,但我会感谢任何有关该主题的文章的指示,建议或链接.