02 callback programmingit.sangji.ac.kr/~3d/ppt/cg/02.pdf · 2017. 5. 16. · callback programming...
TRANSCRIPT
![Page 1: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/1.jpg)
Callback Programming
01 Display Callback
02 Reshape Callback
03 Keyboard Callback
04 Mouse Callback
05 Menu Callback
06 Idle Callback & Double Buffering
07 Timer Callback
02
![Page 2: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/2.jpg)
Display Callback 01
Display Callback이 자동으로 호출되는 경우
glutDisplayFunc 함수의 Prototype
코드 2-1 2
![Page 3: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/3.jpg)
Reshape Callback 02
Reshape Callback이 자동으로 호출되는 경우
glutReshapeFunc 함수의 Prototype
코드 2-2 3
![Page 4: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/4.jpg)
Keyboard Callback 03
glutKeyboardFunc 함수의 Prototype
glutSpecialFunc 함수의 Prototype
4
![Page 5: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/5.jpg)
Keyboard Callback 03
glutSpecialFunc 함수에서 사용 가능한 특수 Key들에 대한 정의
5
![Page 6: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/6.jpg)
Keyboard Callback 03
GlutSpecialFunc 함수에서 Event로 취급하는 keyboard의 Key들
Keyboard Callback 구현 결과 코드 2-3
6
![Page 7: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/7.jpg)
Keyboard Callback 03
Ctrl Alt, Shift 등과 함께 문자 Key나 함수 Key를 사용하는 경우
7
![Page 8: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/8.jpg)
Mouse Callback 04
glutMouseFunc 함수의 Prototype
GlutMouseFunc 함수에서 사용 가능한 Mouse Button들에 대한 정의
8
![Page 9: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/9.jpg)
Mouse Callback 04
glutMotionFunc 함수의 Prototype
9
glutEntryFunc 함수의 Prototype
GlutPassiveMotionFunc 함수의 Prototype
![Page 10: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/10.jpg)
Mouse Callback 04
Mouse Callback 구현 결과 코드 2-5
10
![Page 11: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/11.jpg)
http://freeglut.sourceforge.net/
Mouse Callback 04
glutMouseWheelFunc 함수의 Prototype
freeglut Download
11
![Page 12: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/12.jpg)
Mouse Callback 04
Freeglut Library 설치
12
![Page 13: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/13.jpg)
Mouse Callback 04
Mouse Wheel Callback
13
![Page 14: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/14.jpg)
Menu Callback 05
glutCreateMenu 함수의 Prototype
14
glutSetMenu 함수의 Prototype
glutAddMenuEntry 함수의 Prototype
![Page 15: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/15.jpg)
Menu Callback 05
glutAttachMenu 함수의 Prototype
15
glutAddSubMenu 함수의 Prototype
![Page 16: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/16.jpg)
Menu Callback 05
Menu Callback 함수를 이용한 주 메뉴의 구현 결과 코드 2-7
16
![Page 17: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/17.jpg)
Menu Callback 05
Menu Callback 함수를 이용한 서브 메뉴의 구현 결과
코드 2-8
17
![Page 18: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/18.jpg)
Menu Callback 05
서브 메뉴의 위치에 따른 구현 결과 비교
18
![Page 19: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/19.jpg)
Idle Callback & Double Buffering 06
glutIdleFunc 함수의 Prototype
Double Buffering 코드 2-9
19
![Page 20: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/20.jpg)
Timer Callback 07
glutTimerFunc 함수의 Prototype
20
![Page 21: 02 Callback Programmingit.sangji.ac.kr/~3D/ppt/CG/02.pdf · 2017. 5. 16. · Callback Programming 01 Display Callback 02 Reshape Callback 03 Keyboard Callback 04 Mouse Callback 05](https://reader033.vdocuments.net/reader033/viewer/2022052008/601c8e3e8ca29b2d42424aed/html5/thumbnails/21.jpg)
Timer Callback 07
Timer Callback 함수의 구현 결과 코드 2-10
코드 2-11
21