Subversion Repositories Kolibri OS

Rev

Rev 6648 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6648 Rev 6769
1
; DATA AREA  ************************************
1
; DATA AREA  ************************************
2
 
2
 
3
	i3		dw	3
3
	i3		dw	3
4
	i256		dw	256
4
	i256		dw	256
5
	i255d		dd	255
5
	i255d		dd	255
6
	dot_max 	dd	1.0	 ; dot product max and min
6
	dot_max 	dd	1.0	 ; dot product max and min
7
	dot_min 	dd	0.0
7
	dot_min 	dd	0.0
8
	env_const	dd	1.05
8
	env_const	dd	1.05
9
	correct_tex	dw	255
9
	correct_tex	dw	255
10
	tex_x_div2	dw	TEX_X  / 2
10
	tex_x_div2	dw	TEX_X  / 2
11
	tex_y_div2	dw	TEX_Y  / 2
11
	tex_y_div2	dw	TEX_Y  / 2
12
	xobs		dw	0 ;SIZE_X / 2 ;200 ;observer  = camera
12
	xobs		dw	0 ;SIZE_X / 2 ;200 ;observer  = camera
13
	yobs		dw	0 ;SIZE_Y / 2 ;200 ;coordinates
13
	yobs		dw	0 ;SIZE_Y / 2 ;200 ;coordinates
14
	zobs		dw	-500
14
	zobs		dw	-1000
15
     ;   size_x          dw      SIZE_X
15
     ;   size_x          dw      SIZE_X
16
     ;   size_y          dw      SIZE_Y
16
     ;   size_y          dw      SIZE_Y
17
 
17
 
18
	re_alloc_flag db 0
18
	re_alloc_flag db 0
19
	angle_counter dw 0
19
	angle_counter dw 0
20
	piD180	      dd 0.017453292519943295769236907684886
20
	piD180	      dd 0.017453292519943295769236907684886
21
	piD128	      dd 0.024544
21
	piD128	      dd 0.024544
22
	const6	      dw 6,6,6,6
22
	const6	      dw 6,6,6,6
23
	x_offset      dw SIZE_X / 2
23
	x_offset      dw SIZE_X / 2
24
	y_offset      dw SIZE_Y / 2
24
	y_offset      dw SIZE_Y / 2
25
	z_offset      dw 0
25
	z_offset      dw 0
26
	rsscale       dd 175.0		 ; next real scale
26
	rsscale       dd 175.0		 ; next real scale
27
	vect_x	      dw SIZE_X / 2
27
	vect_x	      dw SIZE_X / 2
28
	vect_y	      dw SIZE_Y / 2
28
	vect_y	      dw SIZE_Y / 2
29
	vect_z	      dw 0
29
	vect_z	      dw 0
30
	angle_x       dw 0
30
	angle_x       dw 0
31
	angle_y       dw 0
31
	angle_y       dw 0
32
	angle_z       dw 0
32
	angle_z       dw 0
33
	sin_amplitude dd 50
33
	sin_amplitude dd 50
34
	sin_frq       dd 0.7
34
	sin_frq       dd 0.7
35
	sin_delta     dd 0.07	 ; wave frequency granularity
35
	sin_delta     dd 0.07	 ; wave frequency granularity
36
	convert_muler:
36
	convert_muler:
37
		      dd 1, 10, 100, 1000, 10000
37
		      dd 1, 10, 100, 1000, 10000
38
	XYZpartices:
38
	XYZpartices:
39
		      db 'X','Y','Z'
39
		      db 'X','Y','Z'
40
	i10	      dw 10
40
	i10	      dw 10
-
 
41
	offset_y:
-
 
42
	i25	      dw 25  ; screen buff offset
-
 
43
	offset_x:
-
 
44
	i5	      dw 5
-
 
45
	triangles_ptr		dd 0
41
	draw_win_at_first db 1
46
	triangles_w_z_ptr	dd 0
-
 
47
	triangles_normals_ptr	dd 0
-
 
48
	points_normals_ptr	dd 0
-
 
49
	points_normals_rot_ptr	dd 0
-
 
50
	points_ptr		dd 0
-
 
51
	points_rotated_ptr	dd 0
-
 
52
	points_translated_ptr	dd 0
-
 
53
	screen_ptr		dd 0
-
 
54
	Zbuffer_ptr		dd 0
-
 
55
	vertices_index_ptr	dd 0
