我期待尝试在 OpenGL ES 2 中构建一个非常简单的 GUI 框架。
我注意到我的框架的两个主要部分可能是顶点着色器的集合和几何着色器的集合,但我想知道是否有特定于平台的扩展,因为 OpenGL 只是一种渲染技术并且必须处理使用 GUI 还涉及 OpenGL 显然不管理也不关心的输入部分。
我想知道也许有一些最流行的图形服务器的扩展,比如 Linux 上的 X11。有一种类似的技术可以帮助我构建 GUI 的构建块吗?
我期待尝试在 OpenGL ES 2 中构建一个非常简单的 GUI 框架。
我注意到我的框架的两个主要部分可能是顶点着色器的集合和几何着色器的集合,但我想知道是否有特定于平台的扩展,因为 OpenGL 只是一种渲染技术并且必须处理使用 GUI 还涉及 OpenGL 显然不管理也不关心的输入部分。
我想知道也许有一些最流行的图形服务器的扩展,比如 Linux 上的 X11。有一种类似的技术可以帮助我构建 GUI 的构建块吗?
除了使用现有的框架之外,我不知道OpenGL/OpenGL ES的任何扩展,这使得 UI 编程的生活变得更轻松。
我只使用可编程管道。
编写着色器非常简单,您应该能够在短时间内完成,因为大多数情况下只需要 2 个着色器:
旋转使 UI 更加复杂,尤其是在没有额外技术的情况下很难进行裁剪。此外,在控件上注册触摸/点击比使用非旋转元素更复杂且更慢。
对于特殊情况,我允许用户覆盖控件Draw
方法并使用自己的着色器,这使原始代码非常简单,我在每个控件中都有一个UIGraphics
对象,它允许用户通过提供许多不同的方法来绘制 UI和重载 ( DrawTexture
, DrawRectangle
, DrawCharacter
, DrawText
, ... )
最繁重的部分肯定是设计孔 UI 控件并对其进行编码。按钮非常简单,但有些容器确实需要大量微调,例如可滑动容器。然后你必须关心数据绑定、事件处理、动画等......