X-Git-Url: https://git.jsancho.org/?a=blobdiff_plain;f=Source%2FTGALoader.cpp;h=c68cfb5c9725c53711311d3633c75be5351bc63b;hb=efadab206c3103525a243756e388560260b4757c;hp=81697d19c76f2f6dce762006fbc0c68435e69bb0;hpb=24004d6ab1e68faaf85ece11b566449997da5013;p=lugaru.git diff --git a/Source/TGALoader.cpp b/Source/TGALoader.cpp index 81697d1..c68cfb5 100644 --- a/Source/TGALoader.cpp +++ b/Source/TGALoader.cpp @@ -42,16 +42,16 @@ bool upload_image(const unsigned char* filePath, bool hasalpha) char fileName[256]; CopyPascalStringToC( filePath, fileName); /* - // change extension to .TGA - int len = strlen( fileName); - if (len > 3) - { - fileName[ len - 3] = 't'; - fileName[ len - 2] = 'g'; - fileName[ len - 1] = 'a'; - } + // change extension to .TGA + int len = strlen( fileName); + if (len > 3) + { + fileName[ len - 3] = 't'; + fileName[ len - 2] = 'g'; + fileName[ len - 1] = 'a'; + } */ -// return (LoadTGA( fileName) != NULL); +//return (LoadTGA( fileName) != NULL); return (LoadImage(fileName, texture)); #else @@ -74,11 +74,13 @@ bool upload_image(const unsigned char* filePath, bool hasalpha) //err = FSMakeFSSpec (0, 0, (const unsigned char*)filePath, &fsspec); err = FSMakeFSSpec (0, 0, filePath, &fsspec); //err=FSPathMakeFSSpec((const UInt8*)filePath,&fsspec,&isdir);*/ - if (err)return; + if (err) + return; GraphicsImportComponent gi; err = GetGraphicsImporterForFile(&fsspec, &gi); - if (err)return; + if (err) + return; Rect natbounds; cr = GraphicsImportGetNaturalBounds(gi, &natbounds); @@ -94,7 +96,8 @@ bool upload_image(const unsigned char* filePath, bool hasalpha) GWorldPtr gw; err = QTNewGWorldFromPtr(&gw, k32ARGBPixelFormat, &natbounds, NULL, NULL, 0, texture.data, 4 * natbounds.right); - if (err)return; + if (err) + return; cr = GraphicsImportSetGWorld(gi, gw, NULL); @@ -106,7 +109,8 @@ bool upload_image(const unsigned char* filePath, bool hasalpha) cr = GraphicsImportDraw(gi); err = CloseComponent(gi); - if (err)return; + if (err) + return; /*glTexImage2D(textureTarget, 0, GL_RGBA, natbounds.right, natbounds.top, 0, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, buf); @@ -116,18 +120,18 @@ bool upload_image(const unsigned char* filePath, bool hasalpha) DisposeGWorld(gw); // Loop Through The Image Data - GLuint imageSize; // Used To Store The Image Size When Setting Aside Ram - GLuint temp; // Temporary Variable - GLuint bytesPerPixel; // Temporary Variable + GLuint imageSize; // Used To Store The Image Size When Setting Aside Ram + GLuint temp; // Temporary Variable + GLuint bytesPerPixel; // Temporary Variable bytesPerPixel = texture.bpp / 8; imageSize = texture.sizeX * texture.sizeY * bytesPerPixel; //~ int alltrans=10; for ( GLuint i = 0; i < int( imageSize ); i += 4 ) { // Swaps The 1st And 3rd Bytes ('R'ed and 'B'lue) - temp = texture.data[i]; // Temporarily Store The Value At Image Data 'i' - texture.data[i] = texture.data[i + 1]; // Set The 1st Byte To The Value Of The 3rd Byte - texture.data[i + 1] = texture.data[i + 2]; // Set The 3rd Byte To The Value In 'temp' (1st Byte Value) + temp = texture.data[i]; // Temporarily Store The Value At Image Data 'i' + texture.data[i] = texture.data[i + 1]; // Set The 1st Byte To The Value Of The 3rd Byte + texture.data[i + 1] = texture.data[i + 2]; // Set The 3rd Byte To The Value In 'temp' (1st Byte Value) texture.data[i + 2] = texture.data[i + 3]; texture.data[i + 3] = temp; } @@ -137,8 +141,8 @@ bool upload_image(const unsigned char* filePath, bool hasalpha) if (!hasalpha) { for ( GLuint i = 0; i < int( imageSize ); i += 4 ) { texture.data[i + 3] = 255; - /*texture.data[tempplace] = texture.data[i]; // Set The 1st Byte To The Value Of The 3rd Byte - texture.data[tempplace + 1] = texture.data[i + 1]; // Set The 3rd Byte To The Value In 'temp' (1st Byte Value) + /*texture.data[tempplace] = texture.data[i]; // Set The 1st Byte To The Value Of The 3rd Byte + texture.data[tempplace + 1] = texture.data[i + 1]; // Set The 3rd Byte To The Value In 'temp' (1st Byte Value) texture.data[tempplace + 2] = texture.data[i + 2]; tempplace+=3;*/ } @@ -155,7 +159,7 @@ bool upload_image(const unsigned char* filePath, bool hasalpha) howmany = 0; for ( GLuint l = 0; l < texdetail * texture.sizeX ; l += texture.sizeX ) { for ( GLuint j = 0; j < texdetail ; j ++ ) { - temp += (int)texture.data[k + i + j * bytesPerPixel + l * bytesPerPixel + b]; // Set The 1st Byte To The Value Of The 3rd Byte + temp += (int)texture.data[k + i + j * bytesPerPixel + l * bytesPerPixel + b]; // Set The 1st Byte To The Value Of The 3rd Byte howmany++; } }