-
 
56
 
42
 
57
 
-
 
58
     ;   draw_win_at_first db 1
-
 
59
	vertex_edit_no	  dw 0
-
 
60
	edit_start_x:
-
 
61
			  dw 0
-
 
62
	edit_start_y	  dw 0
-
 
63
	edit_end_x:
-
 
64
			  dw 0
-
 
65
	edit_end_y	  dw 0
-
 
66
	mouse_state	      dd 0
43
	menu:
67
	menu:
44
	       db 2		   ; button number  = index
68
	       db 2		   ; button number  = index
45
	       db 'rotary    '	   ; label
69
	       db 'rotary    '	   ; label
46
	       db 3		   ; max flag  + 1 , if = 255, no flag
70
	       db 3		   ; max flag  + 1 , if = 255, no flag
47
 r_flag        db 1		   ; flag
71
 r_flag        db 1		   ; flag
48
	       dd axl_f 	   ; offset to flags description
72
	       dd axl_f 	   ; offset to flags description
49
 
73
 
50
	       db 3
74
	       db 3
51
	       db 'shd. model'
75
	       db 'shd. model'
52
	       db 12
76
	       db 12
53
 dr_flag       db 0
77
 dr_flag       db 0
54
	       dd shd_f
78
	       dd shd_f
55
 
79
 
56
	       db 4
80
	       db 4
57
	       db 'speed     '
81
	       db 'speed     '
58
	       db 2
82
	       db 2
59
 speed_flag    db 0
83
 speed_flag    db 0
60
	       dd spd_f
84
	       dd spd_f
61
 
85
 
62
	       db 5
86
	       db 5
63
	       db 'zoom out  '
87
	       db 'zoom out  '
64
	       db 255
88
	       db 255
65
	       db ?
89
	       db ?
66
	       dd ?
90
	       dd ?
67
 
91
 
68
	       db 6
92
	       db 6
69
	       db 'zoom in   '
93
	       db 'zoom in   '
70
	       db 255
94
	       db 255
71
	       db ?
95
	       db ?
72
	       dd ?
96
	       dd ?
73
 
97
 
74
	       db 7
98
	       db 7
75
	       db 'catmull   '
99
	       db 'catmull   '
76
	       db 2
100
	       db 2
77
catmull_flag   db 1
101
catmull_flag   db 1
78
	       dd onoff_f
102
	       dd onoff_f
79
 
103
 
80
	       db 8
104
	       db 8
81
	       db 'culling   '
105
	       db 'culling   '
82
	       db 2
106
	       db 2
83
culling_flag   db 0
107
culling_flag   db 0
84
	       dd onoff_f
108
	       dd onoff_f
85
 
109
 
86
	       db 9
110
	       db 9
87
	       db 'rand.light'
111
	       db 'rand.light'
88
	       db 255
112
	       db 255
89
	       db ?
113
	       db ?
90
	       dd ?
114
	       dd ?
91
 
115
 
92
	       db 10
116
	       db 10
93
	       db 'blur      '
117
	       db 'blur      '
94
	       db 6
118
	       db 6
95
blur_flag      db 0
119
blur_flag      db 0
96
	       dd blur_f
120
	       dd blur_f
97
 
121
 
98
	       db 11
122
	       db 11
99
	       db 'mirror x  '
123
	       db 'mirror x  '
100
	       db 2
124
	       db 2
101
mirr_x_flag    db 0
125
mirr_x_flag    db 0
102
	       dd onoff_f
126
	       dd onoff_f
103
 
127
 
104
	       db 12
128
	       db 12
105
	       db 'mirror y  '
129
	       db 'mirror y  '
106
	       db 2
130
	       db 2
107
mirr_y_flag    db 0
131
mirr_y_flag    db 0
108
	       dd onoff_f
132
	       dd onoff_f
109
 
133
 
110
	       db 13
134
	       db 13
111
	       db 'mirror z  '
135
	       db 'mirror z  '
112
	       db 2
136
	       db 2
113
mirr_z_flag    db 0
137
mirr_z_flag    db 0
114
	       dd onoff_f
138
	       dd onoff_f
115
 
139
 
116
	       db 14
140
	       db 14
117
	       db 'xchg      '
141
	       db 'xchg      '
118
	       db 4
142
	       db 4
119
xchg_flag      db 0
143
xchg_flag      db 0
120
	       dd xchg_f
144
	       dd xchg_f
