gpt4 book ai didi

c# - Tao OpenGL Framework SimpleOpenGLControl - 什么时候重绘,什么时候不重绘?

转载 作者:行者123 更新时间:2023-11-30 22:47:38 28 4
gpt4 key购买 nike

我在 Visual Studio Express 2008 中使用 C#。

我也在使用 Tao Framework OpenGL dll。

当我需要重绘时,究竟是什么导致 SimpleOpenGLControl 重绘?

当 SimpleOpenGLControl 驻留在事件窗体上时,为了重绘我需要做的就是调用 glFlush()SimpleOpenGLControl.Invalidate()

但是,当控件不在事件窗体上时,我根本无法重绘它。我找到了一种通过非正统方式使控件失效的方法,但这不会重绘控件的内容(3D 渲染),它只会给我留下一个空白(黑色)控件。

无论哪个窗体处于事件状态,我需要做什么才能让控件实际重绘?

最佳答案

显然我的问题不在 SimpleOpenGLControl 重绘中,而是在调用函数的线程中。

我的应用程序一直等到它在一个线程中获取新数据,然后通过委托(delegate)显示函数将数据传回表单。

虽然没有出现错误或警告,但显然我的 OpenGL 渲染缓冲区没有被填充,因为填充它的函数是从一个独立线程调用的。

虽然我不完全理解线程安全函数委托(delegate),但我在运行表单的线程下推送了过程,我的 OpenGL 渲染缓冲区又一次快乐了。

所以,我的问题的答案是:OpenGL 不会填充任何渲染缓冲区,除非它发生在与初始化相同的线程上。

关于c# - Tao OpenGL Framework SimpleOpenGLControl - 什么时候重绘,什么时候不重绘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2163697/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com