Merged in Joseph Steel's updates to rgb plugin

This commit is contained in:
Don BURNS
2002-11-22 17:36:46 +00:00
parent 22c313cf3e
commit 4acee51414

View File

@@ -81,6 +81,22 @@ static void ConvertLong(GLuint *array, long length)
}
static void RawImageClose(rawImageRec *raw)
{
fclose(raw->file);
free(raw->tmp);
free(raw->tmpR);
free(raw->tmpG);
free(raw->tmpB);
free(raw->tmpA);
free(raw->rowStart);
free(raw->rowSize);
free(raw);
}
static rawImageRec *RawImageOpen(const char *fileName)
{
union
@@ -110,6 +126,7 @@ static rawImageRec *RawImageOpen(const char *fileName)
}
if ((raw->file = fopen(fileName, "rb")) == NULL)
{
free(raw);
perror(fileName);
return NULL;
}
@@ -122,11 +139,14 @@ static rawImageRec *RawImageOpen(const char *fileName)
}
raw->tmp = raw->tmpR = raw->tmpG = raw->tmpB = raw->tmpA = 0L;
raw->rowStart = 0;
raw->rowSize = 0;
raw->tmp = (unsigned char *)malloc(raw->sizeX*256);
if (raw->tmp == NULL )
{
notify(FATAL)<< "Out of memory!"<< std::endl;
RawImageClose(raw);
return NULL;
}
@@ -135,7 +155,7 @@ static rawImageRec *RawImageOpen(const char *fileName)
if( (raw->tmpR = (unsigned char *)malloc(raw->sizeX)) == NULL )
{
notify(FATAL)<< "Out of memory!"<< std::endl;
free( raw->tmp );
RawImageClose(raw);
return NULL;
}
}
@@ -144,8 +164,7 @@ static rawImageRec *RawImageOpen(const char *fileName)
if( (raw->tmpG = (unsigned char *)malloc(raw->sizeX)) == NULL )
{
notify(FATAL)<< "Out of memory!"<< std::endl;
free( raw->tmp );
free( raw->tmpR );
RawImageClose(raw);
return NULL;
}
}
@@ -154,9 +173,7 @@ static rawImageRec *RawImageOpen(const char *fileName)
if( (raw->tmpB = (unsigned char *)malloc(raw->sizeX)) == NULL )
{
notify(FATAL)<< "Out of memory!"<< std::endl;
free( raw->tmp );
free( raw->tmpR );
free( raw->tmpG );
RawImageClose(raw);
return NULL;
}
}
@@ -165,10 +182,7 @@ static rawImageRec *RawImageOpen(const char *fileName)
if( (raw->tmpA = (unsigned char *)malloc(raw->sizeX)) == NULL )
{
notify(FATAL)<< "Out of memory!"<< std::endl;
free( raw->tmp );
free( raw->tmpR );
free( raw->tmpG );
free( raw->tmpB );
RawImageClose(raw);
return NULL;
}
}
@@ -176,11 +190,17 @@ static rawImageRec *RawImageOpen(const char *fileName)
if ((raw->type & 0xFF00) == 0x0100)
{
x = raw->sizeY * raw->sizeZ * sizeof(GLuint);
raw->rowStart = (GLuint *)malloc(x);
raw->rowSize = (GLint *)malloc(x);
if (raw->rowStart == NULL || raw->rowSize == NULL)
if ( (raw->rowStart = (GLuint *)malloc(x)) == NULL )
{
notify(FATAL)<< "Out of memory!"<< std::endl;
RawImageClose(raw);
return NULL;
}
if ( (raw->rowSize = (GLint *)malloc(x)) == NULL )
{
notify(FATAL)<< "Out of memory!"<< std::endl;
RawImageClose(raw);
return NULL;
}
raw->rleEnd = 512 + (2 * x);
@@ -197,23 +217,6 @@ static rawImageRec *RawImageOpen(const char *fileName)
}
static void RawImageClose(rawImageRec *raw)
{
fclose(raw->file);
free(raw->tmp);
if( raw->tmpR )
free(raw->tmpR);
if( raw->tmpG )
free(raw->tmpG);
if( raw->tmpB )
free(raw->tmpB);
if( raw->tmpA )
free(raw->tmpA);
free(raw);
}
static void RawImageGetRow(rawImageRec *raw, unsigned char *buf, int y, int z)
{
unsigned char *iPtr, *oPtr, pixel;