121
 
145
 
122
	       db 15
146
	       db 15
123
	       db 'emboss    '
147
	       db 'emboss    '
124
	       db 2
148
	       db 2
125
emboss_flag    db 0
149
emboss_flag    db 0
126
	       dd onoff_f
150
	       dd onoff_f
127
 
151
 
128
	       db 16
152
	       db 16
129
	       db 'fire      '
153
	       db 'fire      '
130
	       db 3
154
	       db 3
131
fire_flag      db 0
155
fire_flag      db 0
132
	       dd blur_f
156
	       dd blur_f
133
 
157
 
134
	       db 17
158
	       db 17
135
	       db 'move      '
159
	       db 'move      '
136
	       db 3
160
	       db 3
137
move_flag      db 0
161
move_flag      db 0
138
	       dd move_f
162
	       dd move_f
139
 
163
 
140
		  db 18
164
		  db 18
141
		  db 'generate  '
165
		  db 'generate  '
142
		  db 6
166
		  db 6
143
generator_flag	  db 0
167
generator_flag	  db 0
144
		  dd blur_f
168
		  dd blur_f
145
 
169
 
146
		  db 19
170
		  db 19
147
		  db 'bumps     '
171
		  db 'bumps     '
148
		  db 2
172
		  db 2
149
bumps_flag	  db 0
173
bumps_flag	  db 0
150
		  dd bumps_f
174
		  dd bumps_f
151
 
175
 
152
		  db 20
176
		  db 20
153
		  db 'bumps deep'
177
		  db 'bumps deep'
154
		  db 4
178
		  db 4
155
bumps_deep_flag   db 3
179
bumps_deep_flag   db 3
156
		  dd bumps_d_f
180
		  dd bumps_d_f
157
 
181
 
158
		  db 21
182
		  db 21
159
		  db 're-map tex'
183
		  db 're-map tex'
160
		  db 255
184
		  db 255
161
map_tex_flag	  db ? ;1
185
map_tex_flag	  db ? ;1
162
		  dd ?	;bumps_d_f
186
		  dd ?	;bumps_d_f
163
 
187
 
164
		  db 22
188
		  db 22
165
		  db 'bright +  '
189
		  db 'bright +  '
166
		  db 6
190
		  db 6
167
inc_bright_flag   db 0 ;1
191
inc_bright_flag   db 0 ;1
168
		  dd blur_f
192
		  dd blur_f
169
 
193
 
170
		  db 23
194
		  db 23
171
		  db 'bright -  '
195
		  db 'bright -  '
172
		  db 6
196
		  db 6
173
dec_bright_flag   db 0 ;1
197
dec_bright_flag   db 0 ;1
174
		  dd blur_f
198
		  dd blur_f
175
 
199
 
176
		  db 24
200
		  db 24
177
		  db 'wav effect'
201
		  db 'wav effect'
178
		  db 2
202
		  db 2
179
sinus_flag	  db 0
203
sinus_flag	  db 0
180
		  dd onoff_f
204
		  dd onoff_f
-
 
205
 
-
 
206
 
-
 
207
		  db 25
-
 
208
		  db 'editor    '
-
 
209
		  db 2
-
 
210
 edit_flag	  db 0
181
 
211
		  dd onoff_f
182
;                  db 24
212
;                  db 24
183
;                  db 'max       '
213
;                  db 'max       '
184
;                  db 2
214
;                  db 2
185
;max_flag          db 0 ;1
215
;max_flag          db 0 ;1
186
;                  dd blur_f
216
;                  dd blur_f
187
;
217
;
188
;                  db 25
218
;                  db 25
189
;                  db 'min       '
219
;                  db 'min       '
190
;                  db 2
220
;                  db 2
191
;min_flag          db 0 ;1
221
;min_flag          db 0 ;1
192
;                  dd blur_f
222
;                  dd blur_f
193
 
223
 
194
 
224
 
195
 
225
 
196
;                  db 21
226
;                  db 21
197
;                  db 'light No. '
227
;                  db 'light No. '
198
;                  db 3
228
;                  db 3
199
;light_no_flag     db 0
229
;light_no_flag     db 0
200
;                  dd bumps_d_f
230
;                  dd bumps_d_f
201
 
231
 
202
;                db 22
232
;                db 22
203
;                db 'light comp'
233
;                db 'light comp'
204
;                db 3
234
;                db 3
205
;light_comp_flag db 0
235
;light_comp_flag db 0
206
;                dd light_component_f
236
;                dd light_component_f
207
 
