窗口内自定义渲染
你好! 我一直在玩 Nuklear, 我必须说, 你这里的库非常酷, 而且组织得也非常好! 我遇到的唯一真正的障碍是, 我无法在窗口内进行任何自定义渲染。例如, 在窗口内的自定义 OpenGL 代码。 到目前为止, 我已经尝试了回调, 认为在它们内部的任何渲染都会在它们所属的窗口上调用。 事实证明, 回调在 nk_convert 中被处理/执行, 之前任何窗口绘制都不会发生, 因此我的三角测试被窗口所覆盖, 我试图将其作为目标。 SDL2 OpenGL ES 2 演示已经是我的测试平台, 因此我注释了行 `glDrawElements(GL_TRIANGLES, (GLsizei)cmd->elem_count, GL_UNSIGNED_SHORT, offset);` 来查看结果会是什么。 如预期的那样, 窗口不再被渲染, 三角测试则正好位于其应有的位置。 我还尝试过用邪恶的方式将三角测试设置为基于用户数据的渲染。 它几乎成功了, 但用户数据似乎不适用于每个窗口, 因此拖动到它上面的窗口渲染在其后面, 而窗口边框/按钮则位于其前面。 我最后尝试使用小组件来完成工作, 但再一次, 没有结果。 和其他两种解决方案一样, 小组件似乎不适合将自定义渲染例程插入到窗口的特定部分。 在所有三次尝试中, 使用 nk_push_custom 的回调方法是最干净和最有利的, 除了所有窗口都在其上绘制之外。 我是否漏掉了什么? 我已经翻阅了源代码和演示, 但无济于事。 是否存在可以类似于 nk_push_custom(`nk_push_custom(nk_window_get_canvas(ctx),nk_window_get_content_region(ctx),triangle_test,nk_handle_ptr(NULL));`) 的函数, 它将做同样的事情, 但将在它所属的窗口上而不是在其后面? 或者目前在 Nuklear 中这是不可能的吗?
内容来源: vurtun/nuklear