Subversion Repositories Kolibri OS

Rev

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

Rev 8232 Rev 8666
Line 17... Line 17...
17
   imul    ecx,eax  ;SIZE_X*SIZE_Y
17
   imul    ecx,eax  ;SIZE_X*SIZE_Y
18
   xor     eax,eax
18
   xor     eax,eax
19
   cld
19
   cld
20
   rep     stosd
20
   rep     stosd
21
   pop     edi
21
   pop     edi
22
;   movzx   eax,[sinus_flag]
-
 
23
;   mov     edx,10
-
 
24
;   mul     edx
-
 
25
;   mov     [sin_amplitude],eax
-
 
26
;   mov     [sin_frq],eax
-
 
27
   fninit
22
   fninit
28
;if Ext = SSE2
-
 
29
;   movups  xmm1,[const0123]   ; xmm1 - init values
-
 
30
;   mov     eax,0x000000ff
-
 
31
;   movd    xmm2,eax
-
 
32
;   shufps  xmm2,xmm2,0        ; xmm2 - mask value
-
 
33
;   mov     eax,4
-
 
34
;   movd    xmm3,eax
-
 
35
;   shufps  xmm3,xmm3,0
-
 
36
 .again:
23
 .again:
37
if  0
-
 
38
   fild    dword .x
-
 
39
   fidiv   [sin_frq]
-
 
40
   fsin
-
 
41
   fimul   [sin_amplitude]
-
 
42
   fiadd   dword .y
-
 
43
   fistp   dword .new_y
-
 
44
else
-
 
45
   fild    dword .x
24
   fild    dword .x
46
   fmul    [sin_frq]
25
   fmul    [sin_frq]
47
   fistp   dword .temp
26
   fistp   dword .temp
48
   mov     eax, .temp
27
   mov     eax, .temp
49
;   mov     bx, [angle_x]
-
 
50
;   add     bx, [angle_y]
-
 
51
;   movzx   ebx,bx
-
 
52
;   shr     ebx,1       ; change phase
-
 
53
;   add     eax,ebx
-
 
54
 
-
 
Line 55... Line 28...
55
 
28
 
Line 56... Line -...
56
   and     eax, 0x000000ff
-
 
57
 
-
 
58
;   cdq
-
 
59
 ;  mul     [sin_frq]
-
 
60
;   and      eax,0x000000ff
-
 
Line 61... Line 29...
61
;   and     ax,0x00ff
29
   and     eax, 0x000000ff
62
;   cwde
30
 
63
 
31
 
64
   fld     dword [sin_tab+eax*4]
32
   fld     dword [sin_tab+eax*4]
65
   fimul   dword [sin_amplitude]
33
   fimul   dword [sin_amplitude]
66
   fiadd   dword .y
34
   fiadd   dword .y
67
   fistp   dword .new_y
35
   fistp   dword .new_y
68
end if
36
 
69
   mov     eax,.new_y
37
   mov     eax,.new_y
70
   or      eax,eax
38
   or      eax,eax
Line 274... Line 242...
274
 
242
 
Line 275... Line 243...
275
end if
243
end if
Line 276... Line -...
276
 
-
 
277
ret
-
 
278
 
-
 
279
;align 16
-
 
280
; emboss_bias:
-
 
281
;    dw 128, 128, 128, 128, 128, 128, 128, 128
-
 
282
 
-
 
283
if 0  ; old emb proc
-
 
284
 
-
 
285
 ;  emboss -  after drawing all,
-
 
286
 ;  transfer screen buffer into bump map
-
 
287
 ;  and draw two bump triangles
-
 
288
 ; *************************************
-
 
289
        mov     esi,screen
-
 
290
        mov     edi,bumpmap2
-
 
291
        mov     ecx,TEXTURE_SIZE/3
-
 
292
        cld
-
 
293
if  Ext=NON
-
 
294
        xor     eax,eax
-
 
295
        xor     bh,bh
-
 
296
        xor     dh,dh
-
 
297
      @@:
-
 
298
        lodsb
-
 
299
        movzx   bx,al
-
 
300
        lodsb
-
 
301
        movzx   dx,al
-
 
302
        lodsb
-
 
303
        add     ax,bx
-
 
304
        add     ax,dx
-
 
305
      ;  cwd
-
 
306
      ;  div     [i3]
-
 
307
 ;;       push    ax
-
 
308
 ;;       pop     bx
-
 
309
 ;;       shr     bx,3
-
 
310
 ;;       shr     ax,2
-
 
311
 ;;       add     ax,bx
-
 
Line 312... Line -...
312
 
-
 
313
        lea      eax,[eax*5]
-
 
314
        shr      ax,4
-
 
315
 
-
 
316
        stosb
-
 
317
        loop    @b
-
 
318
else
-
 
319
        emms
-
 
320
        pxor          mm1,mm1
-
 
321
        mov           ebx,0x0000ffff
-
 
322
      @@:
-
 
323
        movd          mm0,[esi]
-
 
324
        punpcklbw     mm0,mm1
-
 
325
        movq          mm2,mm0
-
 
326
        psrlq         mm2,16
-
 
327
        movq          mm3,mm0
-
 
328
        psrlq         mm3,32
-
 
329
        paddw         mm0,mm2
-
 
330
        paddw         mm0,mm3
-
 
331
 
-
 
332
 
-
 
333
        movd          eax,mm0
-
 
334
        and           eax,ebx
-
 
335
        lea           eax,[eax*5]
-
 
336
        shr           ax,4
-
 
337
        stosb
-
 
338
        add           esi,3
-
 
339
        loop          @b
-
 
340
 
-
 
341
end if
-
 
342
        push    ebp
-
 
343
 
-
 
344
        push    dword 0          ; env coords
-
 
345
        push    word 0
-
 
346
        push    word SIZE_X
-
 
347
        push    word SIZE_Y
-
 
348
        push    dword 0
-
 
349
        push    dword 0          ; bump coords
-
 
350
        push    word SIZE_X
-
 
351
        push    word SIZE_Y
-
 
352
        push    word 0
-
 
353
        mov     eax,SIZE_Y
-
 
354
        mov     ebx,SIZE_X*65536+0
-
 
355
        xor     ecx,ecx
-
 
356
        mov     edx,bumpmap2
-
 
357
        mov     esi,envmap
-
 
358
        mov     edi,screen
-
 
359
        call    bump_triangle
-
 
360
 
-
 
361
        push    dword SIZE_X shl 16 + SIZE_Y       ; env coords
-
 
362
        push    word 0
-
 
363
        push    word SIZE_X
-
 
364
        push    word SIZE_Y
-
 
365
        push    word 0
-
 
366
        push    dword SIZE_X shl 16 + SIZE_Y        ; bump coords
-
 
367
        push    word 0
-
 
368
        push    word SIZE_X
-
 
369
        push    word SIZE_Y
-
 
370
        push    word 0
-
 
371
        mov     eax,SIZE_Y
-
 
372
        mov     ebx,SIZE_X * 65536+0
-
 
373
        mov     ecx,SIZE_X shl 16 + SIZE_Y
-
 
374
        mov     edx,bumpmap2
-
 
375
        mov     esi,envmap
-
 
376
        mov     edi,screen
-
 
377
        call    bump_triangle
-
 
378
 
244
 
Line 379... Line 245...
379
        pop     ebp
245
ret
380
ret
246