Subversion Repositories Kolibri OS

Rev

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

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