Subversion Repositories Kolibri OS

Rev

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: