Changeset 349 for trunk/src


Ignore:
Timestamp:
Jul 20, 1999, 7:50:19 PM (26 years ago)
Author:
sandervl
Message:

Icon changes (saved in BITMAPINFOHEADER2 format)

Location:
trunk/src/pe2lx
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/pe2lx/icon.cpp

    r97 r349  
    1 /* $Id: icon.cpp,v 1.3 1999-06-10 17:08:53 phaller Exp $ */
     1/* $Id: icon.cpp,v 1.4 1999-07-20 17:50:19 sandervl Exp $ */
    22
    33/*
     
    3535{
    3636 RGBQUAD *rgb;
    37  RGB     *os2rgb;
     37 RGB2    *os2rgb;
    3838 int bwsize, i, colorsize, rgbsize;
    3939 OS2Icon *icon = OS2Icon::icons;
     
    9191  //for color bitmap + RGB structs for all the colors
    9292  //SvL, 3-3-98: 2*bwsize
    93   iconsize = 2*sizeof(BITMAPFILEHEADER) + 2*sizeof(RGB) +
     93  iconsize = 2*sizeof(BITMAPFILEHEADER2) + 2*sizeof(RGB2) +
    9494             rgbsize + 2*bwsize + bmpHdr->biSizeImage;
    9595  //There are icons without an XOR mask, so check for it
     
    9797        iconsize += bwsize;
    9898  }
    99   iconhdr  = (BITMAPFILEHEADER *)malloc(iconsize);
     99  iconhdr  = (BITMAPFILEHEADER2 *)malloc(iconsize);
     100  memset(iconhdr, 0, iconsize);
    100101  iconhdr->usType        = BFT_COLORICON;
    101   iconhdr->cbSize        = sizeof(BITMAPFILEHEADER);
     102  iconhdr->cbSize        = sizeof(BITMAPFILEHEADER2);
    102103  iconhdr->xHotspot      = 0;
    103104  iconhdr->yHotspot      = 0;
    104   iconhdr->offBits       = 2*sizeof(BITMAPFILEHEADER) +
    105                            2*sizeof(RGB) + rgbsize;
    106   iconhdr->bmp.cbFix     = sizeof(BITMAPINFOHEADER);
    107   iconhdr->bmp.cx        = (USHORT)bmpHdr->biWidth;
    108   iconhdr->bmp.cy        = (USHORT)bmpHdr->biHeight;
    109   iconhdr->bmp.cPlanes   = 1;
    110   iconhdr->bmp.cBitCount = 1;
    111   os2rgb                 = (RGB *)(iconhdr+1);
    112   memset(os2rgb, 0, sizeof(RGB));
    113   memset(os2rgb+1, 0xff, sizeof(RGB));
    114   iconhdr2               = (BITMAPFILEHEADER *)(os2rgb+2);
     105  iconhdr->offBits       = 2*sizeof(BITMAPFILEHEADER2) +
     106                           2*sizeof(RGB2) + rgbsize;
     107  iconhdr->bmp2.cbFix    = sizeof(BITMAPINFOHEADER2);
     108  iconhdr->bmp2.cx       = (USHORT)bmpHdr->biWidth;
     109  iconhdr->bmp2.cy       = (USHORT)bmpHdr->biHeight;
     110  iconhdr->bmp2.cPlanes  = 1;
     111  iconhdr->bmp2.cBitCount= 1;
     112  iconhdr->bmp2.ulCompression   = BCA_UNCOMP;
     113  iconhdr->bmp2.ulColorEncoding = BCE_RGB;
     114  os2rgb                 = (RGB2 *)(iconhdr+1);
     115  memset(os2rgb, 0, sizeof(RGB2));
     116  memset(os2rgb+1, 0xff, sizeof(RGB)); //not reserved byte
     117  iconhdr2               = (BITMAPFILEHEADER2 *)(os2rgb+2);
    115118  iconhdr2->usType       = BFT_COLORICON;
    116   iconhdr2->cbSize       = sizeof(BITMAPFILEHEADER);
     119  iconhdr2->cbSize       = sizeof(BITMAPFILEHEADER2);
    117120  iconhdr2->xHotspot     = 0;
    118121  iconhdr2->yHotspot     = 0;
    119   iconhdr2->offBits      = 2*sizeof(BITMAPFILEHEADER) +
    120                            2*sizeof(RGB) + rgbsize + 2*bwsize;
    121   iconhdr2->bmp.cbFix    = sizeof(BITMAPINFOHEADER);
    122   iconhdr2->bmp.cx       = (USHORT)bmpHdr->biWidth;
    123   iconhdr2->bmp.cy       = (USHORT)(bmpHdr->biHeight/2);
    124   iconhdr2->bmp.cPlanes  = bmpHdr->biPlanes;
    125   iconhdr2->bmp.cBitCount= bmpHdr->biBitCount;
    126   os2rgb                 = (RGB *)(iconhdr2+1);
     122  iconhdr2->offBits      = 2*sizeof(BITMAPFILEHEADER2) +
     123                           2*sizeof(RGB2) + rgbsize + 2*bwsize;
     124  iconhdr2->bmp2.cbFix   = sizeof(BITMAPINFOHEADER2);
     125  iconhdr2->bmp2.cx      = (USHORT)bmpHdr->biWidth;
     126  iconhdr2->bmp2.cy      = (USHORT)(bmpHdr->biHeight/2);
     127  iconhdr2->bmp2.cPlanes = bmpHdr->biPlanes;
     128  iconhdr2->bmp2.cBitCount= bmpHdr->biBitCount;
     129  iconhdr2->bmp2.ulCompression   = BCA_UNCOMP;
     130  iconhdr2->bmp2.ulColorEncoding = BCE_RGB;
     131  os2rgb                 = (RGB2 *)(iconhdr2+1);
    127132  rgb                    = (RGBQUAD *)(bmpHdr+1);
    128133  if(bmpHdr->biBitCount < 24) {
     
    173178//******************************************************************************
    174179//******************************************************************************
    175 BITMAPFILEHEADER *OS2Icon::GetIconHeader()
     180BITMAPFILEHEADER2 *OS2Icon::GetIconHeader()
    176181{
    177182  return(iconhdr);
  • trunk/src/pe2lx/icon.h

    r97 r349  
    1 /* $Id: icon.h,v 1.3 1999-06-10 17:08:53 phaller Exp $ */
    2 
    3 /* $Header: /home/ktk/tmp/odin/2007/netlabs.cvs/odin32/src/pe2lx/icon.h,v 1.3 1999-06-10 17:08:53 phaller Exp $
     1/* $Id: icon.h,v 1.4 1999-07-20 17:50:19 sandervl Exp $ */
     2
     3/* $Header: /home/ktk/tmp/odin/2007/netlabs.cvs/odin32/src/pe2lx/icon.h,v 1.4 1999-07-20 17:50:19 sandervl Exp $
    44 *
    55 * Declarations, protypes and defintions for conversion of icons.
     
    198198        int                QueryIconSize();
    199199        void               SetIconHdrOffset(int offset);
    200         BITMAPFILEHEADER  *GetIconHeader();
     200        BITMAPFILEHEADER2 *GetIconHeader();
    201201
    202202        static OS2Icon    *GetIcon(int id);
     
    207207private:
    208208        int                       id, iconsize, prevoffset;
    209         BITMAPFILEHEADER         *iconhdr;
    210         BITMAPFILEHEADER         *iconhdr2;
     209        BITMAPFILEHEADER2        *iconhdr;
     210        BITMAPFILEHEADER2        *iconhdr2;
    211211
    212212        //@KSO: This may need to be changed later. Statics work fine for one single file,
  • trunk/src/pe2lx/icongrp.cpp

    r97 r349  
    1 /* $Id: icongrp.cpp,v 1.3 1999-06-10 17:08:54 phaller Exp $ */
     1/* $Id: icongrp.cpp,v 1.4 1999-07-20 17:50:19 sandervl Exp $ */
    22
    33/*
     
    4141 ResourceDirectory *rdir = (ResourceDirectory *)(ihdr + 1);
    4242 int i, groupsize = 0;
    43  BITMAPARRAYFILEHEADER *bafh, *orgbafh;
     43 BITMAPARRAYFILEHEADER2 *bafh, *orgbafh;
    4444 OS2Icon *icon;
    4545
     
    5959        rdir++;
    6060  }
    61   bafh    = (BITMAPARRAYFILEHEADER *)malloc(groupsize+ihdr->wCount*sizeof(BITMAPARRAYFILEHEADER));
     61  bafh    = (BITMAPARRAYFILEHEADER2 *)malloc(groupsize+ihdr->wCount*sizeof(BITMAPARRAYFILEHEADER2));
    6262  orgbafh = bafh;
    6363
     
    6565  for(i=0;i<ihdr->wCount;i++) {
    6666        bafh->usType    = BFT_BITMAPARRAY;
    67         bafh->cbSize    = sizeof(BITMAPARRAYFILEHEADER);
     67        bafh->cbSize    = sizeof(BITMAPARRAYFILEHEADER2);
    6868        bafh->cxDisplay = 0;
    6969        bafh->cyDisplay = 0;
     
    7575        }
    7676        if(i != ihdr->wCount -1) {
    77                 bafh->offNext = (int)&bafh->bfh - (int)orgbafh + icon->QueryIconSize();
     77                bafh->offNext = (int)&bafh->bfh2 - (int)orgbafh + icon->QueryIconSize();
    7878        }
    7979        else    bafh->offNext = 0;
    8080
    81         icon->SetIconHdrOffset((int)bafh - (int)orgbafh + sizeof(BITMAPARRAYFILEHEADER)-sizeof(BITMAPFILEHEADER));
     81        icon->SetIconHdrOffset((int)bafh - (int)orgbafh + sizeof(BITMAPARRAYFILEHEADER2)-sizeof(BITMAPFILEHEADER2));
    8282
    83         memcpy((char *)&bafh->bfh, (char *)icon->GetIconHeader(), icon->QueryIconSize());
    84         bafh = (BITMAPARRAYFILEHEADER *)((int)&bafh->bfh + icon->QueryIconSize());
     83        memcpy((char *)&bafh->bfh2, (char *)icon->GetIconHeader(), icon->QueryIconSize());
     84        bafh = (BITMAPARRAYFILEHEADER2 *)((int)&bafh->bfh2 + icon->QueryIconSize());
    8585        rdir++;
    8686  }
    87   OS2Exe.StoreResource(id, RT_POINTER, groupsize+ihdr->wCount*sizeof(BITMAPARRAYFILEHEADER), (char *)orgbafh);
     87  OS2Exe.StoreResource(id, RT_POINTER, groupsize+ihdr->wCount*sizeof(BITMAPARRAYFILEHEADER2), (char *)orgbafh);
    8888  free((char *)orgbafh);
    8989}
Note: See TracChangeset for help on using the changeset viewer.