Programming/openGL2011. 10. 10. 22:29
glut의 메뉴는 context-menu용으로 우클릭을 등록해서 많이 사용하는 타입의 메뉴이다.

아래는 glut의 메뉴관련 함수들의 목록이다.
$ vi /usr/include/GL/freeglut_std.h 
443 /*
444  * Menu stuff, see freeglut_menu.c
445  */
446 FGAPI int     FGAPIENTRY glutCreateMenu( void (* callback)( int menu ) );
447 FGAPI void    FGAPIENTRY glutDestroyMenu( int menu );
448 FGAPI int     FGAPIENTRY glutGetMenu( void );
449 FGAPI void    FGAPIENTRY glutSetMenu( int menu );
450 FGAPI void    FGAPIENTRY glutAddMenuEntry( const char* label, int value );
451 FGAPI void    FGAPIENTRY glutAddSubMenu( const char* label, int subMenu );
452 FGAPI void    FGAPIENTRY glutChangeToMenuEntry( int item, const char* label, int value );
453 FGAPI void    FGAPIENTRY glutChangeToSubMenu( int item, const char* label, int value );
454 FGAPI void    FGAPIENTRY glutRemoveMenuItem( int item );
455 FGAPI void    FGAPIENTRY glutAttachMenu( int button );
456 FGAPI void    FGAPIENTRY glutDetachMenu( int button ); 

사용예는 아래와 같이
menuid = glutCreateMenu(callback); 로 생성을 하고 콜백함수를 등록하며
생성된 메뉴에  glutAdd*() 함수들을 이용해 항목이나 하위 메뉴를 추가하는 형식으로 구성된다.
submenu의 경우에는 생성이 완료된 하나의 메뉴를 현재의 메뉴 아래에 추가하는 것이기 때문에
예제처럼 하위 메뉴를 먼저 생성하고 메인 메뉴를 생성한뒤 하위 메뉴를 추가해주어야 한다.
static int mainMenu, displayMenu;

void MenuCallback(int value)
{
	switch (value)
	{
		case 99:
			exit(0);
			break;

		default: 
			break;
	}
}
 