237
 
208
;;                db 23
238
;;                db 23
209
;;                db 'col. comp'
239
;;                db 'col. comp'
210
;;                db 3
240
;;                db 3
211
;;color_comp_flag db 0
241
;;color_comp_flag db 0
212
;;                dd color_component_f
242
;;                dd color_component_f
213
 
243
 
214
 
244
 
215
	       db -1	   ; end mark
245
	       db -1	   ; end mark
216
 
246
 
217
 
247
 
218
flags:		   ; flags description
248
flags:		   ; flags description
219
 shd_f:
249
 shd_f:
220
    db 'flat'
250
    db 'flat'
221
    db 'grd '
251
    db 'grd '
222
    db 'env '
252
    db 'env '
223
    db 'bump'
253
    db 'bump'
224
    db 'tex '
254
    db 'tex '
225
    db 'pos '
255
    db 'pos '
226
    db 'dots'
256
    db 'dots'
227
    db 'txgr'
257
    db 'txgr'
228
    db '2tex'
258
    db '2tex'
229
    db 'btex'
259
    db 'btex'
230
    db 'cenv'
260
    db 'cenv'
231
    db 'grdl'
261
    db 'grdl'
232
 spd_f:
262
 spd_f:
233
    db 'idle'
263
    db 'idle'
234
    db 'full'
264
    db 'full'
235
 axl_f:
265
 axl_f:
236
    db ' y  '
266
    db ' y  '
237
    db 'x+y '
267
    db 'x+y '
238
    db ' x  '
268
    db ' x  '
239
 onoff_f:
269
 onoff_f:
240
    db 'off '
270
    db 'off '
241
    db 'on  '
271
    db 'on  '
242
; light_component_f:
272
; light_component_f:
243
;    db 'norm '                ; diffuse   |
273
;    db 'norm '                ; diffuse   |
244
;    db 'min'                  ; specular  |  or sth. like this
274
;    db 'min'                  ; specular  |  or sth. like this
245
;    db 'max '                 ; emmisive  |
275
;    db 'max '                 ; emmisive  |
246
 
276
 
247
;; color_component_f:
277
;; color_component_f:
248
;;    db ' r  '
278
;;    db ' r  '
249
;;    db ' g  '
279
;;    db ' g  '
250
;;    db ' b  '
280
;;    db ' b  '
251
 
281
 
252
	  blur_f:	       ; blur, fire
282
	  blur_f:	       ; blur, fire
253
	    db 'off '
283
	    db 'off '
254
bumps_d_f:  db ' 1  '
284
bumps_d_f:  db ' 1  '
255
	    db ' 2  '
285
	    db ' 2  '
256
	    db ' 3  '
286
	    db ' 3  '
257
	    db ' 4  '
287
	    db ' 4  '
258
	    db ' 5  '
288
	    db ' 5  '
259
 
289
 
260
 xchg_f:
290
 xchg_f:
261
    db 'no  '
291
    db 'no  '
262
    db 'x<>y'
292
    db 'x<>y'
263
    db 'z<>x'
293
    db 'z<>x'
264
    db 'y<>z'
294
    db 'y<>z'
265
 move_f:
295
 move_f:
266
    db 'obj '
296
    db 'obj '
267
    db 'camr'
297
    db 'camr'
268
    db 'wave'
298
    db 'wave'
269
;    db 'lght'
299
;    db 'lght'
270
 bumps_f:
300
 bumps_f:
271
    db 'rand'
301
    db 'rand'
272
    db 'tex '
302
    db 'tex '
273
;    db 'cscl'
303
;    db 'cscl'
274
base_vector:
304
base_vector:
275
    labelvector:
305
    labelvector:
276
	db   'add vector'
306
	db   'add vector'
277
    labelvectorend:
307
    labelvectorend:
278
    labelyminus:
308
    labelyminus:
279
	db   'y -'
309
	db   'y -'
280
    labelyminusend:
310
    labelyminusend:
281
    labelzplus:
311
    labelzplus:
282
	db   'z +'
312
	db   'z +'
283
    labelzplusend:
313
    labelzplusend:
284
    labelxminus:
314
    labelxminus:
285
	db   'x -'
315
	db   'x -'
286
    labelxminusend:
316
    labelxminusend:
287
    labelxplus:
