Subversion Repositories Kolibri OS

Rev

Rev 5353 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5353 Rev 8408
Line 1... Line 1...
1
use32
1
use32
2
	org 0x0
2
	org 0
3
	db 'MENUET01'
3
	db 'MENUET01'
4
	dd 0x1
-
 
5
	dd start
-
 
6
	dd i_end
-
 
7
	dd mem,stacktop
-
 
8
	dd 0,cur_dir_path
4
	dd 1,start,i_end,mem,stacktop,0,cur_dir_path
9
 
5
 
10
include '../../../../../../programs/proc32.inc'
6
include '../../../../../proc32.inc'
11
include '../../../../../../programs/macros.inc'
7
include '../../../../../macros.inc'
-
 
8
include '../../../../../KOSfuncs.inc'
12
include '../../../../../../programs/develop/libraries/box_lib/load_lib.mac'
9
include '../../../../../load_lib.mac'
13
include '../../../../../../programs/dll.inc'
10
include '../../../../../dll.inc'
14
include '../opengl_const.inc'
11
include '../opengl_const.inc'
Line 15... Line 12...
15
 
12
 
Line 16... Line 13...
16
@use_library
13
@use_library
17
 
14
 
18
align 4
15
align 4
19
start:
-
 
20
	load_library name_tgl, cur_dir_path, library_path, system_path, \
16
start:
21
		err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
17
	load_library name_tgl, library_path, system_path, import_tinygl
Line 22... Line 18...
22
	cmp eax,-1
18
	cmp eax,-1
Line 23... Line 19...
23
	jz button.exit
19
	jz button.exit
24
 
20
 
25
	mcall 40,0x27
21
	mcall SF_SET_EVENTS_MASK,0x27
26
 
22
 
Line 35... Line 31...
35
red_win:
31
red_win:
36
	call draw_window
32
	call draw_window
Line 37... Line 33...
37
 
33
 
38
align 4
34
align 4
39
still:
35
still:
40
	mcall 10
36
	mcall SF_WAIT_EVENT
41
	cmp al,1
37
	cmp al,1
42
	jz red_win
38
	jz red_win
43
	cmp al,2
39
	cmp al,2
44
	jz key
40
	jz key
Line 47... Line 43...
47
	jmp still
43
	jmp still
Line 48... Line 44...
48
 
44
 
49
align 4
45
align 4
50
draw_window:
46
draw_window:
51
	pushad
47
	pushad
Line 52... Line -...
52
	mcall 12,1
-
 
53
 
48
	mcall SF_REDRAW,SSF_BEGIN_DRAW
54
	mov edx,0x33ffffff ;0x73ffffff
49
 
Line 55... Line 50...
55
	mcall 0,(50 shl 16)+430,(30 shl 16)+400,,,caption
50
	mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,0x33ffffff,,caption
56
	stdcall [kosglSwapBuffers]
51
	call [kosglSwapBuffers]
57
 
52
 
Line 58... Line 53...
58
	mcall 12,2
53
	mcall SF_REDRAW,SSF_END_DRAW
59
	popad
54
	popad
60
	ret
55
	ret
Line 61... Line 56...
61
 
56
 
62
align 4
57
align 4
Line 63... Line 58...
63
key:
58
key:
64
	mcall 2
59
	mcall SF_GET_KEY
65
 
60
 
66
	cmp ah,27 ;Esc
61
	cmp ah,27 ;Esc
67
	je button.exit
62
	je button.exit
68
 
63
 
69
	cmp ah,61 ;+
64
	cmp ah,61 ;+
70
	jne @f
65
	jne @f
71
	    fld dword[scale]
66
	    fld dword[scale]
72
	    fadd dword[delt_sc]
67
	    fadd dword[delt_sc]
73
	    fstp dword[scale]
68
	    fstp dword[scale]
74
	    call draw_3d
69
	    call draw_3d
75
	    stdcall [kosglSwapBuffers]
70
	    call [kosglSwapBuffers]
76
	@@:
71
	@@:
77
	cmp ah,45 ;-
72
	cmp ah,45 ;-
78
	jne @f
73
	jne @f
79
	    fld dword[scale]
74
	    fld dword[scale]
80
	    fsub dword[delt_sc]
75
	    fsub dword[delt_sc]
81
	    fstp dword[scale]
76
	    fstp dword[scale]
82
	    call draw_3d
77
	    call draw_3d
83
	    stdcall [kosglSwapBuffers]
78
	    call [kosglSwapBuffers]
84
	@@:
79
	@@:
85
	cmp ah,178 ;Up
80
	cmp ah,178 ;Up
86
	jne @f
81
	jne @f
87
		fld dword[angle_y]
82
		fld dword[angle_y]
88
		fadd dword[delt_size]
83
		fadd dword[delt_size]
89
		fstp dword[angle_y]
84
		fstp dword[angle_y]
90
		call draw_3d
85
		call draw_3d
91
		stdcall [kosglSwapBuffers]
86
		call [kosglSwapBuffers]
92
	@@:
87
	@@:
93
	cmp ah,177 ;Down
88
	cmp ah,177 ;Down
94
	jne @f
89
	jne @f
95
		fld dword[angle_y]
90
		fld dword[angle_y]
96
		fsub dword[delt_size]
91
		fsub dword[delt_size]
97
		fstp dword[angle_y]
92
		fstp dword[angle_y]
98
		call draw_3d
93
		call draw_3d