void glutinit_contextmenu()
{
	displayMenu = glutCreateMenu(MenuCallback);
		glutAddMenuEntry("Wireframe", 0);

	mainMenu = glutCreateMenu(MenuCallback);
		glutAddSubMenu("Display", displayMenu);
		glutAddMenuEntry("Exit", 99);
		glutAttachMenu(GLUT_RIGHT_BUTTON);
}
[링크 : http://linux.die.net/man/3/glutcreatemenu]
[링크 : http://linux.die.net/man/3/glutattachmenu]
[링크 : http://linux.die.net/man/3/glutaddmenuentry]
[링크 : http://linux.die.net/man/3/glutaddsubmenu]

'Programming > openGL' 카테고리의 다른 글

gluUnProject / glRenderMode(GL_SELECT)  (0) 2011.10.19
glNormal()  (0) 2011.10.18
glutAttachMenu()의 Linux용 버그  (2) 2011.10.10
GLUT에서 더블클릭은 음..  (0) 2011.10.10
openglut / freeglut 무슨 사이야?  (0) 2011.10.09
Posted by 구차니
Programming/openGL2011. 10. 10. 22:18
glutAttachMenu(GLUT_MIDDLE_BUTTON);
로 휠 클릭을 하면 메뉴가 뜨도록 해주었는데 희한한 현상이 발견되었다.

리눅스에서 발생하는 현상이고, 윈도우에서는 발생하지 않지만,
메뉴를 띄운후 메뉴가 떠있는 상태에서 
메뉴가 아닌 다른 곳에서 마우스 버튼을 눌러 조작을 할경우
무조건 GLUT_LEFT_BUTTON으로 인식하는 버그가 존재
한다.

윈도우에서는 메뉴가 떠있는 상태에서 다른 버튼을 클릭해도 키를 무시하고
메뉴를 없앤후 부터 마우스 입력을 받아 이러한 문제는 발생하지 않는다.

[링크 : http://linux.die.net/man/3/glutattachmenu]

'Programming > openGL' 카테고리의 다른 글

glNormal()  (0) 2011.10.18
glut Menu 관련 함수들  (0) 2011.10.10
GLUT에서 더블클릭은 음..  (0) 2011.10.10
openglut / freeglut 무슨 사이야?  (0) 2011.10.09
freeglut - glutMouseFunc()  (0) 2011.10.09
Posted by 구차니
Programming/openGL2011. 10. 10. 21:02
한방에 지원하는 넘은 없는듯 -_-

대개 더블클릭은 몇 초 이내에 동일 위치이거나
약간의 위치 오차를 감안하고 몇 초 이내 클릭이니.. 타이머를 해줘서 조금 더 세밀하게 구현해야 하려나?

[링크 : http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=277362 ]
[링크 : http://www.gamedev.net/topic/511051-double-click-with-glut-resurrecting-old-post/]

'Programming > openGL' 카테고리의 다른 글

glut Menu 관련 함수들  (0) 2011.10.10
glutAttachMenu()의 Linux용 버그  (2) 2011.10.10
openglut / freeglut 무슨 사이야?  (0) 2011.10.09
freeglut - glutMouseFunc()  (0) 2011.10.09
glut 에서 윈도우 크기 얻기  (0) 2011.10.09
Posted by 구차니
Programming/openGL2011. 10. 9. 19:26
두녀석의 관계는... 두둥!

OpenGLUT is an open source project to evolve the GLUT (OpenGL Utility Toolkit) C/C++ API. OpenGLUT uses the freeglut code base as a foundation for extending, enhancing and refining the API.
[링크 : http://openglut.sourceforge.net/
 

OpenGLUT가 freeglut에 기반을 하고 있다.

'Programming > openGL' 카테고리의 다른 글

glutAttachMenu()의 Linux용 버그  (2) 2011.10.10
GLUT에서 더블클릭은 음..  (0) 2011.10.10
freeglut - glutMouseFunc()  (0) 2011.10.09
glut 에서 윈도우 크기 얻기  (0) 2011.10.09
openGL의 미스테리...  (0) 2011.10.08
Posted by 구차니
Programming/openGL2011. 10. 9. 19:03
glutMouseFunc()는 마우스 클릭에 대한 콜백함수이다.

void glutMouseFunc(void (*func)(int button, int state, int x, int y));
[링크 : http://www.opengl.org/resources/libraries/glut/spec3/node50.html]

기본적으로  
GLUT_UP / GLUT_DOWN
GLUT_LEFT_BUTTON - 0x00
GLUT_MIDDLE_BUTTON - 0x01 (WHEEL_CLICK)
GLUT_RIGHT_BUTTON - 0x02
를 지원하며

추가적으로
WHEEL_DOWN - 0x03
WHEEL_UP      - 0x04
WHEEL_LEFT    - 0x05
WHEEL_RIGHT  - 0x06
을 지원하게된다.

추가적인 부분은 freeglut_std.h 쪽에도 정의되지 않은채 넘어오는 값이며
테스트는 노트북의 터치패드에서 수행하였다.

'Programming > openGL' 카테고리의 다른 글

GLUT에서 더블클릭은 음..  (0) 2011.10.10
openglut / freeglut 무슨 사이야?  (0) 2011.10.09
glut 에서 윈도우 크기 얻기  (0) 2011.10.09
openGL의 미스테리...  (0) 2011.10.08
openglut - glutentergamemode()  (0) 2011.10.08
Posted by 구차니
버스 / 지하철 올린다가고 쑈하다가 가스비 부터 올리는 센스~
[링크 : http://media.daum.net/economic/others/view.html?cateid=1041&newsid=20111009141411412]


-- 삭제하고 말지 에잇 드러워서! --
SPC 그룹에서 일본에서 제분한 미국산 밀가루 라는데
세슘이 검출되었다는 말도 있고 없기도 한데 아무튼, 기사를 100% 신뢰할순 없지만
방사선 물질은 다른 물질에 방사능을 부여할수 있어서
결국에는 어떤 형태로든지 방사능이 생길텐데 

[링크 : http://news.mk.co.kr/newsRead.php?year=2011&no=650363]
 


아무튼 일본산 물고기 수입을 받아주는 나라이니 할말이 없구나 -_-
미국산 소고기와 더불어 원산지 속일게 뻔하구나~
[링크 : http://news.kbs.co.kr/world/2011/09/02/2350259.html]



그리고 상습정체구역인 삼성역-논현 방향의 길의 한쪽 차선을 다 막아버리고
도로에다가 콘서트 장을 만드는 미친짓을 누가 할까? 하고 있었는데
곳곳에 붙어있는 "비"의 현수막
혹시나 해서 인터넷을 찾아보니 홍보어쩌구 하면서 무료로 한다는데
그래서 "한류스타 비" 이러면서 적어 놓은거였군 -_-
솔찍히 무료로 한다니까 좋아할 사람들도 있겠지만
애꿎은 경찰들까지 동원해서 아침부터 교통통제하고, 그리고 한차선을 없애버리면서
생기는 상습정체구역의 정체증가로 인한 피해는 누구에게서 보상을 받아야 하는걸까?
[링크 : http://www.hankyung.com/news/app/newsview.php?aid=201110073726q&sid=0107&nid=007&ltype=1]
[링크 : http://todayhumor.co.kr/board/view.php?kind=&ask_time...]


은행이 환전잘못해준거 고객이 당연히 돌려줘야 한다라...
보이스 피싱으로 낚여도 당연히 돈을 물어줘야 하는거고
은행권 해킹당해서 신상을 털려도 당연히 돈을 물어줘야 하는건데
이럴때 당연한걸 써야지 왜 그딴데 당연히를 쓰나?
[링크 : http://media.daum.net/economic/finance/view.html?cateid=1037&newsid=20111009143123665
Posted by 구차니
아이디어!2011. 10. 9. 16:35
synergy는 네트워크를 통한 키보드 / 마우스를 공유하는 프로그램이다.

서버 - 클라이언트로
메인 PC를 서버로 다른 PC를 서버로 접속시키면
메인 PC에서 다른 PC들로 하나의 키보드와 마우스를 사용하듯 모니터를 넘나들수 있다. 


만약 이와 반대 방향으로
메인 PC로 클라이언트 PC의 입력을 보낼수 있으면 어떨까?
예를 들면 내가 사용하는 TC-1100은 펜 타블렛 이고 압력감지를 지원한다.
다른 PC는 지원하지 않으니까, TC-1100은 단순한 USB 펜 타블렛이나
network 펜 타블렛 처럼 사용하고 그 입력값을 다른 PC로 1:1 사이즈 맵핑을 한다거나 하는 식으로 말이다. 



생각해보니 쓸모없는거 같기도 하고 흐음.. 
Posted by 구차니
Programming/openGL2011. 10. 9. 02:01
viewport 와 ortho를 이용해서 크기 조절을 하려니
glut에서 현재 윈도우 사이즈를 구할 필요가 있는데,

물론 reshape 쪽에서 얻어지는 값을 이용해서 width 와 height를 저장하는 법도 있겠지만
머.. 방법론적인 문제니까 ^^;

To obtaining the screen and window width and height using GLUT:

int screenWidth, screenHeight, windowWidth, windowHeight;

screenWidth = glutGet(GLUT_SCREEN_WIDTH);
screenHeight = glutGet(GLUT_SCREEN_HEIGHT);
windowWidth = glutGet(GLUT_WINDOW_WIDTH);
windowHeight = glutGet(GLUT_WINDOW_HEIGHT); 

[링크 : http://www.opengl.org/resources/faq/technical/window.htm
 

'Programming > openGL' 카테고리의 다른 글

openglut / freeglut 무슨 사이야?  (0) 2011.10.09
freeglut - glutMouseFunc()  (0) 2011.10.09
openGL의 미스테리...  (0) 2011.10.08
openglut - glutentergamemode()  (0) 2011.10.08
glOrtho()  (0) 2011.10.07
Posted by 구차니
Programming/openGL2011. 10. 8. 23:54
카메라 (gluLookAt) 와 중심점의 거리가 1.0 을 넘어서면 시야에서 사라진다 -_-
이 사태를 해결하려면 어떻게 해야할려나?

웃긴건 카메라보다 뒤쪽으로 가는건 괜찮음..
아무튼 X(red) Y(green) Z(blue) 의 좌표는 (1.0) 으로 했기 땜누에 방향에 문제는 없어 보이고
화면 안쪽으로 -Z 축인건 맞은데 도대체 멀까나...
또한 축은 길이가 1 이지만, sin 곡선은 3.6 인데 중심축과 카메라의 거리가 1 이내에 있을때에는
sin 곡선도 잘리지 않음 -_-
(코드 붙여 넣고 보니.. scale을 1/4로 줘서 그렇군 .. 3.6 길이가 그러면 0.9가 되니 1 안에 들어옴)

gluLookAt(0.10, 0.0, 0.2, 0.0, 0.0, -2.0, 0.0, 1.0, 0.0)으로 설정했을 경우


gluLookAt(0.10, 0.0, 1.0, 0.0, 0.0, -2.0, 0.0, 1.0, 0.0)으로 설정했을경우




'Programming > openGL' 카테고리의 다른 글

freeglut - glutMouseFunc()  (0) 2011.10.09
glut 에서 윈도우 크기 얻기  (0) 2011.10.09
openglut - glutentergamemode()  (0) 2011.10.08
glOrtho()  (0) 2011.10.07
openGL Line 관련설정  (0) 2011.10.06
Posted by 구차니
Programming/openGL2011. 10. 8. 22:14
glut 에서는 glutFullScreen() 을 지원하지만
해상도를 변경하는 것도 아니고, 시스템에 따라서는 전체화면 역시 제대로 되지 않는 경우도 있다.

그래서 openglut 에서 새롭게 전체화면으로 전환하는 함수를 만들었는데
glutGameModeString으로 해상도와 색상 주파수를 정하고
glutEnterGameMode 로 해상도를 변경한다. 
glutGameModeString("640x480:16@60");
glutEnterGameMode(); 

그나저나.. freeglut 와 openglut는 또 다른걸려나?

[링크 : http://linux.die.net/man/3/glutentergamemode]
[링크 : http://linux.die.net/man/3/glutgamemodestring]
[링크 : http://www.opengl.org/resources/faq/technical/gettingstarted.htm#0040

'Programming > openGL' 카테고리의 다른 글

glut 에서 윈도우 크기 얻기  (0) 2011.10.09
openGL의 미스테리...  (0) 2011.10.08
glOrtho()  (0) 2011.10.07
openGL Line 관련설정  (0) 2011.10.06
glutTimerFunc()  (0) 2011.10.05
Posted by 구차니