Subversion Repositories Kolibri OS

Rev

Rev 8062 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8062 Rev 8069
1
use32
1
use32
2
	org 0
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
5
 
5
 
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 '../../../../../develop/libraries/box_lib/load_lib.mac'
9
include '../../../../../develop/libraries/box_lib/load_lib.mac'
10
include '../../../../../dll.inc'
10
include '../../../../../dll.inc'
11
include '../opengl_const.inc'
11
include '../opengl_const.inc'
12
 
12
 
13
@use_library
13
@use_library
14
 
14
 
15
align 4
15
align 4
16
start:
16
start:
17
	load_library name_tgl, cur_dir_path, library_path, system_path, \
17
	load_library name_tgl, cur_dir_path, library_path, system_path, \
18
		err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
18
		err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
19
	cmp eax,SF_TERMINATE_PROCESS
19
	cmp eax,SF_TERMINATE_PROCESS
20
	jz button.exit
20
	jz button.exit
21
 
21
 
22
	mcall SF_SET_EVENTS_MASK,0x27
22
	mcall SF_SET_EVENTS_MASK,0x27
23
 
23
 
24
stdcall [kosglMakeCurrent], 10,10,300,225,ctx1
24
stdcall [kosglMakeCurrent], 10,10,300,225,ctx1
25
;stdcall [glEnable], GL_DEPTH_TEST
25
;stdcall [glEnable], GL_DEPTH_TEST
26
stdcall [glClearColor], 0.2,0.0,0.2,0.0
26
stdcall [glClearColor], 0.2,0.0,0.2,0.0
27
;stdcall [glShadeModel],GL_FLAT
27
;stdcall [glShadeModel],GL_FLAT
28
 
28
 
29
call draw_3d
29
call draw_3d
30
 
30
 
31
align 4
31
align 4
32
red_win:
32
red_win:
33
	call draw_window
33
	call draw_window
34
 
34
 
35
align 16
35
align 16
36
still:
36
still:
37
	mcall SF_CHECK_EVENT
37
	mcall SF_WAIT_EVENT
38
	cmp al,1
38
	cmp al,1
39
	jz red_win
39
	jz red_win
40
	cmp al,2
40
	cmp al,2
41
	jz key
41
	jz key
42
	cmp al,3
42
	cmp al,3
43
	jz button
43
	jz button
44
	jmp still
44
	jmp still
45
 
45
 
46
align 4
46
align 4
47
draw_window:
47
draw_window:
48
	pushad
48
	pushad
49
	mcall SF_REDRAW,SSF_BEGIN_DRAW
49
	mcall SF_REDRAW,SSF_BEGIN_DRAW
50
 
50
 
51
	mov edx,0x33ffffff ;0x73ffffff
51
	mov edx,0x33ffffff ;0x73ffffff
52
	mcall SF_CREATE_WINDOW,(50 shl 16)+330,(30 shl 16)+275,,,caption
52
	mcall SF_CREATE_WINDOW,(50 shl 16)+330,(30 shl 16)+275,,,caption
53
	call [kosglSwapBuffers]
53
	call [kosglSwapBuffers]
54
 
54
 
55
	mcall SF_REDRAW,SSF_END_DRAW
55
	mcall SF_REDRAW,SSF_END_DRAW
56
	popad
56
	popad
57
	ret
57
	ret
58
 
58
 
59
align 4
59
align 4
60
key:
60
key:
61
	mcall SF_GET_KEY
61
	mcall SF_GET_KEY
62
 
62
 
63
	cmp ah,27 ;Esc
63
	cmp ah,27 ;Esc
64
	je button.exit
64
	je button.exit
65
 
65
 
66
	;178 ;Up
66
	;178 ;Up
67
	;177 ;Down
67
	;177 ;Down
68
	cmp ah,176 ;Left
68
	cmp ah,176 ;Left
69
	jne @f
69
	jne @f
70
		fld dword[angle_z]
70
		fld dword[angle_z]
71
		fadd dword[delt_size]
71
		fadd dword[delt_size]
72
		fstp dword[angle_z]
72
		fstp dword[angle_z]
73
		call draw_3d
73
		call draw_3d
74
		call [kosglSwapBuffers]
74
		call [kosglSwapBuffers]
-
 
75
		jmp still
75
	@@:
76
	@@:
76
	cmp ah,179 ;Right
77
	cmp ah,179 ;Right
77
	jne @f
78
	jne @f
78
		fld dword[angle_z]
79
		fld dword[angle_z]
79
		fsub dword[delt_size]
80
		fsub dword[delt_size]
80
		fstp dword[angle_z]
81
		fstp dword[angle_z]
81
		call draw_3d
82
		call draw_3d
82
		call [kosglSwapBuffers]
83
		call [kosglSwapBuffers]
-
 
84
		;jmp still
83
	@@:
85
	@@:
84
 
86
 
85
	jmp still
87
	jmp still
86
 
88
 
87
align 4
89
align 4
88
button:
90
button:
89
	mcall SF_GET_BUTTON
91
	mcall SF_GET_BUTTON
90
	cmp ah,1
92
	cmp ah,1
91
	jne still
93
	jne still
92
.exit:
94
.exit:
93
	mcall SF_TERMINATE_PROCESS
95
	mcall SF_TERMINATE_PROCESS
94
 
96
 
95
 
97
 
