Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. ;-----------------------------------------------------------
  2. ;------------------SaveFonForSprite-------------------------
  3. ;-----------------------------------------------------------
  4. SaveFonForSprite:
  5.  
  6.         mov edi,[PointerToSpriteBufer]
  7.         mov ecx,[SpriteSizeX]
  8.         mov edx,[Picture_SizeX]
  9.         sub edx,[SpriteSizeX]
  10.         mov esi,[SpriteCoordinatY]
  11.         imul esi,[Picture_SizeX]
  12.         add esi,[SpriteCoordinatX]
  13.         lea edx,[edx+edx*2]
  14.         lea esi,[esi+esi*2]
  15.         add esi,[PointerToPicture]
  16.         mov ebx,[SpriteSizeY]
  17.         mov [counter],ecx
  18.  
  19.         next_line_sprite_save:
  20.         mov ecx,[counter]
  21.  
  22.         next_pixel_sprite_save:
  23.         mov eax,[esi]
  24.         and eax,0xffffff
  25.         mov [edi],ax
  26.         shr eax,16
  27.         mov [edi+2],al
  28.         add esi,3
  29.         add edi,3
  30.         dec ecx
  31.         jnz next_pixel_sprite_save
  32.  
  33.         add esi,edx
  34.         dec ebx
  35.         jnz next_line_sprite_save
  36.  
  37.         ret
  38. ;-----------------------------------------------------------
  39. ;-------------------PutFonForSprite-------------------------
  40. ;-----------------------------------------------------------
  41. PutFonForSprite:
  42.  
  43.         mov esi,[PointerToSpriteBufer]
  44.         mov ecx,[SpriteSizeX]
  45.         mov edx,[Picture_SizeX]
  46.         sub edx,[SpriteSizeX]
  47.         mov edi,[SpriteOldCoordinatY]
  48.         imul edi,[Picture_SizeX]
  49.         add edi,[SpriteOldCoordinatX]
  50.         lea edx,[edx+edx*2]
  51.         lea edi,[edi+edi*2]
  52.         add edi,[PointerToPicture]
  53.         mov ebx,[SpriteSizeY]
  54.         mov [counter],ecx
  55.  
  56.         next_line_sprite_put:
  57.         mov ecx,[counter]
  58.  
  59.         next_pixel_sprite_put:
  60.         mov eax,[esi]
  61.         and eax,0xffffff
  62.         mov [edi],ax
  63.         shr eax,16
  64.         mov [edi+2],al
  65.         add esi,3
  66.         add edi,3
  67.         dec ecx
  68.         jnz next_pixel_sprite_put
  69.  
  70.         add edi,edx
  71.         dec ebx
  72.         jnz next_line_sprite_put
  73.  
  74.         ret
  75. ;-----------------------------------------------------------
  76. ;------------------DrawFonForSprite-------------------------
  77. ;-----------------------------------------------------------
  78. DrawSprite:
  79.  
  80.         mov esi,[PointerToEditBufer]
  81.         mov ecx,[SpriteSizeX]
  82.         mov edx,[Picture_SizeX]
  83.         sub edx,[SpriteSizeX]
  84.         mov edi,[SpriteCoordinatY]
  85.         imul edi,[Picture_SizeX]
  86.         add edi,[SpriteCoordinatX]
  87.         lea edx,[edx+edx*2]
  88.         lea edi,[edi+edi*2]
  89.         add edi,[PointerToPicture]
  90.         mov ebx,[SpriteSizeY]
  91.         mov [counter],ecx
  92.  
  93.         next_line_sprite_draw:
  94.         mov ecx,[counter]
  95.  
  96.         next_pixel_sprite_draw:
  97.         mov eax,[esi]
  98.         and eax,0xffffff
  99.         mov [edi],ax
  100.         shr eax,16
  101.         mov [edi+2],al
  102.         add esi,3
  103.         add edi,3
  104.         dec ecx
  105.         jnz next_pixel_sprite_draw
  106.  
  107.         add edi,edx
  108.         dec ebx
  109.         jnz next_line_sprite_draw
  110.  
  111.         ret
  112.