GimmickDebugMessage(1,"WxViewer::WxViewer"
<<std::endl);
+ mNeedRefresh = false;
+ mLastImageShown = NULL;
+
wxBoxSizer *topsizer = new wxBoxSizer(wxVERTICAL);
void WxViewer::ShowNextImage()
{
wxMutexLocker lock(mMutex);
+ /*
GimmickMessage(1,"WxViewer::ShowNextImage() "
<<mCurrent+1<<"/"
<<images.size()<<std::endl);
+ */
+
if (mCurrent<images.size())
{
ShowImage(images[mCurrent]);
+ if ( images[mCurrent] != mLastImageShown ) mNeedRefresh = true;
+ mLastImageShown = images[mCurrent];
}
mCurrent++;
if (mCurrent >= images.size()) mCurrent = 0;
}
//================================================================
-
+ bool WxViewer::RefreshIfNecessary()
+ {
+ if (mNeedRefresh)
+ {
+ GimmickMessage(1,"WxViewer : Refreshing"<<std::endl);
+ mInteractor->Render();
+ // mViewer->Render();
+ // Refresh();
+ mNeedRefresh = false;
+ return true;
+ }
+ return false;
+ }
//==================================================
void WxViewer::StopPlayer()
{
if(!TestDestroy())
{
mWxViewer->ShowNextImage();
- mWxViewer->Refresh();
+ // mWxViewer->Refresh();
+ ::wxWakeUpIdle();
clock_t endwait;
endwait = clock () + 0.2 * CLOCKS_PER_SEC ;
while (clock() < endwait) {}