49 lines
2.3 KiB
C
49 lines
2.3 KiB
C
// (c) by Stefan Roettger, licensed under GPL 2+
|
|
|
|
#ifndef DDSBASE_H
|
|
#define DDSBASE_H
|
|
|
|
#include "codebase.h" // universal code base
|
|
|
|
void writeDDSfile(const char *filename,unsigned char *data,unsigned int bytes,unsigned int skip=0,unsigned int strip=0,BOOLINT nofree=FALSE);
|
|
unsigned char *readDDSfile(const char *filename,unsigned int *bytes);
|
|
|
|
void writeRAWfile(const char *filename,unsigned char *data,unsigned int bytes,BOOLINT nofree=FALSE);
|
|
unsigned char *readRAWfile(const char *filename,unsigned int *bytes);
|
|
|
|
void writePNMimage(const char *filename,unsigned char *image,unsigned int width,unsigned int height,unsigned int components,BOOLINT dds=FALSE);
|
|
unsigned char *readPNMimage(const char *filename,unsigned int *width,unsigned int *height,unsigned int *components);
|
|
|
|
void writePVMvolume(const char *filename,unsigned char *volume,
|
|
unsigned int width,unsigned int height,unsigned int depth,unsigned int components=1,
|
|
float scalex=1.0f,float scaley=1.0f,float scalez=1.0f,
|
|
unsigned char *description=NULL,
|
|
unsigned char *courtesy=NULL,
|
|
unsigned char *parameter=NULL,
|
|
unsigned char *comment=NULL);
|
|
|
|
unsigned char *readPVMvolume(const char *filename,
|
|
unsigned int *width,unsigned int *height,unsigned int *depth,unsigned int *components=NULL,
|
|
float *scalex=NULL,float *scaley=NULL,float *scalez=NULL,
|
|
unsigned char **description=NULL,
|
|
unsigned char **courtesy=NULL,
|
|
unsigned char **parameter=NULL,
|
|
unsigned char **comment=NULL);
|
|
|
|
int checkfile(const char *filename);
|
|
unsigned int checksum(unsigned char *data,unsigned int bytes);
|
|
|
|
void swapbytes(unsigned char *data,long long bytes);
|
|
void convbytes(unsigned char *data,long long bytes);
|
|
void convfloat(unsigned char **data,long long bytes);
|
|
void convrgb(unsigned char **data,long long bytes);
|
|
|
|
unsigned char *quantize(unsigned char *volume,
|
|
long long width,long long height,long long depth,
|
|
BOOLINT msb=TRUE,
|
|
BOOLINT linear=FALSE,BOOLINT nofree=FALSE);
|
|
|
|
char *processPVMvolume(const char *filename);
|
|
|
|
#endif
|