Subversion Repositories Kolibri OS

Rev

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

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