OpenGL鼠标交互
官方文檔: 
 OpenGLUT Documentation 
 http://openglut.sourceforge.net/group__input.html
檢測鼠標單擊
void glutMouseFunc(void (*func)(int button,int state,int x,int y)); 
 func:處理鼠標點擊事件的函數名 
 button:取值GLUT_LEFT_BUTTON GLUT_MIDDLE_BUTTON GLUT_RIGHT_BUTTON 
 state:取值GLUT_DOWN GLUT_UP 
 x,y:提供鼠標當前窗口坐標(以左上角為原點)
檢測鼠標動作
鼠標移動并且一個鼠標鍵被按下
void glutMotionFunc(void(*func)(int x,int y));
鼠標移動并沒有鼠標鍵按下
void glutPassiveMotionFunc(void (*func)(int x,int y));
檢測鼠標進入或離開窗口區域
void glutEntryFunc(void(*func)(int state)); 
 state:取值GLUT_LEFT GLUT_ENTRED
檢測滾輪滾動
注意在老的glut庫中并不支持這個函數。支持滾輪的Free Glut 
 void glutMouseWheelFunc (void(*)(int wheel, int direction, int x, int y)) 
 wheel是一個數,direction取+-1,x y是鼠標坐標
使用標準函數測試:
#include <GL/glut.h> <snip...> void mouse(int button, int state, int x, int y) {// Wheel reports as button 3(scroll up) and button 4(scroll down)if ((button == 3) || (button == 4)) // It's a wheel event{// Each wheel event reports like a button click, GLUT_DOWN then GLUT_UPif (state == GLUT_UP) return; // Disregard redundant GLUT_UP eventsprintf("Scroll %s At %d %d\n", (button == 3) ? "Up" : "Down", x, y);}else{ // normal button eventprintf("Button %s At %d %d\n", (state == GLUT_DOWN) ? "Down" : "Up", x, y);} } <snip...> glutMouseFunc(mouse);總結
以上是生活随笔為你收集整理的OpenGL鼠标交互的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: android10 隐藏SystemUI
- 下一篇: 主流开源软件是否会被闭源,github能
