Rev 7929 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7929 | Rev 8174 | ||
---|---|---|---|
Line 6... | Line 6... | ||
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' |
|
11 | include '../../../../../develop/info3ds/info_fun_float.inc' |
12 | include '../../../../../develop/info3ds/info_fun_float.inc' |
Line 12... | Line 13... | ||
12 | 13 | ||
Line -... | Line 14... | ||
- | 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] |
|
- | 19 | push dword[GLDoubleVar] |
|
13 | @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc,dll.Load |
20 | } |
14 | 21 | ||
15 | align 4 |
22 | align 4 |
Line 16... | Line -... | ||
16 | image_data_toolbar dd 0 |
- | |
17 | IMAGE_TOOLBAR_ICON_SIZE equ 21*21*3 |
- | |
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 |
22 | start: |
27 | start: |
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 |
Line 43... | Line 48... | ||
43 | stdcall [gluQuadricTexture], eax,GL_TRUE |
48 | stdcall [gluQuadricTexture], eax,GL_TRUE |
44 | 49 | ||
Line 45... | Line 50... | ||
45 | stdcall [glClearColor], 0.0,0.0,0.0,0.0 |
50 | stdcall [glClearColor], 0.0,0.0,0.0,0.0 |
46 | stdcall [glShadeModel], GL_SMOOTH |
51 | stdcall [glShadeModel], GL_SMOOTH |
47 | 52 | ||
48 | mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext |
53 | mov eax,dword[ctx1] ;eax -> TinyGLContext.GLContext |
Line 49... | Line 54... | ||
49 | mov eax,[eax] ;eax -> ZBuffer |
54 | mov eax,[eax] ;eax -> ZBuffer |
50 | mov eax,[eax+offs_zbuf_pbuf] ;eax -> ZBuffer.pbuf |
55 | mov eax,[eax+ZBuffer.pbuf] |
51 | mov dword[buf_ogl],eax |
56 | mov dword[buf_ogl],eax |
Line 290... | Line 295... | ||
290 | 295 | ||
291 | align 4 |
296 | align 4 |
292 | draw_3d: |
297 | draw_3d: |
Line 293... | Line 298... | ||
293 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины |
298 | stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины |
294 | 299 | ||
295 | stdcall [glPushMatrix] |
300 | call [glPushMatrix] |
296 | stdcall [glTranslatef], 0.0,0.0,0.5 |
301 | stdcall [glTranslatef], 0.0,0.0,0.5 |
297 | stdcall [glScalef], [scale], [scale], [scale] |
302 | stdcall [glScalef], [scale], [scale], [scale] |
298 | stdcall [glScalef], 1.0, 1.0, 0.1 ;прижимаем сферу, что-бы сразу не вылазила при увеличении |
303 | stdcall [glScalef], 1.0, 1.0, 0.1 ;прижимаем сферу, что-бы сразу не вылазила при увеличении |
Line 312... | Line 317... | ||
312 | jne @f |
317 | jne @f |
313 | ; рисование земли |
318 | ; рисование земли |
314 | stdcall [gluQuadricDrawStyle], [qObj],GLU_FILL |
319 | stdcall [gluQuadricDrawStyle], [qObj],GLU_FILL |
315 | stdcall [gluSphere], [qObj], 1.0, 64,64 |
320 | stdcall [gluSphere], [qObj], 1.0, 64,64 |
316 | @@: |
321 | @@: |
317 | stdcall [glPopMatrix] |
322 | call [glPopMatrix] |
Line 318... | Line 323... | ||
318 | 323 | ||
319 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_scale,5,5,0xffff00 |
324 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_scale,5,5,0xffff00 |
320 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_y,5,15,0xffff00 |
325 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_y,5,15,0xffff00 |
321 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_x,5,25,0xffff00 |
326 | stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_x,5,25,0xffff00 |
Line 401... | Line 406... | ||
401 | sz_buf2d_set_pixel db 'buf2d_set_pixel',0 |
406 | sz_buf2d_set_pixel db 'buf2d_set_pixel',0 |
Line 402... | Line 407... | ||
402 | 407 | ||
403 | align 4 |
408 | align 4 |
404 | import_libimg: |
409 | import_libimg: |
405 | dd alib_init1 |
410 | dd alib_init1 |
406 | img_is_img dd aimg_is_img |
411 | ; img_is_img dd aimg_is_img |
407 | img_info dd aimg_info |
412 | ; img_info dd aimg_info |
408 | img_from_file dd aimg_from_file |
413 | ; img_from_file dd aimg_from_file |
409 | img_to_file dd aimg_to_file |
414 | ; img_to_file dd aimg_to_file |
410 | img_from_rgb dd aimg_from_rgb |
415 | ; img_from_rgb dd aimg_from_rgb |
411 | img_to_rgb dd aimg_to_rgb |
416 | ; img_to_rgb dd aimg_to_rgb |
412 | img_to_rgb2 dd aimg_to_rgb2 |
417 | img_to_rgb2 dd aimg_to_rgb2 |
413 | img_decode dd aimg_decode |
418 | img_decode dd aimg_decode |
414 | img_encode dd aimg_encode |
419 | ; img_encode dd aimg_encode |
415 | img_create dd aimg_create |
420 | ; img_create dd aimg_create |
416 | img_destroy dd aimg_destroy |
421 | img_destroy dd aimg_destroy |
417 | img_destroy_layer dd aimg_destroy_layer |
422 | ; img_destroy_layer dd aimg_destroy_layer |
418 | img_count dd aimg_count |
423 | ; img_count dd aimg_count |
419 | img_lock_bits dd aimg_lock_bits |
424 | ; img_lock_bits dd aimg_lock_bits |
420 | img_unlock_bits dd aimg_unlock_bits |
425 | ; img_unlock_bits dd aimg_unlock_bits |
421 | img_flip dd aimg_flip |
426 | ; img_flip dd aimg_flip |
422 | img_flip_layer dd aimg_flip_layer |
427 | ; img_flip_layer dd aimg_flip_layer |
423 | img_rotate dd aimg_rotate |
428 | ; img_rotate dd aimg_rotate |
424 | img_rotate_layer dd aimg_rotate_layer |
429 | ; img_rotate_layer dd aimg_rotate_layer |
- | 430 | ; img_draw dd aimg_draw |
|
Line 425... | Line 431... | ||
425 | img_draw dd aimg_draw |
431 | ; img_convert dd aimg_convert |
426 | 432 | ||
427 | dd 0,0 |
433 | dd 0,0 |
428 | alib_init1 db 'lib_init',0 |
434 | alib_init1 db 'lib_init',0 |
429 | aimg_is_img db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение |
435 | ; aimg_is_img db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение |
430 | aimg_info db 'img_info',0 |
436 | ; aimg_info db 'img_info',0 |
431 | aimg_from_file db 'img_from_file',0 |
437 | ; aimg_from_file db 'img_from_file',0 |
432 | aimg_to_file db 'img_to_file',0 |
438 | ; aimg_to_file db 'img_to_file',0 |
433 | aimg_from_rgb db 'img_from_rgb',0 |
439 | ; aimg_from_rgb db 'img_from_rgb',0 |
434 | aimg_to_rgb db 'img_to_rgb',0 ;преобразование изображения в данные RGB |
440 | ; aimg_to_rgb db 'img_to_rgb',0 ;преобразование изображения в данные RGB |
435 | aimg_to_rgb2 db 'img_to_rgb2',0 |
441 | aimg_to_rgb2 db 'img_to_rgb2',0 |
436 | aimg_decode db 'img_decode',0 ;автоматически определяет формат графических данных |
442 | aimg_decode db 'img_decode',0 ;автоматически определяет формат графических данных |
437 | aimg_encode db 'img_encode',0 |
443 | ; aimg_encode db 'img_encode',0 |
438 | aimg_create db 'img_create',0 |
444 | ; aimg_create db 'img_create',0 |
439 | aimg_destroy db 'img_destroy',0 |
445 | aimg_destroy db 'img_destroy',0 |
440 | aimg_destroy_layer db 'img_destroy_layer',0 |
446 | ; aimg_destroy_layer db 'img_destroy_layer',0 |
441 | aimg_count db 'img_count',0 |
447 | ; aimg_count db 'img_count',0 |
442 | aimg_lock_bits db 'img_lock_bits',0 |
448 | ; aimg_lock_bits db 'img_lock_bits',0 |
443 | aimg_unlock_bits db 'img_unlock_bits',0 |
449 | ; aimg_unlock_bits db 'img_unlock_bits',0 |
444 | aimg_flip db 'img_flip',0 |
450 | ; aimg_flip db 'img_flip',0 |
445 | aimg_flip_layer db 'img_flip_layer',0 |
451 | ; aimg_flip_layer db 'img_flip_layer',0 |
446 | aimg_rotate db 'img_rotate',0 |
452 | ; aimg_rotate db 'img_rotate',0 |
- | 453 | ; aimg_rotate_layer db 'img_rotate_layer',0 |
|
Line 447... | Line 454... | ||
447 | aimg_rotate_layer db 'img_rotate_layer',0 |
454 | ; aimg_draw db 'img_draw',0 |
448 | aimg_draw db 'img_draw',0 |
455 | ; aimg_convert db 'img_convert',0 |
449 | 456 | ||
450 | ;-------------------------------------------------- |
457 | ;-------------------------------------------------- |
Line 513... | Line 520... | ||
513 | err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i |
520 | err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i |
514 | l_libs_end: |
521 | l_libs_end: |
Line 515... | Line 522... | ||
515 | 522 | ||
516 | align 4 |
523 | align 4 |
517 | i_end: |
- | |
518 | ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext |
524 | i_end: |
519 | ;sizeof.TinyGLContext = 28 |
525 | ctx1 rb 28 ;sizeof.TinyGLContext = 28 |
520 | dr_figure dd 0 |
526 | dr_figure dd 0 |
521 | qObj dd 0 |
527 | qObj dd 0 |
522 | TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.) |
528 | TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.) |
523 | texture dd 0 ;указатель на память с текстурой |
529 | texture dd 0 ;указатель на память с текстурой |