Subversion Repositories Kolibri OS

Rev

Rev 6287 | Rev 8409 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6287 Rev 8408
Line 1... Line 1...
1
use32
1
use32
2
	org 0x0
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
Line 5... Line 5...
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 '../../../../../load_lib.mac'
10
include '../../../../../dll.inc'
10
include '../../../../../dll.inc'
Line 11... Line 11...
11
include '../opengl_const.inc'
11
include '../opengl_const.inc'
Line 12... Line 12...
12
 
12
 
13
@use_library
13
@use_library
14
 
14
 
15
align 4
-
 
16
start:
15
align 4
17
	load_library name_tgl, cur_dir_path, library_path, system_path, \
16
start:
Line 18... Line 17...
18
		err_message_found_lib, head_f_l, import_lib_tinygl, err_message_import, head_f_i
17
	load_library name_tgl, library_path, system_path, import_tinygl
Line 60... Line 59...
60
align 4
59
align 4
61
draw_window:
60
draw_window:
62
	pushad
61
	pushad
63
	mcall SF_REDRAW,SSF_BEGIN_DRAW
62
	mcall SF_REDRAW,SSF_BEGIN_DRAW
Line 64... Line -...
64
 
-
 
65
	mov edx,0x33ffffff
63
 
66
	mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,,,caption
64
	mcall SF_CREATE_WINDOW,(50 shl 16)+430,(30 shl 16)+400,0x33ffffff,,caption
Line 67... Line 65...
67
	stdcall [kosglSwapBuffers]
65
	call [kosglSwapBuffers]
68
 
66
 
69
	mcall SF_REDRAW,SSF_END_DRAW
67
	mcall SF_REDRAW,SSF_END_DRAW
Line 81... Line 79...
81
	jne @f
79
	jne @f
82
		fld dword[scale]
80
		fld dword[scale]
83
		fadd dword[delt_sc]
81
		fadd dword[delt_sc]
84
		fstp dword[scale]
82
		fstp dword[scale]
85
		call draw_3d
83
		call draw_3d
86
		stdcall [kosglSwapBuffers]
84
		call [kosglSwapBuffers]
87
	@@:
85
	@@:
88
	cmp ah,45 ;-
86
	cmp ah,45 ;-
89
	jne @f
87
	jne @f
90
		fld dword[scale]
88
		fld dword[scale]
91
		fsub dword[delt_sc]
89
		fsub dword[delt_sc]
92
		fstp dword[scale]
90
		fstp dword[scale]
93
		call draw_3d
91
		call draw_3d
94
		stdcall [kosglSwapBuffers]
92
		call [kosglSwapBuffers]
95
	@@:
93
	@@:
96
	cmp ah,178 ;Up
94
	cmp ah,178 ;Up
97
	jne @f
95
	jne @f
98
		fld dword[angle_y]
96
		fld dword[angle_y]
99
		fadd dword[delt_size]
97
		fadd dword[delt_size]
100
		fstp dword[angle_y]
98
		fstp dword[angle_y]
101
		call draw_3d
99
		call draw_3d
102
		stdcall [kosglSwapBuffers]
100
		call [kosglSwapBuffers]
103
	@@:
101
	@@:
104
	cmp ah,177 ;Down
102
	cmp ah,177 ;Down
105
	jne @f
103
	jne @f
106
		fld dword[angle_y]
104
		fld dword[angle_y]
107
		fsub dword[delt_size]
105
		fsub dword[delt_size]
108
		fstp dword[angle_y]
106
		fstp dword[angle_y]
109
		call draw_3d
107
		call draw_3d
110
		stdcall [kosglSwapBuffers]
108
		call [kosglSwapBuffers]
111
	@@:
109
	@@:
112
	cmp ah,176 ;Left
110
	cmp ah,176 ;Left
113
	jne @f
111
	jne @f
114
		fld dword[angle_x]
112
		fld dword[angle_x]
115
		fadd dword[delt_size]
113
		fadd dword[delt_size]
116
		fstp dword[angle_x]
114
		fstp dword[angle_x]
117
		call draw_3d
115
		call draw_3d
118
		stdcall [kosglSwapBuffers]
116
		call [kosglSwapBuffers]
119
	@@:
117
	@@:
120
	cmp ah,179 ;Right
118
	cmp ah,179 ;Right
121
	jne @f
119
	jne @f
122
		fld dword[angle_x]
120
		fld dword[angle_x]
123
		fsub dword[delt_size]
121
		fsub dword[delt_size]
124
		fstp dword[angle_x]
122
		fstp dword[angle_x]
125
		call draw_3d
123
		call draw_3d
126
		stdcall [kosglSwapBuffers]
124
		call [kosglSwapBuffers]
