Index: third_party/gles_book_examples/Common/Source/Win32/esUtil_TGA.c |
=================================================================== |
--- third_party/gles_book_examples/Common/Source/Win32/esUtil_TGA.c (revision 35873) |
+++ third_party/gles_book_examples/Common/Source/Win32/esUtil_TGA.c (working copy) |
@@ -1,126 +0,0 @@ |
-// |
-// Book: OpenGL(R) ES 2.0 Programming Guide |
-// Authors: Aaftab Munshi, Dan Ginsburg, Dave Shreiner |
-// ISBN-10: 0321502795 |
-// ISBN-13: 9780321502797 |
-// Publisher: Addison-Wesley Professional |
-// URLs: http://safari.informit.com/9780321563835 |
-// http://www.opengles-book.com |
-// |
- |
-// esUtil_TGA.c |
-// |
-// This file contains the Win32 implementation of a TGA image loader |
- |
-#ifndef WIN32_LEAN_AND_MEAN |
-#define WIN32_LEAN_AND_MEAN |
-#endif // WIN32_LEAN_AND_MEAN |
- |
-#include <windows.h> |
-#include <stdio.h> |
-#include <stdlib.h> |
- |
-/// |
-// Macros |
-// |
-#define INVERTED_BIT (1 << 5) |
- |
-/// |
-// Types |
-// |
-#pragma pack(push,x1) // Byte alignment (8-bit) |
-#pragma pack(1) |
- |
-typedef struct |
-{ |
- unsigned char IdSize, |
- MapType, |
- ImageType; |
- unsigned short PaletteStart, |
- PaletteSize; |
- unsigned char PaletteEntryDepth; |
- unsigned short X, |
- Y, |
- Width, |
- Height; |
- unsigned char ColorDepth, |
- Descriptor; |
- |
-} TGA_HEADER; |
- |
-#pragma pack(pop,x1) |
- |
-//////////////////////////////////////////////////////////////////////////////////// |
-// |
-// Private Functions |
-// |
- |
-//////////////////////////////////////////////////////////////////////////////////// |
-// |
-// Public Functions |
-// |
-// |
- |
- |
-/// |
-// WinTGALoad() |
-// |
-int WinTGALoad( const char *fileName, char **buffer, int *width, int *height ) |
-{ |
- FILE *fp; |
- TGA_HEADER Header; |
- |
- if ( fopen_s ( &fp, fileName, "rb" ) != 0 ) |
- { |
- return FALSE; |
- } |
- |
- if ( fp == NULL ) |
- { |
- return FALSE; |
- } |
- |
- fread ( &Header, sizeof(TGA_HEADER), 1, fp ); |
- |
- *width = Header.Width; |
- *height = Header.Height; |
- |
- if ( Header.ColorDepth == 24 ) |
- { |
- RGBTRIPLE *Buffer24; |
- |
- Buffer24= (RGBTRIPLE*)malloc(sizeof(RGBTRIPLE) * (*width) * (*height)); |
- |
- if(Buffer24) |
- { |
- int i=0; |
- int x, |
- y; |
- |
- fread(Buffer24, sizeof(RGBTRIPLE), (*width) * (*height), fp); |
- |
- *buffer= (LPSTR) malloc(3 * (*width) * (*height)); |
- |
- for ( y = 0; y < *height; y++ ) |
- for( x = 0; x < *width; x++ ) |
- { |
- int Index= y * (*width) + x; |
- |
- if(!(Header.Descriptor & INVERTED_BIT)) |
- Index= ((*height) - 1 - y) * (*width) + x; |
- |
- (*buffer)[(i * 3)]= Buffer24[Index].rgbtRed; |
- (*buffer)[(i * 3) + 1]= Buffer24[Index].rgbtGreen; |
- (*buffer)[(i * 3) + 2]= Buffer24[Index].rgbtBlue; |
- |
- i++; |
- } |
- |
- fclose(fp); |
- free(Buffer24); |
- return(TRUE); |
- } |
- } |
- |
- return(FALSE); |
-} |