2012-05-29 84 views
0

我想用鼠標旋轉相機。移動它不是問題,但我需要將它保存在一個地方。我試過glutWarpPointer(),但它會顯着減慢程序速度。我正在嘗試爲某個東西寫一個引擎,但不想使用和添加。在GLUT中更改鼠標位置?

int diff = x - oldx; 
oldx = x; rx += diff; 
if (rx > 360) 
    rx = 0; 

if (rx < 0) 
    rx = 360; 

NSLog(@"%f",rx); 
back = YES; 
glutWarpPointer(0, 0); 
glutPostRedisplay(); 
+0

請張貼一些代碼 – Saphrosit

+0

int diff = x - oldx; oldx = x; rx + = diff; if(rx> 360) rx = 0; if(rx <0) rx = 360; NSLog(@「%f」,rx); back = YES; glutWarpPointer(0,0); glutPostRedisplay(); – BlueSpud

回答

0

glutWarpPointer在OS X上應該很快;你在哪裏調用它在你的程序中?

它有時可能會強制glutPassiveMotionFunc被調用,所以要小心。

+0

我在被動運動中稱它爲無效運動,然後我在繪圖函數中嘗試了它。它會幫助你使它成爲自己的功能嗎? – BlueSpud

0

它需要跳出GLUT,但您可以使用CGAssociateMouseAndMouseCursorPosition(false);使鼠標移動不會移動光標(既不是可視光標也不是事件中報告的絕對位置等)。隨後的鼠標事件具有不變的絕對位置,但包含適當的增量以提供移動。我不知道這些三角洲是否可以從GLUT獲取。

+0

我解決了我的問題,但忘了回答問題。我用CGSetLocalEventsSuppressionInterval,它工作正常。感謝您的幫助:D – BlueSpud