127
	@@:
125
	@@:
Line 128... Line 126...
128
 
126
 
Line 129... Line 127...
129
	jmp still
127
	jmp still
Line 137... Line 135...
137
	mcall SF_TERMINATE_PROCESS
135
	mcall SF_TERMINATE_PROCESS
Line 138... Line 136...
138
 
136
 
139
 
137
 
140
align 4
-
 
141
caption db 'Test opengl 1.1 arrays, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0
-
 
142
align 4
-
 
Line 143... Line 138...
143
ctx1 db 28 dup (0) ;TinyGLContext or KOSGLContext
138
align 4
144
;sizeof.TinyGLContext = 28
139
caption db 'Test opengl 1.1 arrays, [Esc] - exit, [<-],[->],[Up],[Down] - rotate',0
145
 
140
 
146
align 4
141
align 4
Line 147... Line 142...
147
draw_3d:
142
draw_3d:
148
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
143
stdcall [glClear], GL_COLOR_BUFFER_BIT + GL_DEPTH_BUFFER_BIT ;очистим буфер цвета и глубины
149
stdcall [glPushMatrix]
144
call [glPushMatrix]
150
 
145
 
151
	;масштаб и повороты
146
	;масштаб и повороты
152
	stdcall [glTranslatef], 0.0,0.0,0.5
147
	stdcall [glTranslatef], 0.0,0.0,0.5
Line 153... Line 148...
153
	stdcall [glScalef], [scale], [scale], [scale]
148
	stdcall [glScalef], [scale], [scale], [scale]
154
	stdcall [glRotatef], [angle_z],0.0,0.0,1.0
149
	stdcall [glRotatef], [angle_z],0.0,0.0,1.0
155
	stdcall [glRotatef], [angle_y],0.0,1.0,0.0
150
	stdcall [glRotatef], [angle_y],0.0,1.0,0.0
156
	stdcall [glRotatef], [angle_x],1.0,0.0,0.0
151
	stdcall [glRotatef], [angle_x],1.0,0.0,0.0
157
 
152
 
158
	;рисование через тндексный массив
153
	;рисование через индексный массив
159
	mov eax,house_3ds ;начало внедренного файла 3ds
154
	mov eax,house_3ds ;начало внедренного файла 3ds
Line 160... Line 155...
160
	add eax,0xeb ;смещение по которому идут координаты вершин (получено с использованием программы info_3ds)
155
	add eax,0xeb ;смещение по которому идут координаты вершин (получено с использованием программы info_3ds)
161
	stdcall [glVertexPointer], 3, GL_FLOAT, 0, eax ;задаем массив для вершин, 3 - число координат для одной вершины
156
	stdcall [glVertexPointer], 3, GL_FLOAT, 0, eax ;задаем массив для вершин, 3 - число координат для одной вершины
Line 162... Line 157...
162
	stdcall [glEnableClientState], GL_VERTEX_ARRAY ;включаем режим рисования вершин
157
	stdcall [glEnableClientState], GL_VERTEX_ARRAY ;включаем режим рисования вершин
163
	stdcall [glDrawElements], GL_TRIANGLES, 0x1a6*3, GL_UNSIGNED_SHORT, Indices ;mode, count, type, *indices
158
	stdcall [glDrawElements], GL_TRIANGLES, 0x1a6*3, GL_UNSIGNED_SHORT, Indices ;mode, count, type, *indices
164
	stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин
159
	stdcall [glDisableClientState], GL_VERTEX_ARRAY ;отключаем режим рисования вершин
Line 197... Line 192...
197
include '../export.inc'
192
include '../export.inc'
Line 198... Line 193...
198
 
193
 
199
;--------------------------------------------------
194
;--------------------------------------------------
200
system_path db '/sys/lib/'
195
system_path db '/sys/lib/'
201
name_tgl db 'tinygl.obj',0
-
 
202
err_message_found_lib db 'Sorry I cannot load library ',39,'tinygl.obj',39,0
-
 
203
head_f_i:
-
 
204
head_f_l db 'System error',0
-
 
205
err_message_import db 'Error on load import library ',39,'tinygl.obj',39,0
196
name_tgl db 'tinygl.obj',0
Line -... Line 197...
-
 
197
;--------------------------------------------------
206
;--------------------------------------------------
198
 
-
 
199
align 4
-
 
200
i_end:
-
 
201
	ctx1 rb 28 ;sizeof.TinyGLContext = 28
207
 
202
cur_dir_path rb 4096
208
i_end:
203
library_path rb 4096
209
	rb 4096
-
 
210
stacktop:
-
 
211
cur_dir_path:
-
 
212
	rb 4096
-
 
213
library_path:
204
	rb 4096