317
    labelxplus:
288
	db   'x +'
318
	db   'x +'
289
    labelxplusend:
319
    labelxplusend:
290
    labelzminus:
320
    labelzminus:
291
	db   'z -'
321
	db   'z -'
292
    labelzminusend:
322
    labelzminusend:
293
    labelyplus:
323
    labelyplus:
294
	db   'y +'
324
	db   'y +'
295
    labelyplusend:
325
    labelyplusend:
296
 
326
 
297
;navigation_size = $ - labelvector
327
;navigation_size = $ - labelvector
298
;        db   'set color '
328
;        db   'set color '
299
;        db   'r -'
329
;        db   'r -'
300
;        db   'g +'
330
;        db   'g +'
301
;        db   'b -'
331
;        db   'b -'
302
;        db   'b +'
332
;        db   'b +'
303
;        db   'g -'
333
;        db   'g -'
304
;        db   'r +'
334
;        db   'r +'
305
 
335
 
306
    labelt:
336
    labelt:
307
	db   'DEUS CARITAS EST'
337
	db   'DEUS CARITAS EST'
308
      if Ext=MMX
338
      if Ext=MMX
309
	db   ' (MMX)'
339
	db   ' (MMX)'
310
      end if
340
      end if
311
      if Ext=SSE
341
      if Ext=SSE
312
	db   ' (SSE)'
342
	db   ' (SSE)'
313
      end if
343
      end if
314
      if Ext=SSE2
344
      if Ext=SSE2
315
	db   ' (SSE2)'
345
	db   ' (SSE2)'
316
      end if
346
      end if
317
	db   ' 0.067',0
347
	db   ' 0.068',0
318
    labellen:
348
    labellen:
319
	STRdata db '-1        '
349
	STRdata db '-1        '
320
 
350
 
321
    all_lights_size dw lightsend-lights
351
    all_lights_size dw lightsend-lights
322
 
352
 
323
if USE_LFN
353
if USE_LFN
324
 
354
 
325
	file_info:
355
	file_info:
326
		dd	0
356
		dd	0
327
		dd	0
357
		dd	0
328
		dd	0
358
		dd	0
329
	 fsize	dd	0 ;180000 ; sizeof(workarea)
359
	 fsize	dd	0 ;180000 ; sizeof(workarea)
330
	 fptr	dd	0 ;workarea
360
	 fptr	dd	0 ;workarea
331
	file_name:
361
	file_name:
332
		db	'/rd/1/3d/house.3ds',0
362
		db	'/rd/1/3d/house.3ds',0
333
 
363
 
334
else
364
else
335
 
365
 
336
	file_info:
366
	file_info:
337
		dd 0
367
		dd 0
338
		dd 0
368
		dd 0
339
	 fsize	dd 1
369
	 fsize	dd 1
340
		dd workarea
370
		dd workarea
341
		dd hash_table
371
		dd hash_table
342
	file_name:
372
	file_name:
343
		db   '/rd/1/teapot.3ds',0
373
		db   '/rd/1/teapot.3ds',0
344
end if
374
end if
345
 
375
 
346
I_END:
376
  ;I_END:
347
 
377
 
348
      rb 256
378
      rb 256
349
 
379
 
350
;=============================================
380
;=============================================
351
lights:
381
lights:
352
     .light_vector	  dd	  0.0,0.0,-1.0	 ; x,y,z  Z cooficient of vector must be negative
382
     .light_vector	  dd	  0.0,0.0,-1.0	 ; x,y,z  Z cooficient of vector must be negative
353
     .orginal_color_r	  db	  1		 ;  +12
383
     .orginal_color_r	  db	  1		 ;  +12
354
     .orginal_color_g	  db	  255		   ;
384
     .orginal_color_g	  db	  255		   ;
355
     .orginal_color_b	  db	  1		 ;  +14
385
     .orginal_color_b	  db	  1		 ;  +14
356
     .min_color_r	  db	  1		 ;
386
     .min_color_r	  db	  1		 ;
357
     .min_color_g	  db	  1		 ;  +16
387
     .min_color_g	  db	  1		 ;  +16
358
     .min_color_b	  db	  1		 ;
388
     .min_color_b	  db	  1		 ;
359
     .max_color_r	  db	  255		 ;
389
     .max_color_r	  db	  255		 ;
360
     .max_color_g	  db	  255		 ;
390
     .max_color_g	  db	  255		 ;
