TMAPFADE.ASM 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. ; THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  2. ; SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
  3. ; END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  4. ; ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  5. ; IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  6. ; SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  7. ; FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  8. ; CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS
  9. ; AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
  10. ; COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
  11. public asm_tmap_scanline_shaded_
  12. include tmap_inc.asm
  13. _DATA SEGMENT DWORD PUBLIC USE32 'DATA'
  14. _DATA ENDS
  15. DGROUP GROUP _DATA
  16. _TEXT SEGMENT PARA PUBLIC USE32 'CODE'
  17. ASSUME DS:_DATA
  18. ASSUME CS:_TEXT
  19. ; --------------------------------------------------------------------------------------------------
  20. ; Enter:
  21. ; _xleft fixed point left x coordinate
  22. ; _xright fixed point right x coordinate
  23. ; _y fixed point y coordinate
  24. ;**; _pixptr address of source pixel map
  25. ; for (x = (int) xleft; x <= (int) xright; x++) {
  26. ; _setcolor(read_pixel_from_tmap(srcb,((int) (u/z)) & 63,((int) (v/z)) & 63));
  27. ; _setpixel(x,y);
  28. ;
  29. ; z += dz_dx;
  30. ; }
  31. asm_tmap_scanline_shaded_:
  32. push eax
  33. push ebx
  34. push ecx
  35. push edi
  36. mov edi, _dest_row_data
  37. mov ecx, 0
  38. mov ch,_tmap_flat_shade_value
  39. and ch, 31
  40. mov ebx, _loop_count
  41. NextPixel:
  42. mov cl, [edi] ; get pixel
  43. mov al, _gr_fade_table[ecx] ; darken pixel
  44. mov [edi], al ; write pixel
  45. inc edi ; goto next pixel
  46. dec ebx
  47. jns NextPixel
  48. _none_to_do:
  49. pop edi
  50. pop ecx
  51. pop ebx
  52. pop eax
  53. ret
  54. _TEXT ends
  55. end