diff --git a/src/add-ons/translators/tgatranslator/StreamBuffer.cpp b/src/add-ons/translators/tgatranslator/StreamBuffer.cpp index de6557b9b6..4ad5c278a7 100644 --- a/src/add-ons/translators/tgatranslator/StreamBuffer.cpp +++ b/src/add-ons/translators/tgatranslator/StreamBuffer.cpp @@ -9,7 +9,7 @@ // read from a BPositionIO object. // // -// Copyright (C) 2003 Michael Wilber +// Copyright (c) 2002 OpenBeOS Project // // Permission is hereby granted, free of charge, to any person obtaining a // copy of this software and associated documentation files (the "Software"), diff --git a/src/add-ons/translators/tgatranslator/TGAMain.cpp b/src/add-ons/translators/tgatranslator/TGAMain.cpp index c664a5e2f7..0bdfeb3718 100644 --- a/src/add-ons/translators/tgatranslator/TGAMain.cpp +++ b/src/add-ons/translators/tgatranslator/TGAMain.cpp @@ -6,10 +6,6 @@ // This translator opens and writes TGA files. // // -// This application and all source files used in its construction, except -// where noted, are licensed under the MIT License, and have been written -// and are: -// // Copyright (c) 2002 OpenBeOS Project // // Permission is hereby granted, free of charge, to any person obtaining a diff --git a/src/add-ons/translators/tgatranslator/TGATranslator.cpp b/src/add-ons/translators/tgatranslator/TGATranslator.cpp index c3ba41eabf..3bed222109 100644 --- a/src/add-ons/translators/tgatranslator/TGATranslator.cpp +++ b/src/add-ons/translators/tgatranslator/TGATranslator.cpp @@ -228,7 +228,7 @@ TGATranslator::TranslatorVersion() const // // Postconditions: // -// Returns: the list of input formats and the number of input +// Returns: the array of input formats and the number of input // formats through the out_count parameter // --------------------------------------------------------------- const translation_format * @@ -254,7 +254,7 @@ TGATranslator::InputFormats(int32 *out_count) const // // Postconditions: // -// Returns: the list of output formats and the number of output +// Returns: the array of output formats and the number of output // formats through the out_count parameter // --------------------------------------------------------------- const translation_format * @@ -368,9 +368,9 @@ identify_bits_header(BPositionIO *inSource, translator_info *outInfo, // --------------------------------------------------------------- // identify_tga_header // -// Determines if the data in inSource is in the MS or OS/2 TGA -// format. If it is, it returns info about the data in inSource -// to outInfo, pfileheader, pmsheader, pfrommsformat and os2skip. +// Determines if the data in inSource is in the TGA format. +// If it is, it returns info about the data in inSource +// to outInfo, pfileheader, pmapspec and pimagespec. // // Preconditions: // @@ -389,6 +389,13 @@ identify_bits_header(BPositionIO *inSource, translator_info *outInfo, // copied here after it is read from // the file. // +// pmapspec, color map info for the TGA is copied +// here after it is read from the file +// +// pimagespec, Info about the image width/height etc. +// is copied here after it is read from +// the file +// // // Postconditions: // @@ -653,6 +660,8 @@ TGATranslator::Identify(BPositionIO *inSource, return identify_tga_header(inSource, outInfo, 4, ch); } +// Convert width pixels from pbits to TGA format, storing the +// result in ptga status_t pix_bits_to_tga(uint8 *pbits, uint8 *ptga, color_space fromspace, uint16 width, const color_map *pmap, int32 bitsBytesPerPixel) @@ -858,6 +867,8 @@ pix_bits_to_tga(uint8 *pbits, uint8 *ptga, color_space fromspace, return bytescopied; } +// create a TGA RLE packet for pixel and copy the +// packet header and pixel data to ptga status_t copy_rle_packet(uint8 *ptga, uint32 pixel, uint8 count, color_space fromspace, const color_map *pmap, @@ -873,6 +884,8 @@ copy_rle_packet(uint8 *ptga, uint32 pixel, uint8 count, ptga, fromspace, 1, pmap, bitsBytesPerPixel) + 1; } +// create a TGA raw packet for pixel and copy the +// packet header and pixel data to ptga status_t copy_raw_packet(uint8 *ptga, uint8 *praw, uint8 count, color_space fromspace, const color_map *pmap, @@ -888,6 +901,9 @@ copy_raw_packet(uint8 *ptga, uint8 *praw, uint8 count, count, pmap, bitsBytesPerPixel) + 1; } +// convert a row of pixel data from pbits to a +// row of pixel data in the TGA format using +// Run Length Encoding status_t pix_bits_to_tgarle(uint8 *pbits, uint8 *ptga, color_space fromspace, uint16 width, const color_map *pmap, int32 bitsBytesPerPixel) @@ -1007,7 +1023,7 @@ pix_bits_to_tgarle(uint8 *pbits, uint8 *ptga, color_space fromspace, // translate_from_bits_to_tgatc // // Converts various varieties of the Be Bitmap format ('bits') to -// the TGA True Color format +// the TGA True Color format (RLE or uncompressed) // // Preconditions: // @@ -1017,6 +1033,12 @@ pix_bits_to_tgarle(uint8 *pbits, uint8 *ptga, color_space fromspace, // // fromspace, the format of the data in inSource // +// imagespec, info about width / height / etc. of +// the image +// +// brle, output using RLE if true, uncompressed +// if false +// // // Postconditions: // @@ -1118,7 +1140,8 @@ translate_from_bits_to_tgatc(BPositionIO *inSource, // --------------------------------------------------------------- // translate_from_bits1_to_tgabw // -// Converts 1-bit Be Bitmaps ('bits') to the MS 1-bit TGA format +// Converts 1-bit Be Bitmaps ('bits') to the +// black and white (8-bit grayscale) TGA format // // Preconditions: // @@ -1129,8 +1152,12 @@ translate_from_bits_to_tgatc(BPositionIO *inSource, // bitsRowBytes, number of bytes in one row of // bits data // -// msheader, contains information about the TGA -// dimensions and filesize +// imagespec, info about width / height / etc. of +// the image +// +// brle, output using RLE if true, uncompressed +// if false +// // // Postconditions: // @@ -1221,13 +1248,18 @@ translate_from_bits1_to_tgabw(BPositionIO *inSource, // --------------------------------------------------------------- // write_tga_headers // -// Writes the MS TGA headers (fileHeader and msheader) -// to outDestination. +// Writes the TGA headers to outDestination. // // Preconditions: // // Parameters: outDestination, where the headers are written to // +// fileheader, TGA file header +// +// mapspec, color map information +// +// imagespec, width / height / etc. info +// // // Postconditions: // @@ -1289,8 +1321,9 @@ write_tga_headers(BPositionIO *outDestination, TGAFileHeader &fileheader, // --------------------------------------------------------------- // write_tga_footer // -// Writes the MS TGA headers (fileHeader and msheader) -// to outDestination. +// Writes the TGA footer. This information is contant in this +// code because this translator does not output the developer +// information section of the TGA format. // // Preconditions: // @@ -1340,11 +1373,8 @@ write_tga_footer(BPositionIO *outDestination) // read, pointer to the data already read from // inSource // -// bheaderonly, true if only the header should be -// written out -// -// bdataonly, true if only the data should be -// written out +// settings, settings object specifying whether +// RLE will be used, and so on // // outType, the type of data to convert to // @@ -1601,6 +1631,8 @@ translate_from_bits(BPositionIO *inSource, ssize_t amtread, uint8 *read, return B_NO_TRANSLATOR; } +// convert a row of uncompressed, non-color mapped +// TGA pixels from ptga to pbits status_t pix_tganm_to_bits(uint8 *pbits, uint8 *ptga, uint16 width, uint8 depth, uint8 tgaBytesPerPixel, @@ -1709,8 +1741,8 @@ pix_tganm_to_bits(uint8 *pbits, uint8 *ptga, // --------------------------------------------------------------- // translate_from_tganm_to_bits // -// Translates a non-palette TGA from inSource to the B_RGB32 -// or B_RGBA32 bits format. +// Translates a uncompressed, non-palette TGA from inSource +// to the B_RGB32 or B_RGBA32 bits format. // // Preconditions: // @@ -1718,6 +1750,8 @@ pix_tganm_to_bits(uint8 *pbits, uint8 *ptga, // // outDestination, where the bits data will be written to // +// imagespec, width / height info +// // // Postconditions: // @@ -1792,6 +1826,27 @@ translate_from_tganm_to_bits(BPositionIO *inSource, return B_OK; } +// --------------------------------------------------------------- +// translate_from_tganmrle_to_bits +// +// Convert non color map, RLE TGA to Be bitmap format +// and write results to outDestination +// +// Preconditions: +// +// Parameters: inSource, the TGA data to be translated +// +// outDestination, where the bits data will be written to +// +// imagespec, width / height info +// +// +// Postconditions: +// +// Returns: B_ERROR, if there is an error allocating memory +// +// B_OK, if all went well +// --------------------------------------------------------------- status_t translate_from_tganmrle_to_bits(BPositionIO *inSource, BPositionIO *outDestination, TGAImageSpec &imagespec) @@ -1898,6 +1953,7 @@ translate_from_tganmrle_to_bits(BPositionIO *inSource, return result; } +// convert a row of color mapped pixels to pbits status_t pix_tgam_to_bits(uint8 *pbits, uint8 *ptgaindices, uint16 width, uint8 depth, uint8 *pmap) @@ -1976,8 +2032,7 @@ pix_tgam_to_bits(uint8 *pbits, uint8 *ptgaindices, // --------------------------------------------------------------- // translate_from_tgam_to_bits // -// Translates a non-palette TGA from inSource to the B_RGB32 -// bits format. +// Translates a paletted TGA from inSource to the bits format. // // Preconditions: // @@ -1985,6 +2040,12 @@ pix_tgam_to_bits(uint8 *pbits, uint8 *ptgaindices, // // outDestination, where the bits data will be written to // +// mapspec, info about the color map (palette) +// +// imagespec, width / height info +// +// pmap, color palette +// // // Postconditions: // @@ -2058,6 +2119,31 @@ translate_from_tgam_to_bits(BPositionIO *inSource, return B_OK; } +// --------------------------------------------------------------- +// translate_from_tgamrle_to_bits +// +// Translates a color mapped or non color mapped RLE TGA from +// inSource to the bits format. +// +// Preconditions: +// +// Parameters: inSource, the TGA data to be translated +// +// outDestination, where the bits data will be written to +// +// mapspec, info about the color map (palette) +// +// imagespec, width / height info +// +// pmap, color palette +// +// +// Postconditions: +// +// Returns: B_ERROR, if there is an error allocating memory +// +// B_OK, if all went well +// --------------------------------------------------------------- status_t translate_from_tgamrle_to_bits(BPositionIO *inSource, BPositionIO *outDestination, TGAColorMapSpec &mapspec, @@ -2195,11 +2281,8 @@ translate_from_tgamrle_to_bits(BPositionIO *inSource, // read, pointer to the data already read from // inSource // -// bheaderonly, true if only the header should be -// written out -// -// bdataonly, true if only the data should be -// written out +// settings, settings object specifying whether +// RLE will be used, and so on // // outType, the type of data to convert to // @@ -2418,6 +2501,7 @@ TGATranslator::Translate(BPositionIO *inSource, outType, outDestination); } +// returns the current translator settings into ioExtension status_t TGATranslator::GetConfigurationMessage(BMessage *ioExtension) { diff --git a/src/add-ons/translators/tgatranslator/TGATranslator.h b/src/add-ons/translators/tgatranslator/TGATranslator.h index 0f7155802a..1ae27dcecc 100644 --- a/src/add-ons/translators/tgatranslator/TGATranslator.h +++ b/src/add-ons/translators/tgatranslator/TGATranslator.h @@ -44,11 +44,11 @@ #define TGA_IN_QUALITY 1.0 // high in quality becuase this code supports all TGA features #define TGA_IN_CAPABILITY 0.6 - // high in capability because this code opens basically all TGAs + // high in capability because this code opens most TGAs #define TGA_OUT_QUALITY 1.0 // high out quality because this code outputs fully standard TGAs -#define TGA_OUT_CAPABILITY 0.5 - // medium out capability because RLE compression is not an option +#define TGA_OUT_CAPABILITY 0.7 + // high out capability because many TGA features are supported #define BBT_IN_QUALITY 0.6 // medium in quality because only most common features are supported diff --git a/src/add-ons/translators/tgatranslator/TGAView.cpp b/src/add-ons/translators/tgatranslator/TGAView.cpp index e9b087a556..7ee5b6b10a 100644 --- a/src/add-ons/translators/tgatranslator/TGAView.cpp +++ b/src/add-ons/translators/tgatranslator/TGAView.cpp @@ -70,7 +70,7 @@ TGAView::TGAView(const BRect &frame, const char *name, // --------------------------------------------------------------- // Destructor // -// Does nothing +// Releases the TGATranslator settings // // Preconditions: //