Subversion Repositories Kolibri OS

Rev

Rev 255 | 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.         movsw
  24.         movsb
  25.         dec ecx
  26.         jnz next_pixel_sprite_save
  27.  
  28.         add esi,edx
  29.         dec ebx
  30.         jnz next_line_sprite_save
  31.  
  32.         ret
  33. ;-----------------------------------------------------------
  34. ;-------------------PutFonForSprite-------------------------
  35. ;-----------------------------------------------------------
  36. PutFonForSprite:
  37.  
  38.         mov esi,[PointerToSpriteBufer]
  39.         mov ecx,[SpriteSizeX]
  40.         mov edx,[Picture_SizeX]
  41.         sub edx,[SpriteSizeX]
  42.         mov edi,[SpriteOldCoordinatY]
  43.         imul edi,[Picture_SizeX]
  44.         add edi,[SpriteOldCoordinatX]
  45.         lea edx,[edx+edx*2]
  46.         lea edi,[edi+edi*2]
  47.         add edi,[PointerToPicture]
  48.         mov ebx,[SpriteSizeY]
  49.         mov [counter],ecx
  50.  
  51.         next_line_sprite_put:
  52.         mov ecx,[counter]
  53.  
  54.         next_pixel_sprite_put:
  55.         movsw
  56.         movsb
  57.         dec ecx
  58.         jnz next_pixel_sprite_put
  59.  
  60.         add edi,edx
  61.         dec ebx
  62.         jnz next_line_sprite_put
  63.  
  64.         ret
  65. ;-----------------------------------------------------------
  66. ;------------------DrawFonForSprite-------------------------
  67. ;-----------------------------------------------------------
  68. DrawSprite:
  69.  
  70.         mov esi,[PointerToEditBufer]
  71.         mov ecx,[SpriteSizeX]
  72.         mov edx,[Picture_SizeX]
  73.         sub edx,[SpriteSizeX]
  74.         mov edi,[SpriteCoordinatY]
  75.         imul edi,[Picture_SizeX]
  76.         add edi,[SpriteCoordinatX]
  77.         lea edx,[edx+edx*2]
  78.         lea edi,[edi+edi*2]
  79.         add edi,[PointerToPicture]
  80.         mov ebx,[SpriteSizeY]
  81.         mov [counter],ecx
  82.  
  83.         next_line_sprite_draw:
  84.         mov ecx,[counter]
  85.  
  86.         next_pixel_sprite_draw:
  87.         movsw
  88.         movsb
  89.         dec ecx
  90.         jnz next_pixel_sprite_draw
  91.  
  92.         add edi,edx
  93.         dec ebx
  94.         jnz next_line_sprite_draw
  95.  
  96.         ret
  97.