0

我将 GLSurfaceView 用于我的应用程序的核心绘图过程。

我在 onDrawFrame 上绘图(一个尽可能频繁地调用的函数,如线程循环)。

但是,当触摸事件发生时,我使用不同的类来管理所有用户输入。

当这个“输入管理器”试图与“绘图管理器”交谈时,问题就出现了。

我的输入管理器告诉绘图管理器一组新的坐标(扭曲的形状,由用户修改),绘图管理器应该绘制。

但是,由于输入管理器非常频繁地传递这个新的绘图项,我认为会发生这种意外行为:

正在呈现的形状闪烁(消失一秒钟)或在某些时候,当“绘图管理器”接收并尝试设置新的缓冲区数据时,它会抛出索引错误(因为我需要在阅读时移动缓冲区索引缓冲区;如果我也在阅读时尝试设置新的缓冲区数据,则会导致意外行为)。

我缺乏处理我面临的这种情况的经验。有什么方法可以确保“存储”和“阅读”不会同时发生?

4

0 回答 0