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.25,0.25,0.25,0.0
50
	stdcall [glClearColor], 0.25,0.25,0.25,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 288... Line 293...
288
 
293
 
289
align 4
294
align 4
290
draw_3d:
295
draw_3d:
Line 291... Line 296...
291
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
296
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
292
 
297
 
293
stdcall [glPushMatrix]
298
call [glPushMatrix]
294
	stdcall [glTranslatef], 0.0,0.0,0.5
299
	stdcall [glTranslatef], 0.0,0.0,0.5
295
	stdcall [glScalef], [scale], [scale], [scale]
300
	stdcall [glScalef], [scale], [scale], [scale]
Line 373... Line 378...
373
	stdcall [glTexCoord2f], 1.0f, 1.0f
378
	stdcall [glTexCoord2f], 1.0f, 1.0f
374
	stdcall [glVertex3f], -1.0f,  1.0f,  1.0f ; Верх право
379
	stdcall [glVertex3f], -1.0f,  1.0f,  1.0f ; Верх право
375
	stdcall [glTexCoord2f], 0.0f, 1.0f
380
	stdcall [glTexCoord2f], 0.0f, 1.0f
376
	stdcall [glVertex3f], -1.0f,  1.0f, -1.0f ; Верх лево
381
	stdcall [glVertex3f], -1.0f,  1.0f, -1.0f ; Верх лево
Line 377... Line 382...
377
 
382
 
378
	stdcall [glEnd]
383
	call [glEnd]
379
@@:
384
@@:
Line 380... Line 385...
380
stdcall [glPopMatrix]
385
call [glPopMatrix]
381
 
386
 
382
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_scale,5,5,0xffff00
387
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_scale,5,5,0xffff00
383
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_z,5,15,0xffff00
388
	stdcall [buf2d_draw_text], buf_ogl, buf_1,txt_angle_z,5,15,0xffff00
Line 471... Line 476...
471
	sz_buf2d_set_pixel db 'buf2d_set_pixel',0
476
	sz_buf2d_set_pixel db 'buf2d_set_pixel',0
Line 472... Line 477...
472
 
477
 
473
align 4
478
align 4
474
import_libimg:
479
import_libimg:
475
	dd alib_init1
480
	dd alib_init1
476
	img_is_img  dd aimg_is_img
481
;	img_is_img  dd aimg_is_img
477
	img_info    dd aimg_info
482
;	img_info    dd aimg_info
478
	img_from_file dd aimg_from_file
483
;	img_from_file dd aimg_from_file
479
	img_to_file dd aimg_to_file
484
;	img_to_file dd aimg_to_file
480
	img_from_rgb dd aimg_from_rgb
485
;	img_from_rgb dd aimg_from_rgb
481
	img_to_rgb  dd aimg_to_rgb
486
;	img_to_rgb  dd aimg_to_rgb
482
	img_to_rgb2 dd aimg_to_rgb2
487
	img_to_rgb2 dd aimg_to_rgb2
483
	img_decode  dd aimg_decode
488
	img_decode  dd aimg_decode
484
	img_encode  dd aimg_encode
489
;	img_encode  dd aimg_encode
485
	img_create  dd aimg_create
490
;	img_create  dd aimg_create
486
	img_destroy dd aimg_destroy
491
	img_destroy dd aimg_destroy
487
	img_destroy_layer dd aimg_destroy_layer
492
;	img_destroy_layer dd aimg_destroy_layer
488
	img_count   dd aimg_count
493
;	img_count   dd aimg_count
489
	img_lock_bits dd aimg_lock_bits
494
;	img_lock_bits dd aimg_lock_bits
490
	img_unlock_bits dd aimg_unlock_bits
495
;	img_unlock_bits dd aimg_unlock_bits
491
	img_flip    dd aimg_flip
496
;	img_flip    dd aimg_flip
492
	img_flip_layer dd aimg_flip_layer
497
;	img_flip_layer dd aimg_flip_layer
493
	img_rotate  dd aimg_rotate
