Rev 6200 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6200 | Rev 8174 | ||
---|---|---|---|
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' |
7 | include '../../../../../macros.inc' |
7 | include '../../../../../macros.inc' |
8 | include '../../../../../KOSfuncs.inc' |
8 | include '../../../../../KOSfuncs.inc' |
9 | include '../../../../../load_img.inc' |
9 | include '../../../../../load_img.inc' |
- | 10 | include '../opengl_const.inc' |
|
10 | include '../opengl_const.inc' |
11 | include '../zbuffer.inc' |
Line 11... | Line 12... | ||
11 | include '../../../../../develop/info3ds/info_fun_float.inc' |
12 | include '../../../../../develop/info3ds/info_fun_float.inc' |
Line -... | Line 13... | ||
- | 13 | ||
- | 14 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
|
- | 15 | ||
- | 16 | ;Макрос для параметров типа double (8 байт) |
|
- | 17 | macro glpush GLDoubleVar { |
|
- | 18 | push dword[GLDoubleVar+4] |
|
12 | 19 | push dword[GLDoubleVar] |
|
13 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
20 | } |
14 | 21 | ||
Line 15... | Line -... | ||
15 | align 4 |
- | |
16 | image_data_toolbar dd 0 |
- | |
17 | IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 |
22 | align 4 |
18 | 23 | image_data_toolbar dd 0 |
|
19 | offs_zbuf_pbuf equ 24 ;const. from 'zbuffer.inc' |
24 | IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 |
20 | 25 | ||
21 | align 4 |
26 | align 4 |
Line 36... | Line 41... | ||
36 | mcall SF_SET_EVENTS_MASK,0x27 |
41 | mcall SF_SET_EVENTS_MASK,0x27 |
Line 37... | Line 42... | ||
37 | 42 | ||
38 | stdcall [kosglMakeCurrent], 5,30,[buf_ogl.w],[buf_ogl.h],ctx1 |
43 | stdcall [kosglMakeCurrent], 5,30,[buf_ogl.w],[buf_ogl.h],ctx1 |
39 | stdcall [glEnable], GL_DEPTH_TEST |
44 | stdcall [glEnable], GL_DEPTH_TEST |
40 | stdcall [glEnable], GL_NORMALIZE ;делам нормали одинаковой величины во избежание артефактов |
45 | stdcall [glEnable], GL_NORMALIZE ;делам нормали одинаковой величины во избежание артефактов |
41 | stdcall [gluNewQuadric] |
46 | call [gluNewQuadric] |
42 | mov [qObj],eax |
47 | mov [qObj],eax |
43 | stdcall [gluQuadricDrawStyle], eax,GLU_FILL |
48 | stdcall [gluQuadricDrawStyle], eax,GLU_FILL |
Line 44... | Line 49... | ||
44 | stdcall [gluQuadricTexture], eax,GL_TRUE |
49 | stdcall [gluQuadricTexture], eax,GL_TRUE |
45 | 50 | ||
Line 46... | Line 51... | ||
46 | stdcall [glClearColor], 0.0,0.0,0.0,0.0 |
51 | stdcall [glClearColor], 0.0,0.0,0.0,0.0 |
47 | stdcall [glShadeModel], GL_SMOOTH |
52 | stdcall [glShadeModel], GL_SMOOTH |
48 | 53 | ||
49 | mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext |
54 | mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext |
Line 50... | Line 55... | ||
50 | mov eax,[eax] ;eax -> ZBuffer |
55 | mov eax,[eax] ;eax -> ZBuffer |
51 | mov eax,[eax+offs_zbuf_pbuf] ;eax -> ZBuffer.pbuf |
56 | mov eax,[eax+ZBuffer.pbuf] |
52 | mov dword[buf_ogl],eax |
57 | mov dword[buf_ogl],eax |
Line 107... | Line 112... | ||
107 | add ebx,3*IMAGE_TOOLBAR_ICON_SIZE |
112 | add ebx,3*IMAGE_TOOLBAR_ICON_SIZE |
108 | mcall SF_PUT_IMAGE,,(21 shl 16)+21,(5 shl 16)+5 ;масштаб + |
113 | mcall SF_PUT_IMAGE,,(21 shl 16)+21,(5 shl 16)+5 ;масштаб + |
109 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
114 | add ebx,IMAGE_TOOLBAR_ICON_SIZE |
110 | mcall ,,,(35 shl 16)+5 ;масштаб - |
115 | mcall ,,,(35 shl 16)+5 ;масштаб - |
Line 111... | Line 116... | ||
111 | 116 | ||
112 | stdcall [kosglSwapBuffers] |
117 | call [kosglSwapBuffers] |
113 | mcall SF_REDRAW,SSF_END_DRAW |
118 | mcall SF_REDRAW,SSF_END_DRAW |
114 | popad |
119 | popad |
Line 115... | Line 120... | ||
115 | ret |
120 | ret |
Line 141... | Line 146... | ||
141 | fstp qword[Data_Double] |
146 | fstp qword[Data_Double] |
142 | call DoubleFloat_to_String |
147 | call DoubleFloat_to_String |
143 | mov byte[txt_angle_y.v],0 |
148 | mov byte[txt_angle_y.v],0 |
144 | stdcall str_cat, txt_angle_y.v,Data_String |
149 | stdcall str_cat, txt_angle_y.v,Data_String |
145 | call draw_3d |
150 | call draw_3d |
146 | stdcall [kosglSwapBuffers] |
151 | call [kosglSwapBuffers] |
147 | @@: |
152 | @@: |
148 | cmp ah,179 ;Right |
153 | cmp ah,179 ;Right |
149 | jne @f |
154 | jne @f |
150 | finit |
155 | finit |
151 | fld dword[angle_y] |
156 | fld dword[angle_y] |
Line 155... | Line 160... | ||
155 | fstp qword[Data_Double] |
160 | fstp qword[Data_Double] |
156 | call DoubleFloat_to_String |
161 | call DoubleFloat_to_String |
157 | mov byte[txt_angle_y.v],0 |
162 | mov byte[txt_angle_y.v],0 |
158 | stdcall str_cat, txt_angle_y.v,Data_String |
163 | stdcall str_cat, txt_angle_y.v,Data_String |
159 | call draw_3d |
164 | call draw_3d |
160 | stdcall [kosglSwapBuffers] |
165 | call [kosglSwapBuffers] |
161 | @@: |
166 | @@: |
162 | cmp ah,178 ;Up |
167 | cmp ah,178 ;Up |
163 | jne @f |
168 | jne @f |
164 | finit |
169 | finit |
165 | fld dword[angle_x] |
170 | fld dword[angle_x] |
Line 169... | Line 174... | ||
169 | fstp qword[Data_Double] |
174 | fstp qword[Data_Double] |
170 | call DoubleFloat_to_String |
175 | call DoubleFloat_to_String |
171 | mov byte[txt_angle_x.v],0 |
176 | mov byte[txt_angle_x.v],0 |
172 | stdcall str_cat, txt_angle_x.v,Data_String |
177 | stdcall str_cat, txt_angle_x.v,Data_String |
173 | call draw_3d |
178 | call draw_3d |
174 | stdcall [kosglSwapBuffers] |
179 | call [kosglSwapBuffers] |
175 | @@: |
180 | @@: |
176 | cmp ah,177 ;Down |
181 | cmp ah,177 ;Down |
177 | jne @f |
182 | jne @f |
178 | finit |
183 | finit |
179 | fld dword[angle_x] |
184 | fld dword[angle_x] |
Line 183... | Line 188... | ||
183 | fstp qword[Data_Double] |
188 | fstp qword[Data_Double] |
184 | call DoubleFloat_to_String |
189 | call DoubleFloat_to_String |
185 | mov byte[txt_angle_x.v],0 |
190 | mov byte[txt_angle_x.v],0 |
186 | stdcall str_cat, txt_angle_x.v,Data_String |
191 | stdcall str_cat, txt_angle_x.v,Data_String |
187 | call draw_3d |
192 | call draw_3d |
188 | stdcall [kosglSwapBuffers] |
193 | call [kosglSwapBuffers] |
189 | @@: |
194 | @@: |
Line 190... | Line 195... | ||
190 | 195 | ||
Line 191... | Line 196... | ||
191 | jmp still |
196 | jmp still |
Line 228... | Line 233... | ||
228 | fstp qword[Data_Double] |
233 | fstp qword[Data_Double] |
229 | call DoubleFloat_to_String |
234 | call DoubleFloat_to_String |
230 | mov byte[txt_scale.v],0 |
235 | mov byte[txt_scale.v],0 |
231 | stdcall str_cat, txt_scale.v,Data_String |
236 | stdcall str_cat, txt_scale.v,Data_String |
232 | call draw_3d |
237 | call draw_3d |
233 | stdcall [kosglSwapBuffers] |
238 | call [kosglSwapBuffers] |
234 | ret |
239 | ret |
Line 235... | Line 240... | ||
235 | 240 | ||
236 | align 4 |
241 | align 4 |
237 | but_zoom_m: |
242 | but_zoom_m: |
Line 251... | Line 256... | ||
251 | fstp qword[Data_Double] |
256 | fstp qword[Data_Double] |
252 | call DoubleFloat_to_String |
257 | call DoubleFloat_to_String |
253 | mov byte[txt_scale.v],0 |
258 | mov byte[txt_scale.v],0 |
254 | stdcall str_cat, txt_scale.v,Data_String |
259 | stdcall str_cat, txt_scale.v,Data_String |
255 | call draw_3d |
260 | call draw_3d |
256 | stdcall [kosglSwapBuffers] |
261 | call [kosglSwapBuffers] |
257 | ret |
262 | ret |
Line 258... | Line -... | ||
258 | - | ||
259 | 263 | ||
260 | align 4 |
264 | align 4 |
261 | caption db 'Test textures, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0 |
- | |
262 | align 4 |
- | |
263 | ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
- | |
Line 264... | Line 265... | ||
264 | ;sizeof.TinyGLContext = 28 |
265 | caption db 'Test textures, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0 |
265 | 266 | ||
266 | align 4 |
267 | align 4 |
Line 267... | Line 268... | ||
267 | draw_3d: |
268 | draw_3d: |
268 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины |
269 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины |
269 | 270 | ||
270 | stdcall [glPushMatrix] |
271 | call [glPushMatrix] |
271 | stdcall [glScalef], [scale], [scale], [scale] |
272 | stdcall [glScalef], [scale], [scale], [scale] |
Line 272... | Line 273... | ||
272 | stdcall [glScalef], 1.0, 1.0, 0.1 ;прижимаем сферу, что-бы сразу не вылазила при увеличении |
273 | stdcall [glScalef], 1.0, 1.0, 0.1 ;прижимаем сферу, что-бы сразу не вылазила при увеличении |
273 | stdcall [glRotatef], [angle_y],0.0,1.0,0.0 |
274 | stdcall [glRotatef], [angle_y],0.0,1.0,0.0 |
274 | stdcall [glRotatef], [angle_x],1.0,0.0,0.0 |
275 | stdcall [glRotatef], [angle_x],1.0,0.0,0.0 |
Line 275... | Line 276... | ||
275 | 276 | ||
276 | ; рисование панорамы |
277 | ; рисование панорамы |
277 | stdcall [gluSphere], [qObj], 1.0, 64,64 |
278 | stdcall [gluSphere], [qObj], 1.0, 64,64 |
278 | stdcall [glPopMatrix] |
279 | call [glPopMatrix] |
Line 279... | Line -... | ||
279 | - | ||
280 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_scale,5,5,0xffff00 |
- | |
281 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_y,5,15,0xffff00 |
- | |
282 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_x,5,25,0xffff00 |
- | |
283 | ret |
- | |
284 | - | ||
285 | qObj dd 0 |
280 | |
286 | TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.) |
281 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_scale,5,5,0xffff00 |
287 | texture dd 0 ;указатель на память с текстурой |
282 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_y,5,15,0xffff00 |
288 | text_w dd 0 |
283 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_x,5,25,0xffff00 |
289 | text_h dd 0 |
284 | ret |
Line 368... | Line 363... | ||
368 | sz_buf2d_set_pixel db 'buf2d_set_pixel',0 |
363 | sz_buf2d_set_pixel db 'buf2d_set_pixel',0 |
Line 369... | Line 364... | ||
369 | 364 | ||
370 | align 4 |
365 | align 4 |
371 | import_libimg: |
366 | import_libimg: |
372 | dd alib_init1 |
367 | dd alib_init1 |
373 | img_is_img dd aimg_is_img |
368 | ; img_is_img dd aimg_is_img |
374 | img_info dd aimg_info |
369 | ; img_info dd aimg_info |
375 | img_from_file dd aimg_from_file |
370 | ; img_from_file dd aimg_from_file |
376 | img_to_file dd aimg_to_file |
371 | ; img_to_file dd aimg_to_file |
377 | img_from_rgb dd aimg_from_rgb |
372 | ; img_from_rgb dd aimg_from_rgb |
378 | img_to_rgb dd aimg_to_rgb |
373 | ; img_to_rgb dd aimg_to_rgb |
379 | img_to_rgb2 dd aimg_to_rgb2 |
374 | img_to_rgb2 dd aimg_to_rgb2 |
380 | img_decode dd aimg_decode |
375 | img_decode dd aimg_decode |
381 | img_encode dd aimg_encode |
376 | ; img_encode dd aimg_encode |
382 | img_create dd aimg_create |
377 | ; img_create dd aimg_create |
383 | img_destroy dd aimg_destroy |
378 | img_destroy dd aimg_destroy |
384 | img_destroy_layer dd aimg_destroy_layer |
379 | ; img_destroy_layer dd aimg_destroy_layer |
385 | img_count dd aimg_count |
380 | ; img_count dd aimg_count |
386 | img_lock_bits dd aimg_lock_bits |
381 | ; img_lock_bits dd aimg_lock_bits |
387 | img_unlock_bits dd aimg_unlock_bits |
382 | ; img_unlock_bits dd aimg_unlock_bits |
388 | img_flip dd aimg_flip |
383 | ; img_flip dd aimg_flip |
389 | img_flip_layer dd aimg_flip_layer |
384 | ; img_flip_layer dd aimg_flip_layer |
390 | img_rotate dd aimg_rotate |
385 | ; img_rotate dd aimg_rotate |
391 | img_rotate_layer dd aimg_rotate_layer |
386 | ; img_rotate_layer dd aimg_rotate_layer |
- | 387 | ; img_draw dd aimg_draw |
|
Line 392... | Line 388... | ||
392 | img_draw dd aimg_draw |
388 | ; img_convert dd aimg_convert |
393 | 389 | ||
394 | dd 0,0 |
390 | dd 0,0 |
395 | alib_init1 db 'lib_init',0 |
391 | alib_init1 db 'lib_init',0 |
396 | aimg_is_img db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение |
392 | ; aimg_is_img db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение |
397 | aimg_info db 'img_info',0 |
393 | ; aimg_info db 'img_info',0 |
398 | aimg_from_file db 'img_from_file',0 |
394 | ; aimg_from_file db 'img_from_file',0 |
399 | aimg_to_file db 'img_to_file',0 |
395 | ; aimg_to_file db 'img_to_file',0 |
400 | aimg_from_rgb db 'img_from_rgb',0 |
396 | ; aimg_from_rgb db 'img_from_rgb',0 |
401 | aimg_to_rgb db 'img_to_rgb',0 ;преобразование изображения в данные RGB |
397 | ; aimg_to_rgb db 'img_to_rgb',0 ;преобразование изображения в данные RGB |
402 | aimg_to_rgb2 db 'img_to_rgb2',0 |
398 | aimg_to_rgb2 db 'img_to_rgb2',0 |
403 | aimg_decode db 'img_decode',0 ;автоматически определяет формат графических данных |
399 | aimg_decode db 'img_decode',0 ;автоматически определяет формат графических данных |
404 | aimg_encode db 'img_encode',0 |
400 | ; aimg_encode db 'img_encode',0 |
405 | aimg_create db 'img_create',0 |
401 | ; aimg_create db 'img_create',0 |
406 | aimg_destroy db 'img_destroy',0 |
402 | aimg_destroy db 'img_destroy',0 |
407 | aimg_destroy_layer db 'img_destroy_layer',0 |
403 | ; aimg_destroy_layer db 'img_destroy_layer',0 |
408 | aimg_count db 'img_count',0 |
404 | ; aimg_count db 'img_count',0 |
409 | aimg_lock_bits db 'img_lock_bits',0 |
405 | ; aimg_lock_bits db 'img_lock_bits',0 |
410 | aimg_unlock_bits db 'img_unlock_bits',0 |
406 | ; aimg_unlock_bits db 'img_unlock_bits',0 |
411 | aimg_flip db 'img_flip',0 |
407 | ; aimg_flip db 'img_flip',0 |
412 | aimg_flip_layer db 'img_flip_layer',0 |
408 | ; aimg_flip_layer db 'img_flip_layer',0 |
413 | aimg_rotate db 'img_rotate',0 |
409 | ; aimg_rotate db 'img_rotate',0 |
- | 410 | ; aimg_rotate_layer db 'img_rotate_layer',0 |
|
Line 414... | Line 411... | ||
414 | aimg_rotate_layer db 'img_rotate_layer',0 |
411 | ; aimg_draw db 'img_draw',0 |
415 | aimg_draw db 'img_draw',0 |
412 | ; aimg_convert db 'img_convert',0 |
416 | 413 | ||
417 | ;-------------------------------------------------- |
414 | ;-------------------------------------------------- |
418 | system_dir_0 db '/sys/lib/' |
415 | system_dir_0 db '/sys/lib/' |
419 | lib_name_0 db 'tinygl.obj',0 |
416 | lib_name_0 db 'tinygl.obj',0 |
420 | system_dir_1 db '/sys/lib/' |
417 | system_dir_1 db '/sys/lib/' |
421 | lib_name_1 db 'buf2d.obj',0 |
418 | lib_name_1 db 'buf2d.obj',0 |
422 | system_dir_2 db '/sys/lib/' |
419 | system_dir_2 db '/sys/lib/' |
423 | lib_name_2 db 'libimg.obj',0 |
420 | lib_name_2 db 'libimg.obj',0 |
424 | err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,0 |
421 | err_msg_found_lib_0 db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0 |
425 | err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,0 |
422 | err_msg_found_lib_1 db 'Sorry I cannot load library ',39,'buf2d.obj',39,'" -tE',0 |
426 | err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,0 |
423 | err_msg_found_lib_2 db 'Sorry I cannot load library ',39,'libimg.obj',39,'" -tE',0 |
427 | head_f_i: |
424 | head_f_i: |
428 | head_f_l db 'System error',0 |
425 | head_f_l db '"System error',0 |
429 | err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,0 |
426 | err_msg_import_0 db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0 |
Line 430... | Line 427... | ||
430 | err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,0 |
427 | err_msg_import_1 db 'Error on load import library ',39,'buf2d.obj',39,'" -tE',0 |
431 | err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,0 |
428 | err_msg_import_2 db 'Error on load import library ',39,'libimg.obj',39,'" -tE',0 |
432 | ;-------------------------------------------------- |
429 | ;-------------------------------------------------- |
Line 480... | Line 477... | ||
480 | err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i |
477 | err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i |
481 | l_libs_end: |
478 | l_libs_end: |
Line 482... | Line 479... | ||
482 | 479 | ||
483 | align 4 |
480 | align 4 |
- | 481 | i_end: |
|
- | 482 | ctx1 rb 28 ;sizeof.TinyGLContext = 28 |
|
- | 483 | qObj dd 0 |
|
- | 484 | TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.) |
|
- | 485 | texture dd 0 ;указатель на память с текстурой |
|
- | 486 | text_w dd 0 |
|
484 | i_end: |
487 | text_h dd 0 |
485 | run_file_70 FileInfoBlock |
488 | run_file_70 FileInfoBlock |
486 | sc system_colors |
489 | sc system_colors |
487 | align 16 |
490 | align 16 |
488 | rb 4096 |
491 | rb 4096 |