Subversion Repositories Kolibri OS

Rev

Rev 8069 | 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'
8408 IgorA 9
include '../../../../../load_lib.mac'
8062 IgorA 10
include '../../../../../dll.inc'
5159 IgorA 11
include '../opengl_const.inc'
12
 
13
@use_library
14
 
15
align 4
16
start:
8408 IgorA 17
	load_library name_tgl, library_path, system_path, import_lib_tinygl
8062 IgorA 18
	cmp eax,SF_TERMINATE_PROCESS
5159 IgorA 19
	jz button.exit
20
 
8062 IgorA 21
	mcall SF_SET_EVENTS_MASK,0x27
5159 IgorA 22
 
23
stdcall [kosglMakeCurrent], 10,10,300,225,ctx1
24
stdcall [glEnable], GL_DEPTH_TEST
5163 IgorA 25
stdcall [glClearColor], 0.2,0.0,0.2,0.0
5159 IgorA 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:
8069 IgorA 35
	mcall SF_WAIT_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]
8069 IgorA 73
		jmp still
5159 IgorA 74
	@@:
75
	cmp ah,179 ;Right
76
	jne @f
77
		fld dword[angle_z]
78
		fsub dword[delt_size]
79
		fstp dword[angle_z]
80
		call draw_3d
8062 IgorA 81
		call [kosglSwapBuffers]
8069 IgorA 82
		;jmp still
5159 IgorA 83
	@@:
84
 
85
	jmp still
86
 
87
align 4
88
button:
8062 IgorA 89
	mcall SF_GET_BUTTON
5159 IgorA 90
	cmp ah,1
91
	jne still
92
.exit:
8062 IgorA 93
	mcall SF_TERMINATE_PROCESS
5159 IgorA 94
 
95
 
96
align 4
97
caption db 'Test tinygl library, [Esc] - exit, [<-] and [->] - rotate',0
98
 
99
align 4
100
draw_3d:
101
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
102
 
8062 IgorA 103
call [glPushMatrix]
5159 IgorA 104
	stdcall [glRotatef], [angle_z],0.0,0.0,1.0
105
 
106
	stdcall [glColor3f],1.0, 0.0, 0.0
107
	stdcall [glBegin],GL_POINTS
108
	stdcall [glVertex3f], 0.0,    0.5, 0.1
109
	stdcall [glVertex3f], 0.354,  0.354, 0.1
110
	stdcall [glVertex3f], 0.5,    0.0, 0.1
111
	stdcall [glVertex3f], 0.354, -0.354, 0.1
112
	stdcall [glVertex3f], 0.0,   -0.5, 0.1
113
	stdcall [glVertex3f], -0.354,-0.354, 0.1
114
	stdcall [glVertex3f], -0.5,   0.0, 0.1
115
	stdcall [glVertex3f], -0.354, 0.354, 0.1
8062 IgorA 116
	call [glEnd]
5159 IgorA 117
 
118
	stdcall [glBegin],GL_LINES
119
	stdcall [glVertex3f], 0,      0.7, 0.3
120
	stdcall [glVertex3f], 0.495,  0.495, 0.7
121
	stdcall [glVertex3f], 0.7,    0.0, 0.3
122
	stdcall [glColor3f],1.0, 1.0, 0.0
123
	stdcall [glVertex3f], 0.495, -0.495, 0.7
124
	stdcall [glVertex3f], 0.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, 0.0, 0.0
128
	stdcall [glVertex3f], -0.495, 0.495, 0.7
8062 IgorA 129
	call [glEnd]
5159 IgorA 130
 
8062 IgorA 131
call [glPopMatrix]
5159 IgorA 132
ret
133
 
134
angle_z dd 0.0
135
delt_size dd 3.0
136
 
137
;--------------------------------------------------
138
align 4
139
import_lib_tinygl:
140
 
141
macro E_LIB n
142
{
143
	n dd sz_#n
144
}
145
include '../export.inc'
146
	dd 0,0
147
macro E_LIB n
148
{
149
	sz_#n db `n,0
150
}
151
include '../export.inc'
152
 
153
;--------------------------------------------------
154
system_path db '/sys/lib/'
155
name_tgl db 'tinygl.obj',0
156
;--------------------------------------------------
157
 
8062 IgorA 158
align 16
5159 IgorA 159
i_end:
8408 IgorA 160
ctx1 rb 28 ;TinyGLContext or KOSGLContext
8062 IgorA 161
;sizeof.TinyGLContext = 28
8408 IgorA 162
cur_dir_path rb 4096
163
library_path rb 4096
5159 IgorA 164
	rb 1024
165
stacktop:
8062 IgorA 166
mem: