CefSharp ScreenshotAsync并不总是返回正确的位图

时间:2017-06-14 19:17:49

标签: cefsharp cefsharp.offscreen

我在使用CefSharp有界对象捕捉动画的每一帧时遇到问题。看来Browser.ScreenshotAsync返回的位图并不总是正确同步。这是我的javascript渲染函数,它以恒定的速率水平移动WebGL对象:

function animate() {
    object.position.x -= 100; 
    renderer.render(scene, camera);
    cefBountObject('animate()');
}

这是我的CEF界限对象:

public void cefBountObject(string callback) {
    Browser.ScreenshotAsync().ContinueWith((task) => {
        task.Result.Save(string.Format("{0:D4}.png", frameNumber++));
        Browser.EvaluateScriptAsync(callback);
    });
}

这样可以保存序列中的每个文件而不跳过:0000.png,0001.png,0002.png等。但是,有些图像文件是重复的,有些图像文件会跳帧。我想我遇到了一个不同步的线程问题,但我不知道它可能在哪里。实际上,如果我在最后一行Browser.EvaluateScriptAsync(callback);上放置一个断点并逐步执行动画,则所有文件都会按顺序正确生成。

0 个答案:

没有答案