Subversion Repositories Kolibri OS

Rev

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 ;указатель на память с текстурой