Rev 7423 | Rev 8069 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7423 | Rev 8059 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | use32 |
1 | use32 |
2 | org 0x0 |
2 | org 0 |
3 | db 'MENUET01' |
3 | db 'MENUET01' |
4 | dd 1,start,i_end,mem,stacktop,0,cur_dir_path |
4 | dd 1,start,i_end,mem,stacktop,0,cur_dir_path |
Line 5... | Line 5... | ||
5 | 5 | ||
6 | include '../../../../../proc32.inc' |
6 | include '../../../../../proc32.inc' |
Line 16... | Line 16... | ||
16 | macro matr_cell c_funct,c_param,funct,param, dia |
16 | macro matr_cell c_funct,c_param,funct,param, dia |
17 | { |
17 | { |
18 | dia dword[esp-4*(c_param*(c_funct-funct)+(1+c_param-param))] |
18 | dia dword[esp-4*(c_param*(c_funct-funct)+(1+c_param-param))] |
19 | } |
19 | } |
Line -... | Line 20... | ||
- | 20 | ||
- | 21 | ;Так как некоторые извращенческие функции OpenGL воспринимают только параметры |
|
- | 22 | ;типа double (8 байт) то придется пихать их в стек макросом glpush |
|
- | 23 | macro glpush GLDoubleVar { |
|
- | 24 | push dword[GLDoubleVar+4] |
|
- | 25 | push dword[GLDoubleVar] |
|
- | 26 | } |
|
20 | 27 | ||
21 | align 4 |
28 | align 4 |
22 | start: |
29 | start: |
23 | load_library name_tgl, cur_dir_path, library_path, system_path, \ |
30 | load_library name_tgl, cur_dir_path, library_path, system_path, \ |
24 | err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i |
31 | err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i |
Line 63... | Line 70... | ||
63 | ; *** end init *** |
70 | ; *** end init *** |
Line 64... | Line 71... | ||
64 | 71 | ||
65 | align 4 |
72 | align 4 |
66 | red_win: |
73 | red_win: |
- | 74 | call draw_window |
|
- | 75 | mcall SF_THREAD_INFO,procinfo,-1 |
|
- | 76 | mov eax,dword[procinfo.box.height] |
|
- | 77 | cmp eax,120 |
|
- | 78 | jge @f |
|
- | 79 | mov eax,120 ;min size |
|
- | 80 | @@: |
|
- | 81 | sub eax,42 |
|
- | 82 | mov ebx,dword[procinfo.box.width] |
|
- | 83 | cmp ebx,200 |
|
- | 84 | jge @f |
|
- | 85 | mov ebx,200 |
|
- | 86 | @@: |
|
- | 87 | sub ebx,10 |
|
- | 88 | stdcall reshape, ebx,eax |
|
Line 67... | Line 89... | ||
67 | call draw_window |
89 | .end0: |
68 | 90 | ||
69 | align 16 |
91 | align 16 |
Line 91... | Line 113... | ||
91 | a1 dd 0.01 |
113 | a1 dd 0.01 |
92 | a2 dd 0.3 |
114 | a2 dd 0.3 |
Line 93... | Line 115... | ||
93 | 115 | ||
94 | ; new window size or exposure |
116 | ; new window size or exposure |
95 | align 4 |
117 | align 4 |
96 | proc reshape uses ebx ecx, width:dword, height:dword |
118 | proc reshape, width:dword, height:dword |
97 | locals |
119 | locals |
98 | h dq ? |
120 | h dq ? |
99 | mh dq ? |
121 | mh dq ? |
100 | endl |
- | |
101 | 122 | endl |
|
102 | stdcall [glViewport], 0, 0, [width], [height] |
123 | stdcall [glViewport], 0, 0, [width], [height] |
103 | stdcall [glMatrixMode], GL_PROJECTION |
124 | stdcall [glMatrixMode], GL_PROJECTION |
104 | stdcall [glLoadIdentity] |
125 | stdcall [glLoadIdentity] |
105 | fild dword[height] |
126 | fild dword[height] |
106 | fidiv dword[width] |
127 | fidiv dword[width] |
107 | fst qword[h] ;h = height / width |
128 | fst qword[h] ;h = height / width |
108 | fchs |
129 | fchs |
- | 130 | fstp qword[mh] |
|
- | 131 | ||
109 | fstp qword[mh] |
132 | glpush p6 |
- | 133 | glpush p5 |
|
110 | mov ebx,ebp |
134 | glpush h |
111 | sub ebx,8 |
135 | glpush mh |
112 | mov ecx,ebp |
136 | glpush p2 |
113 | sub ecx,16 |
137 | glpush p1 |
- | 138 | call [glFrustum] |
|
114 | stdcall [glFrustum], dword p1, dword p2, ebx, ecx, dword p5, dword p6 |
139 | |
115 | stdcall [glMatrixMode], GL_MODELVIEW |
140 | stdcall [glMatrixMode], GL_MODELVIEW |
116 | stdcall [glLoadIdentity] |
141 | stdcall [glLoadIdentity] |
117 | stdcall [glTranslatef], 0.0, 0.0, -40.0 |
142 | stdcall [glTranslatef], 0.0, 0.0, -40.0 |
118 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT |
143 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT |
Line 196... | Line 221... | ||
196 | fld dword[view_roty] |
221 | fld dword[view_roty] |
197 | fsub dword[delt_size] |
222 | fsub dword[delt_size] |
198 | fstp dword[view_roty] |
223 | fstp dword[view_roty] |
199 | call draw_3d |
224 | call draw_3d |
200 | @@: |
225 | @@: |
201 | - | ||
202 | jmp still |
226 | jmp still |
Line 203... | Line 227... | ||
203 | 227 | ||
204 | align 4 |
228 | align 4 |
205 | button: |
229 | button: |
Line 218... | Line 242... | ||
218 | title3: db 'ESC - exit Arrow keys - rotate +/- zoom' |
242 | title3: db 'ESC - exit Arrow keys - rotate +/- zoom' |
219 | .end: db 0 |
243 | .end: db 0 |
220 | fps: db 'FPS:' |
244 | fps: db 'FPS:' |
221 | .end: db 0 |
245 | .end: db 0 |
Line 222... | Line -... | ||
222 | - | ||
223 | align 4 |
- | |
224 | ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
- | |
225 | ;sizeof.TinyGLContext = 28 |
- | |
226 | 246 | ||
227 | align 16 |
247 | align 16 |
228 | draw_3d: |
248 | draw_3d: |
Line 229... | Line 249... | ||
229 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT |
249 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT |
Line 885... | Line 905... | ||
885 | include '../export.inc' |
905 | include '../export.inc' |
Line 886... | Line 906... | ||
886 | 906 | ||
887 | ;-------------------------------------------------- |
907 | ;-------------------------------------------------- |
888 | system_path db '/sys/lib/' |
908 | system_path db '/sys/lib/' |
889 | name_tgl db 'tinygl.obj',0 |
- | |
- | 909 | name_tgl db 'tinygl.obj',0 |
|
890 | err_message_found_lib db 'Sorry I cannot load library tinygl.obj',0 |
910 | |
891 | head_f_i: |
911 | head_f_i: |
892 | head_f_l db 'System error',0 |
912 | head_f_l db '"System error',0 |
- | 913 | err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
|
893 | err_message_import db 'Error on load import library tinygl.obj',0 |
914 | err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
Line 894... | Line 915... | ||
894 | ;-------------------------------------------------- |
915 | ;-------------------------------------------------- |
895 | 916 | ||
- | 917 | align 16 |
|
- | 918 | i_end: |
|
- | 919 | ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
|
896 | align 16 |
920 | ;sizeof.TinyGLContext = 28 |
897 | i_end: |
921 | procinfo process_information |
898 | rb 4096 |
922 | rb 4096 |
899 | stacktop: |
923 | stacktop: |
900 | cur_dir_path: |
924 | cur_dir_path: |