361
     .max_color_b	  db	  255		 ;
391
     .max_color_b	  db	  255		 ;
362
     .shine		  db	  24		 ;  +21
392
     .shine		  db	  24		 ;  +21
363
 ;    LIGHT_SIZE equ ($-lights)
393
 ;    LIGHT_SIZE equ ($-lights)
364
 
394
 
365
	dd	-0.5,-0.5,-1.0	 ; x,y,z ;  .light_vector
395
	dd	-0.5,-0.5,-1.0	 ; x,y,z ;  .light_vector
366
	db	5		 ; .orginal_color_r
396
	db	5		 ; .orginal_color_r
367
	db	1		 ; .orginal_color_g
397
	db	1		 ; .orginal_color_g
368
	db	135		 ; .orginal_color_b
398
	db	135		 ; .orginal_color_b
369
	db	19		 ; .min_color_r
399
	db	19		 ; .min_color_r
370
	db	19		 ; .min_color_g
400
	db	19		 ; .min_color_g
371
	db	19		 ; .min_color_b
401
	db	19		 ; .min_color_b
372
	db	255		 ; .max_color_r
402
	db	255		 ; .max_color_r
373
	db	255		 ; .max_color_g
403
	db	255		 ; .max_color_g
374
	db	255		 ; .max_color_b
404
	db	255		 ; .max_color_b
375
	db	16		 ; .shine
405
	db	16		 ; .shine
376
 
406
 
377
	dd	0.5,0.5,-1.0	; x,y,z ;  .light_vector
407
	dd	0.5,0.5,-1.0	; x,y,z ;  .light_vector
378
	db	135		; .orginal_color_r
408
	db	135		; .orginal_color_r
379
	db	1		; .orginal_color_g
409
	db	1		; .orginal_color_g
380
	db	1		; .orginal_color_b
410
	db	1		; .orginal_color_b
381
	db	19		; .min_color_r
411
	db	19		; .min_color_r
382
	db	19		; .min_color_g
412
	db	19		; .min_color_g
383
	db	19		; .min_color_b
413
	db	19		; .min_color_b
384
	db	255		; .max_color_r
414
	db	255		; .max_color_r
385
	db	255		; .max_color_g
415
	db	255		; .max_color_g
386
	db	20		; .max_color_b
416
	db	20		; .max_color_b
387
	db	16		; .shine
417
	db	16		; .shine
388
;        ALL_LIGHTS_SIZE equ ($ - lights)
418
;        ALL_LIGHTS_SIZE equ ($ - lights)
389
;#all_lights_size dw ($ - lights) ;ALL_LIGHTS_SIZE
419
;#all_lights_size dw ($ - lights) ;ALL_LIGHTS_SIZE
390
;===============================================
420
;===============================================
391
 
421
 
392
lightsend:
422
lightsend:
-
 
423
align 16
-
 
424
    emboss_bias:
-
 
425
	   dw 128, 128, 128, 128, 128, 128, 128, 128
-
 
426
 
393
 
427
I_END:
394
if USE_LFN = 0
428
if USE_LFN = 0
395
hash_table rb 4096
429
hash_table rb 4096
396
SourceFile:
430
SourceFile:
397
workarea   rb 180000
431
workarea   rb 180000
398
else
432
else
399
SourceFile:
433
SourceFile:
400
workarea   rb 180
434
workarea   rb 180
401
end if
435
end if
402
EndFile   dd ?
436
EndFile   dd ?
403
align 8
437
align 8
404
	sinbeta dd	?;+32
438
	sinbeta dd	?;+32
405
	cosbeta dd	?
439
	cosbeta dd	?
406
 
440
 
407
	xsub	dw	?
441
	xsub	dw	?
408
	zsub	dw	?;+40
442
	zsub	dw	?;+40
409
	ysub	dw	?
443
	ysub	dw	?
410
 
444
 
411
	xx1	dw	?
445
	xx1	dw	?
412
	yy1	dw	?
446
	yy1	dw	?
413
	zz1	dw	?;+48    xx1 + 4
447
	zz1	dw	?;+48    xx1 + 4
414
	xx2	dw	?
448
	xx2	dw	?
415
	yy2	dw	?
449
	yy2	dw	?
416
	zz2	dw	?      ; xx1 + 10
450
	zz2	dw	?      ; xx1 + 10
417
	xx3	dw	?;+56
451
	xx3	dw	?;+56
