CV_IMPL int
cvWaitKey( int delay )
{
- int time0 = GetTickCount();
+ int64 time0 = cv::getTickCount();
+ int64 timeEnd = time0 + (int64)(delay * 0.001f * cv::getTickFrequency());
for(;;)
{
MSG message;
int is_processed = 0;
- if( (delay > 0 && abs((int)(GetTickCount() - time0)) >= delay) || hg_windows == 0 )
- return -1;
-
if( delay <= 0 )
GetMessage(&message, 0, 0, 0);
else if( PeekMessage(&message, 0, 0, 0, PM_REMOVE) == FALSE )
{
+ int64 t = cv::getTickCount();
+ if (t - timeEnd >= 0)
+ return -1; // no messages and no more time
Sleep(1);
continue;
}