fix tick things
git-svn-id: http://svn2.nishi.boats/svn/milsko/trunk@307 b9cfdab3-6d41-4d17-bbe4-086880011989
This commit is contained in:
parent
651b441b91
commit
116b57cff0
6 changed files with 25 additions and 3 deletions
|
|
@ -502,3 +502,7 @@ void MwLLMakeBorderless(MwLL handle, int toggle) {
|
|||
|
||||
SetWindowPos(handle->hWnd, NULL, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER);
|
||||
}
|
||||
|
||||
long MwLLGetTick(void) {
|
||||
return GetTickCount();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -603,3 +603,15 @@ void MwLLMakeBorderless(MwLL handle, int toggle) {
|
|||
XMapWindow(handle->display, handle->window);
|
||||
XMoveWindow(handle->display, handle->window, x, y);
|
||||
}
|
||||
|
||||
long MwLLGetTick(void) {
|
||||
struct timespec ts;
|
||||
long n = 0;
|
||||
|
||||
clock_gettime(CLOCK_MONOTONIC, &ts);
|
||||
|
||||
n += ts.tv_nsec / 1000 / 1000;
|
||||
n += ts.tv_sec * 1000;
|
||||
|
||||
return n;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -230,11 +230,14 @@ int MwPending(MwWidget handle) {
|
|||
}
|
||||
|
||||
void MwLoop(MwWidget handle) {
|
||||
long tick = MwLLGetTick();
|
||||
while(!handle->close) {
|
||||
MwStep(handle);
|
||||
while(MwPending(handle)) MwStep(handle);
|
||||
|
||||
MwDispatchUserHandler(handle, MwNtickHandler, NULL);
|
||||
MwLLSleep(MwWaitMS);
|
||||
tick = MwWaitMS - (MwLLGetTick() - tick);
|
||||
if(tick > 0) MwLLSleep(tick);
|
||||
tick = MwLLGetTick();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue