Subversion Repositories Kolibri OS

Rev

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

  1. //Load BMP by Veliant
  2.  
  3. struct readimage{
  4.         dword func, param1, param2, size, buffer;
  5.         byte z;
  6.         dword name;
  7. };
  8.  
  9. void Put_Image(dword x,y,w,h,name)
  10. {
  11.         int i, j, size, off, off2;
  12.         byte r, g, b;
  13.         readimage image;
  14.         dword buf;
  15.         size=w*h*3+100;
  16.         buf=malloc(size);
  17.         image.func = 0;
  18.         image.param1 = 0;
  19.         image.param2 = 0;
  20.         image.size = size;
  21.         image.buffer = buf;
  22.         image.z = 0;
  23.         image.name = #path;
  24.         EAX = 70;
  25.         EBX = #image;
  26.         $int 0x40;
  27.        
  28.         for(i=0;i<h;i++)
  29.                 for (j=0;j<w/2;j++)
  30.                 {
  31.                         off=w*3*i+buf+0x36;
  32.                         off2=w-j*3+off;
  33.                         off=j*3+off;
  34.                        
  35.                         r=ESBYTE[off2-3];
  36.                         g=ESBYTE[off2-2];
  37.                         b=ESBYTE[off2-1];
  38.                         ESBYTE[off2-3]=ESBYTE[off];
  39.                         ESBYTE[off2-2]=ESBYTE[off+1];
  40.                         ESBYTE[off2-1]=ESBYTE[off+2];
  41.                         ESBYTE[off]=r;
  42.                         ESBYTE[off+1]=g;
  43.                         ESBYTE[off+2]=b;
  44.                 }
  45.         size=w*h;
  46.         for(i=0;i<size/2;i++)
  47.         {
  48.                 off=buf+0x36;
  49.                 off2=size-i*3+off;
  50.                 off=i*3+off;
  51.                        
  52.                 r=ESBYTE[off2-3];
  53.                 g=ESBYTE[off2-2];
  54.                 b=ESBYTE[off2-1];
  55.                 ESBYTE[off2-3]=ESBYTE[off];
  56.                 ESBYTE[off2-2]=ESBYTE[off+1];
  57.                 ESBYTE[off2-1]=ESBYTE[off+2];
  58.                 ESBYTE[off]=r;
  59.                 ESBYTE[off+1]=g;
  60.                 ESBYTE[off+2]=b;
  61.         }
  62.         EAX = 7;
  63.         EBX = buf+0x36;
  64.         ECX = w<<16+h;
  65.         EDX = x<<16+y+skin_width;
  66.         $int 0x40
  67. }
  68.