498
;	img_rotate  dd aimg_rotate
494
	img_rotate_layer dd aimg_rotate_layer
499
;	img_rotate_layer dd aimg_rotate_layer
-
 
500
;	img_draw    dd aimg_draw
Line 495... Line 501...
495
	img_draw    dd aimg_draw
501
;	img_convert dd aimg_convert
496
 
502
 
497
	dd 0,0
503
	dd 0,0
498
	alib_init1   db 'lib_init',0
504
	alib_init1   db 'lib_init',0
499
	aimg_is_img  db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение
505
;	aimg_is_img  db 'img_is_img',0 ;определяет по данным, может ли библиотека сделать из них изображение
500
	aimg_info    db 'img_info',0
506
;	aimg_info    db 'img_info',0
501
	aimg_from_file db 'img_from_file',0
507
;	aimg_from_file db 'img_from_file',0
502
	aimg_to_file db 'img_to_file',0
508
;	aimg_to_file db 'img_to_file',0
503
	aimg_from_rgb db 'img_from_rgb',0
509
;	aimg_from_rgb db 'img_from_rgb',0
504
	aimg_to_rgb  db 'img_to_rgb',0 ;преобразование изображения в данные RGB
510
;	aimg_to_rgb  db 'img_to_rgb',0 ;преобразование изображения в данные RGB
505
	aimg_to_rgb2 db 'img_to_rgb2',0
511
	aimg_to_rgb2 db 'img_to_rgb2',0
506
	aimg_decode  db 'img_decode',0 ;автоматически определяет формат графических данных
512
	aimg_decode  db 'img_decode',0 ;автоматически определяет формат графических данных
507
	aimg_encode  db 'img_encode',0
513
;	aimg_encode  db 'img_encode',0
508
	aimg_create  db 'img_create',0
514
;	aimg_create  db 'img_create',0
509
	aimg_destroy db 'img_destroy',0
515
	aimg_destroy db 'img_destroy',0
510
	aimg_destroy_layer db 'img_destroy_layer',0
516
;	aimg_destroy_layer db 'img_destroy_layer',0
511
	aimg_count   db 'img_count',0
517
;	aimg_count   db 'img_count',0
512
	aimg_lock_bits db 'img_lock_bits',0
518
;	aimg_lock_bits db 'img_lock_bits',0
513
	aimg_unlock_bits db 'img_unlock_bits',0
519
;	aimg_unlock_bits db 'img_unlock_bits',0
514
	aimg_flip    db 'img_flip',0
520
;	aimg_flip    db 'img_flip',0
515
	aimg_flip_layer db 'img_flip_layer',0
521
;	aimg_flip_layer db 'img_flip_layer',0
516
	aimg_rotate  db 'img_rotate',0
522
;	aimg_rotate  db 'img_rotate',0
-
 
523
;	aimg_rotate_layer db 'img_rotate_layer',0
Line 517... Line 524...
517
	aimg_rotate_layer db 'img_rotate_layer',0
524
;	aimg_draw    db 'img_draw',0
518
	aimg_draw    db 'img_draw',0
525
;	aimg_convert db 'img_convert',0
519
 
526
 
520
;--------------------------------------------------
527
;--------------------------------------------------
Line 577... Line 584...
577
		err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i
584
		err_msg_found_lib_2, head_f_l, import_libimg, err_msg_import_2, head_f_i
578
l_libs_end:
585
l_libs_end:
Line 579... Line 586...
579
 
586
 
580
align 4
587
align 4
581
i_end:
-
 
582
	ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
588
i_end:
583
	;sizeof.TinyGLContext = 28
589
	ctx1 rb 28 ;sizeof.TinyGLContext = 28
584
	dr_figure dd 0
590
	dr_figure dd 0
585
	qObj dd 0
591
	qObj dd 0
586
	TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.)
592
	TexObj dd 0 ;массив указателей на текстуры (в данном случае 1 шт.)
587
	texture dd 0 ;указатель на память с текстурой
593
	texture dd 0 ;указатель на память с текстурой