From 050bf31477b71da6071a62f18ad8a87452bb328e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Sat, 10 Dec 2005 20:03:19 +0000 Subject: [PATCH] Minor fixes. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15473 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../kits/game/direct_window_test/StarWindow.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/tests/kits/game/direct_window_test/StarWindow.cpp b/src/tests/kits/game/direct_window_test/StarWindow.cpp index b63556bfa1..31323af5e3 100644 --- a/src/tests/kits/game/direct_window_test/StarWindow.cpp +++ b/src/tests/kits/game/direct_window_test/StarWindow.cpp @@ -282,7 +282,7 @@ StarWindow::DirectConnected(direct_buffer_info *info) switch (info->buffer_state & B_DIRECT_MODE_MASK) { // start a direct screen connection. case B_DIRECT_START: - SwitchContext(info); // update the direct screen infos. + SwitchContext(info); // update the direct screen infos. release_sem(drawing_lock); // unblock the animation thread. break; // stop a direct screen connection. @@ -292,9 +292,10 @@ StarWindow::DirectConnected(direct_buffer_info *info) // modify the state of a direct screen connection. case B_DIRECT_MODIFY: acquire_sem(drawing_lock); // block the animation thread. - SwitchContext(info); // update the direct screen infos. + SwitchContext(info); // update the direct screen infos. release_sem(drawing_lock); // unblock the animation thread. break; + default: break; } @@ -525,14 +526,15 @@ StarWindow::StarAnimation(void *data) // loop, frame after frame, until asked to quit. while (!w->kill_my_thread) { - // we want a frame to take at least 16 ms. time = system_time()+16000; // get the right to do direct screen access. - acquire_sem(w->drawing_lock); - if (w->kill_my_thread) break; - + while (acquire_sem(w->drawing_lock) == B_INTERRUPTED) + ; + if (w->kill_my_thread) + break; + // go through the array of star, for all currently used star. s = w->star_list; for (i=0; istar_count; i++) {