Subversion Repositories Kolibri OS

Rev

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

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