Subversion Repositories Kolibri OS

Rev

Rev 5159 | Rev 8062 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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