96
align 4
98
align 4
97
caption db 'Test tinygl library, [Esc] - exit, [<-] and [->] - rotate',0
99
caption db 'Test tinygl library, [Esc] - exit, [<-] and [->] - rotate',0
98
 
100
 
99
align 4
101
align 4
100
draw_3d:
102
draw_3d:
101
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
103
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
102
 
104
 
103
call [glPushMatrix]
105
call [glPushMatrix]
104
	stdcall [glRotatef], [angle_z],0.0,0.0,1.0
106
	stdcall [glRotatef], [angle_z],0.0,0.0,1.0
105
 
107
 
106
	stdcall [glBegin],GL_TRIANGLES
108
	stdcall [glBegin],GL_TRIANGLES
107
 
109
 
108
	stdcall [glColor3f],0.0, 0.0, 1.0
110
	stdcall [glColor3f],0.0, 0.0, 1.0
109
	stdcall [glVertex3f], 0.0,   0.5,   0.1
111
	stdcall [glVertex3f], 0.0,   0.5,   0.1
110
	stdcall [glVertex3f], 0.475, 0.823, 0.1
112
	stdcall [glVertex3f], 0.475, 0.823, 0.1
111
	stdcall [glVertex3f], 0.433, 0.25,  0.1
113
	stdcall [glVertex3f], 0.433, 0.25,  0.1
112
 
114
 
113
	stdcall [glColor3f],0.0, 1.0, 0.0
115
	stdcall [glColor3f],0.0, 1.0, 0.0
114
	stdcall [glVertex3f], 0.5,   0.0,   0.1
116
	stdcall [glVertex3f], 0.5,   0.0,   0.1
115
	stdcall [glVertex3f], 0.823,-0.475, 0.1
117
	stdcall [glVertex3f], 0.823,-0.475, 0.1
116
	stdcall [glVertex3f], 0.25, -0.433, 0.1
118
	stdcall [glVertex3f], 0.25, -0.433, 0.1
117
 
119
 
118
	stdcall [glColor3f],1.0, 0.0, 0.0
120
	stdcall [glColor3f],1.0, 0.0, 0.0
119
	stdcall [glVertex3f], 0.0,  -0.5,   0.1
121
	stdcall [glVertex3f], 0.0,  -0.5,   0.1
120
	stdcall [glVertex3f], -0.475,-0.823,0.1
122
	stdcall [glVertex3f], -0.475,-0.823,0.1
121
	stdcall [glVertex3f], -0.433,-0.25, 0.1
123
	stdcall [glVertex3f], -0.433,-0.25, 0.1
122
 
124
 
123
	stdcall [glVertex3f], -0.5,   0.0,   0.1
125
	stdcall [glVertex3f], -0.5,   0.0,   0.1
124
	stdcall [glColor3f],1.0, 1.0, 0.0
126
	stdcall [glColor3f],1.0, 1.0, 0.0
125
	stdcall [glVertex3f], -0.823, 0.475, 0.1
127
	stdcall [glVertex3f], -0.823, 0.475, 0.1
126
	stdcall [glColor3f],1.0, 1.0, 1.0
128
	stdcall [glColor3f],1.0, 1.0, 1.0
127
	stdcall [glVertex3f], -0.25,  0.433, 0.1
129
	stdcall [glVertex3f], -0.25,  0.433, 0.1
128
 
130
 
129
	stdcall [glEnd]
131
	call [glEnd]
130
 
132
 
131
stdcall [glPopMatrix]
133
call [glPopMatrix]
132
ret
134
ret
133
 
135
 
134
angle_z dd 15.0
136
angle_z dd 15.0
135
delt_size dd 3.0
137
delt_size dd 3.0
136
 
138
 
137
;--------------------------------------------------
139
;--------------------------------------------------
138
align 4
140
align 4
139
import_lib_tinygl:
141
import_lib_tinygl:
140
 
142
 
141
macro E_LIB n
143
macro E_LIB n
142
{
144
{
143
	n dd sz_#n
145
	n dd sz_#n
144
}
146
}
145
include '../export.inc'
147
include '../export.inc'
146
	dd 0,0
148
	dd 0,0
147
macro E_LIB n
149
macro E_LIB n
148
{
150
{
149
	sz_#n db `n,0
151
	sz_#n db `n,0
150
}
152
}
151
include '../export.inc'
153
include '../export.inc'
152
 
154
 
153
;--------------------------------------------------
155
;--------------------------------------------------
154
system_path db '/sys/lib/'
156
system_path db '/sys/lib/'
155
name_tgl db 'tinygl.obj',0
157
name_tgl db 'tinygl.obj',0
156
 
158
 
157
head_f_i:
159
head_f_i:
158
head_f_l db '"System error',0
160
head_f_l db '"System error',0
159
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
161
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,'" -tE',0
160
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
162
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,'" -tE',0
161
;--------------------------------------------------
163
;--------------------------------------------------
162
 
164
 
163
align 16
165
align 16
164
i_end:
166
i_end:
165
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
167
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
166
;sizeof.TinyGLContext = 28
168
;sizeof.TinyGLContext = 28
167
	rb 1024
169
	rb 1024
168
stacktop:
170
stacktop:
169
cur_dir_path:
171
cur_dir_path:
170
	rb 4096
172
	rb 4096
171
library_path:
173
library_path:
172
	rb 4096
174
	rb 4096
173
mem:
175
mem: