Subversion Repositories Kolibri OS

Rev

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

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