firebreath opengl Firebreath Openglチュートリアルに従いましたが、機能しますが、ページのサイズ変更またはスクロール時にちらつきが発生するため、Webで解決策を検索しましたが、小さなヒント以外は何も見つかりませんでした
それは言います:
RefreshEvent を受け取るたびに、再描画する必要があります。セカンダリ スレッドを使用して描画している場合は、そのスレッドにメッセージを渡す何らかの方法があることを確認してください。そうしないと、ちらつきが発生します。
私がやろうとしたことは、再描画メッセージを描画スレッドに渡す方法を見つけることで、ManualResetEvent に相当する Boostを使用してメインスレッドを強制的に再描画させましたが、何も起こりませんでした。
私が使用したコード:
bool threadedOpenGLTestPlugin::draw( FB::RefreshEvent *evt, FB::PluginWindow* win )
{
Event.Set(); // Event is Boost equivalent of ManualResetEvent
//Refresh Events... nothing todo since the opengl is running in it's own thread
return true;
}
void threadedOpenGLTestPlugin::drawThreaded()
{
while(true)
{
Event.Wait(30);// the event waits for 30 milisec or for event fired by the threadedOpenGLTestPlugin::draw function
Event.Reset();
//.......... drawing loop
}
}