Subversion Repositories Kolibri OS

Rev

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

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