418
	yy3	dw	?
452
	yy3	dw	?
419
	zz3	dw	?      ; xx1 + 16
453
	zz3	dw	?      ; xx1 + 16
420
	col1	dd	?
454
	col1	dd	?
421
	col2	dd	?
455
	col2	dd	?
422
	col3	dd	?
456
	col3	dd	?
423
	scale	dd	? ; help scale variable
457
	scale	dd	? ; help scale variable
424
	edges_counter dd ?
458
	edges_counter dd ?
425
   ;==
459
   ;==
426
	triangles_count_var	dw ?
460
	triangles_count_var	dw ?
427
	points_count_var	dw ?
461
	points_count_var	dw ?
428
	triangles_ptr		dd ?
462
     ;   triangles_ptr           dd ?
429
	triangles_w_z_ptr	dd ?
463
     ;   triangles_w_z_ptr       dd ?
430
	triangles_normals_ptr	dd ?
464
     ;   triangles_normals_ptr   dd ?
431
	points_normals_ptr	dd ?
465
     ;   points_normals_ptr      dd ?
432
	points_normals_rot_ptr	dd ?
466
     ;   points_normals_rot_ptr  dd ?
433
	points_ptr		dd ?
467
     ;   points_ptr              dd ?
434
	points_rotated_ptr	dd ?
468
     ;   points_rotated_ptr      dd ?
435
	points_translated_ptr	dd ?
469
     ;   points_translated_ptr   dd ?
436
	screen_ptr		dd ?
470
     ;   screen_ptr              dd ?
437
	Zbuffer_ptr		dd ?
471
     ;   Zbuffer_ptr             dd ?
-
 
472
     ;   vertices_index_ptr      dd ?
-
 
473
      ;  edit_start_x:
-
 
474
				dw ?	; don't change order
-
 
475
      ;  edit_start_y            dw ?
438
     ;   edges_ptr               dd ?
476
     ;   edges_ptr               dd ?
439
	size_y_var:
477
	size_y_var:
440
				dw ?
478
				dw ?
441
	size_x_var:
479
	size_x_var:
442
				dw ?
480
				dw ?
443
	x_start:
481
	x_start:
444
				dw ?
482
				dw ?
445
	y_start:
483
	y_start:
446
				dw ?
484
				dw ?
447
 
485
 
448
   ;===
486
   ;===
449
 
487
 
450
	point_index1	    dw ?   ;-\
488
	point_index1	    dw ?   ;-\
451
	point_index2	    dw ?   ;  }  don't change order
489
	point_index2	    dw ?   ;  }  don't change order
452
	point_index3	    dw ?   ;-/
490
	point_index3	    dw ?   ;-/
453
	temp_col	    dw ?
491
	temp_col	    dw ?
454
	high		    dd ?
492
	high		    dd ?
455
	rand_seed	    dw ?
493
	rand_seed	    dw ?
456
align 8
494
align 8
457
	buffer	dq	?
495
	buffer	dq	?
458
	errr	dd	?
496
	errr	dd	?
459
	drr	dd	?
497
	drr	dd	?
460
	xx	dd	?
498
	xx	dd	?
461
	yy	dd	?
499
	yy	dd	?
462
	xst	dd	?
500
	xst	dd	?
463
	yst	dd	?
501
	yst	dd	?
464
;        screen_ptr      dd     ?
502
;        screen_ptr      dd     ?
465
;        Zbuffer_ptr     dd     ?
503
;        Zbuffer_ptr     dd     ?
466
 
504
 
467
	matrix	rb 36
505
	matrix	rb 36
468
	cos_tab rd 360
506
	cos_tab rd 360
469
	sin_tab rd 360
507
	sin_tab rd 360
470
 
508
 
471
align 16
509
align 16
472
 
510
 
473
if USE_LFN = 0
511
if USE_LFN = 0
474
     points:
512
     points:
475
	rw (EndFile-SourceFile)/12*3
513
	rw (EndFile-SourceFile)/12*3
476
	points_count = ($-points)/6
514
	points_count = ($-points)/6
477
     triangles:
515
     triangles:
478
	rw  (EndFile-SourceFile)/12*3
516
	rw  (EndFile-SourceFile)/12*3
479
	triangles_count = ($-triangles)/6
517
	triangles_count = ($-triangles)/6
480
align 16
518
align 16
481
	real_points rd points_count*3 + 1
