Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 3095 in orxonox.OLD


Ignore:
Timestamp:
Dec 5, 2004, 2:04:17 AM (19 years ago)
Author:
bensch
Message:

orxonox/branches/images: jpeg made to one function, the function was really not used as a function, but as a gosub→return

Location:
orxonox/branches/images/importer
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • orxonox/branches/images/importer/material.cc

    r3094 r3095  
    554554  pImage = (Image*)malloc(sizeof(Image));
    555555 
    556   // Decode the jpeg file and fill in the image data structure to pass back
    557   decodeJPG(&cinfo, pImage);
     556  // DECOFING
     557  // Read in the header of the jpeg file
     558  jpeg_read_header(&cinfo, TRUE);
     559 
     560  // Start to decompress the jpeg file with our compression info
     561  jpeg_start_decompress(&cinfo);
     562 
     563  // Get the image dimensions and row span to read in the pixel data
     564  pImage->rowSpan = cinfo.image_width * cinfo.num_components;
     565  pImage->width   = cinfo.image_width;
     566  pImage->height   = cinfo.image_height;
     567 
     568  // Allocate memory for the pixel buffer
     569  pImage->data = new unsigned char[pImage->rowSpan * pImage->height];
     570 
     571  // Here we use the library's state variable cinfo.output_scanline as the
     572  // loop counter, so that we don't have to keep track ourselves.
     573 
     574  // Create an array of row pointers
     575  unsigned char** rowPtr = new unsigned char*[pImage->height];
     576  for (int i = 0; i < pImage->height; i++)
     577    rowPtr[i] = &(pImage->data[i*pImage->rowSpan]);
     578 
     579  // Now comes the juice of our work, here we extract all the pixel data
     580  int rowsRead = 0;
     581  while (cinfo.output_scanline < cinfo.output_height)
     582    {
     583      // Read in the current row of pixels and increase the rowsRead count
     584      rowsRead += jpeg_read_scanlines(&cinfo, &rowPtr[rowsRead], cinfo.output_height - rowsRead);
     585    }
     586 
     587  // Delete the temporary row pointers
     588  delete [] rowPtr;
     589 
     590  // Finish decompressing the data
     591  jpeg_finish_decompress(&cinfo);//  decodeJPG(&cinfo, pImage);
    558592 
    559593  // This releases all the stored memory for reading and decoding the jpeg
     
    579613  return true;
    580614}
    581 
    582 void Material::decodeJPG(jpeg_decompress_struct* cinfo, Image* pImageData)
    583 {
    584   // Read in the header of the jpeg file
    585   jpeg_read_header(cinfo, TRUE);
    586  
    587   // Start to decompress the jpeg file with our compression info
    588   jpeg_start_decompress(cinfo);
    589  
    590   // Get the image dimensions and row span to read in the pixel data
    591   pImageData->rowSpan = cinfo->image_width * cinfo->num_components;
    592   pImageData->width   = cinfo->image_width;
    593   pImageData->height   = cinfo->image_height;
    594  
    595   // Allocate memory for the pixel buffer
    596   pImageData->data = new unsigned char[pImageData->rowSpan * pImageData->height];
    597  
    598   // Here we use the library's state variable cinfo.output_scanline as the
    599   // loop counter, so that we don't have to keep track ourselves.
    600  
    601   // Create an array of row pointers
    602   unsigned char** rowPtr = new unsigned char*[pImageData->height];
    603   for (int i = 0; i < pImageData->height; i++)
    604     rowPtr[i] = &(pImageData->data[i*pImageData->rowSpan]);
    605  
    606   // Now comes the juice of our work, here we extract all the pixel data
    607   int rowsRead = 0;
    608   while (cinfo->output_scanline < cinfo->output_height)
    609     {
    610       // Read in the current row of pixels and increase the rowsRead count
    611       rowsRead += jpeg_read_scanlines(cinfo, &rowPtr[rowsRead], cinfo->output_height - rowsRead);
    612     }
    613  
    614   // Delete the temporary row pointers
    615   delete [] rowPtr;
    616  
    617   // Finish decompressing the data
    618   jpeg_finish_decompress(cinfo);
    619 }
    620 
    621 
    622 
    623615
    624616bool Material::loadTGA(const char * tgaName, GLuint* texture)
  • orxonox/branches/images/importer/material.h

    r3094 r3095  
    9595
    9696  bool loadJPG (char* jpgName, GLuint* texture);
    97   void decodeJPG(jpeg_decompress_struct* cinfo, Image *pImageData);
    9897
    9998  /// TGA ///
Note: See TracChangeset for help on using the changeset viewer.