99
		stdcall [kosglSwapBuffers]
94
		call [kosglSwapBuffers]
100
	@@:
95
	@@:
101
	cmp ah,176 ;Left
96
	cmp ah,176 ;Left
102
	jne @f
97
	jne @f
103
		fld dword[angle_z]
98
		fld dword[angle_z]
104
		fadd dword[delt_size]
99
		fadd dword[delt_size]
105
		fstp dword[angle_z]
100
		fstp dword[angle_z]
106
		call draw_3d
101
		call draw_3d
107
		stdcall [kosglSwapBuffers]
102
		call [kosglSwapBuffers]
108
	@@:
103
	@@:
109
	cmp ah,179 ;Right
104
	cmp ah,179 ;Right
110
	jne @f
105
	jne @f
Line 111... Line 106...
111
		fld dword[angle_z]
106
		fld dword[angle_z]
Line 112... Line 107...
112
		fsub dword[delt_size]
107
		fsub dword[delt_size]
113
		fstp dword[angle_z]
108
		fstp dword[angle_z]
114
		call draw_3d
109
		call draw_3d
115
		stdcall [kosglSwapBuffers]
110
		call [kosglSwapBuffers]
116
	@@:
111
	@@:
117
 
112
 
118
	jmp still
113
	jmp still
Line 119... Line 114...
119
 
114
 
120
align 4
115
align 4
121
button:
-
 
122
	mcall 17
-
 
123
	cmp ah,1
-
 
Line 124... Line 116...
124
	jne still
116
button:
125
.exit:
117
	mcall SF_GET_BUTTON
126
	mcall -1
118
	cmp ah,1
127
 
119
	jne still
Line 128... Line 120...
128
 
120
.exit:
129
align 4
121
	mcall SF_TERMINATE_PROCESS
130
caption db 'Test opengl 1.1 arrays, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0
122
 
131
align 4
123
 
Line 150... Line 142...
150
	stdcall [glEnableClientState], GL_COLOR_ARRAY     ;включаем режим рисования цветов
142
	stdcall [glEnableClientState], GL_COLOR_ARRAY     ;включаем режим рисования цветов
151
	stdcall [glDrawArrays], GL_POLYGON, 0, 4 ;рисование полигона из 4-х вершин (равносильно вызову 8-ми функций: 4 - для вершин, 4 - для цетов)
143
	stdcall [glDrawArrays], GL_POLYGON, 0, 4 ;рисование полигона из 4-х вершин (равносильно вызову 8-ми функций: 4 - для вершин, 4 - для цетов)
152
	stdcall [glDisableClientState], GL_COLOR_ARRAY    ;отключаем режим рисования цветов
144
	stdcall [glDisableClientState], GL_COLOR_ARRAY    ;отключаем режим рисования цветов
153
	stdcall [glDisableClientState], GL_VERTEX_ARRAY   ;отключаем режим рисования вершин
145
	stdcall [glDisableClientState], GL_VERTEX_ARRAY   ;отключаем режим рисования вершин
Line 154... Line 146...
154
 
146
 
155
stdcall [glPopMatrix]
147
call [glPopMatrix]
Line 156... Line 148...
156
ret
148
ret
157
 
149
 
158
align 4
150
align 4
Line 166... Line 158...
166
Vertex dd -0.9, -0.9, -0.9, 0.9, 0.9, 0.9, 0.9, -0.9 ;4 вершины (по 2 координаты)
158
Vertex dd -0.9, -0.9, -0.9, 0.9, 0.9, 0.9, 0.9, -0.9 ;4 вершины (по 2 координаты)
167
Colors dd 0.0, 0.5, 1.0, 1.0, 0.0, 0.5, 1.0, 1.0, 1.0, 0.5, 1.0, 0.0 ;4 цвета (по 3 параметра)
159
Colors dd 0.0, 0.5, 1.0, 1.0, 0.0, 0.5, 1.0, 1.0, 1.0, 0.5, 1.0, 0.0 ;4 цвета (по 3 параметра)
Line 168... Line 160...
168
 
160
 
169
;--------------------------------------------------
161
;--------------------------------------------------
170
align 4
162
align 4
Line 171... Line 163...
171
import_lib_tinygl:
163
import_tinygl:
172
 
164
 
173
macro E_LIB n
165
macro E_LIB n
174
{
166
{
Line 183... Line 175...
183
include '../export.inc'
175
include '../export.inc'
Line 184... Line 176...
184
 
176
 
185
;--------------------------------------------------
177
;--------------------------------------------------
186
system_path db '/sys/lib/'
178
system_path db '/sys/lib/'
187
name_tgl db 'tinygl.obj',0
-
 
188
err_message_found_lib db 'Sorry I cannot load library tinygl.obj',0
-
 
189
head_f_i:
-
 
190
head_f_l db 'System error',0
-
 
191
err_message_import db 'Error on load import library tinygl.obj',0
179
name_tgl db 'tinygl.obj',0
Line -... Line 180...
-
 
180
;--------------------------------------------------
192
;--------------------------------------------------
181
 
-
 
182
align 4
-
 
183
i_end:
-
 
184
	ctx1 rb 28 ;sizeof.TinyGLContext = 28
193
 
185
	cur_dir_path rb 4096
194
i_end:
186
	library_path rb 4096
195
	rb 4096
-
 
196
stacktop:
-
 
197
cur_dir_path:
-
 
198
	rb 4096
-
 
199
library_path:
187
	rb 4096