519
	real_points rd points_count*3 + 1
482
align 16
520
align 16
483
	rotated_points_r rd points_count*3 + 1
521
	rotated_points_r rd points_count*3 + 1
484
align 16
522
align 16
485
	points_rotated rw points_count*3 + 2 ;means translated
523
	points_rotated rw points_count*3 + 2 ;means translated
486
align 16
524
align 16
487
	triangles_normals rb triangles_count * 12 ;
525
	triangles_normals rb triangles_count * 12 ;
488
align 16
526
align 16
489
	point_normals rb points_count * 12  ;one 3dvector - triple float dword x,y,z
527
	point_normals rb points_count * 12  ;one 3dvector - triple float dword x,y,z
490
align 16
528
align 16
491
	point_normals_rotated rb points_count * 12
529
	point_normals_rotated rb points_count * 12
492
align 16
530
align 16
493
	triangles_normals_rotated rb triangles_count * 12
531
	triangles_normals_rotated rb triangles_count * 12
494
 
532
 
495
else
533
else
496
    points_count = 180000/6*3
534
    points_count = 180000/6*3
497
    triangles_count = 180000 / 6  ;($-triangles)/6
535
    triangles_count = 180000 / 6  ;($-triangles)/6
498
end if
536
end if
499
align 16
537
align 16
500
	label trizdd dword
538
	label trizdd dword
501
	label trizdq qword
539
	label trizdq qword
502
	triangles_with_z rw triangles_count*4 + 2 ; triangles triple dw + z position
540
	triangles_with_z rw triangles_count*4 + 2 ; triangles triple dw + z position
503
align 16
541
align 16
504
	vectors rb 24
542
	vectors rb 24
505
;align 16
543
;align 16
506
;        points_color rb 6*points_count    ; each color as word
544
;        points_color rb 6*points_count    ; each color as word
507
;        sorted_triangles rw triangles_count*3 + 2
545
;        sorted_triangles rw triangles_count*3 + 2
508
align 16
546
align 16
509
	bumpmap 	rb	TEXTURE_SIZE + 1
547
	bumpmap 	rb	TEXTURE_SIZE + 1
510
align 16
548
align 16
511
	bumpmap2	rb	TEXTURE_SIZE + 1
549
	bumpmap2	rb	TEXTURE_SIZE + 1
512
align 16
550
align 16
513
	envmap		rb	(TEXTURE_SIZE +1) * 3
551
	envmap		rb	(TEXTURE_SIZE +1) * 3
514
align 16
552
align 16
515
	envmap_cub	rb	TEX_X * 3
553
	envmap_cub	rb	TEX_X * 3
516
align 16
554
align 16
517
	texmap		rb	(TEXTURE_SIZE +1) * 3
555
	texmap		rb	(TEXTURE_SIZE +1) * 3
518
align 16
556
align 16
519
	color_map	rb	(TEXTURE_SIZE +1) * 3
557
	color_map	rb	(TEXTURE_SIZE +1) * 3
520
align 16
558
align 16
521
	tex_points	rb	points_count * 4  ; bump_map  and texture coords
559
	tex_points	rb	points_count * 4  ; bump_map  and texture coords
522
				; each point word x, word y
560
				; each point word x, word y
523
align 16
561
align 16
524
if Ext >= SSE2
562
if Ext >= SSE2
525
	sse_repository	rb	1024
563
	sse_repository	rb	1024
526
end if
564
end if
527
  ;      SourceFile:             ; source file temporally in screen area
565
  ;      SourceFile:             ; source file temporally in screen area
528
  ;      workarea        dd      ?
566
  ;      workarea        dd      ?
529
 
567
 
530
    ;    screen          rb      SIZE_X * SIZE_Y * 3   ; screen buffer
568
    ;    screen          rb      SIZE_X * SIZE_Y * 3   ; screen buffer
531
;align 16
569
;align 16
532
     ;   Z_buffer        rb      SIZE_X * SIZE_Y * 4
570
     ;   Z_buffer        rb      SIZE_X * SIZE_Y * 4
533
	procinfo:
571
	procinfo:
534
			rb     1024 ; process info
572
			rb     1024 ; process info
535
	I_Param 	rb	256
573
	I_Param 	rb	256
536
	memStack	rb	4000 ;memory area for stack
574
	memStack	rb	4000 ;memory area for stack
537
align  16
575
align  16
538
screen:
576
screen: