47struct libdeflate_compressor;
55 int nchannels,
int alphachan,
int nfaces,
bool genmipmaps);
59 virtual bool writeFace(
int faceid,
const FaceInfo& f,
const void* data,
int stride);
71 virtual void writeMeta(
const char* key,
const char* value);
72 virtual void writeMeta(
const char* key,
const int8_t* value,
int count);
73 virtual void writeMeta(
const char* key,
const int16_t* value,
int count);
74 virtual void writeMeta(
const char* key,
const int32_t* value,
int count);
75 virtual void writeMeta(
const char* key,
const float* value,
int count);
76 virtual void writeMeta(
const char* key,
const double* value,
int count);
99 size_t writeBlock(FILE* fp,
const void* data,
size_t size);
100 size_t writeBlock(FILE* fp,
const std::vector<std::byte>& dataBlock) {
return writeBlock(fp, dataBlock.data(), dataBlock.size()); }
101 void addToDataBlock(std::vector<std::byte>& dataBlock,
const void* data,
size_t size);
104 void compressDataBlock(libdeflate_compressor* compressor, std::vector<std::byte>& compressedData,
const void* data,
size_t size);
106 void addMetaData(
const char* key, MetaDataType t,
const void* value,
int size);
108 Res res,
const void* uncompressedData,
int stride);
110 Res res,
const void* uncompressedData);
113 bool storeFaceInfo(
int faceid, FaceInfo& dest,
const FaceInfo& src,
int flags=0);
116 void storeConstValue(
int faceid,
const void* data,
int stride, Res res);
142 std::vector<FaceDataHeader>
fdh;
#define PTEX_NAMESPACE_END
Public API classes for reading, writing, caching, and filtering Ptex files.
Res calcTileRes(Res faceres)
void releaseCompressor(libdeflate_compressor *compressor)
void getError(Ptex::String &error)
void compressFaceDataBlock(libdeflate_compressor *compressor, std::vector< std::byte > &compressedData, FaceDataHeader &fdh, Res res, const void *uncompressedData, int stride)
std::vector< libdeflate_compressor * > _compressors
bool storeFaceInfo(int faceid, FaceInfo &dest, const FaceInfo &src, int flags=0)
void addToDataBlock(std::vector< std::byte > &dataBlock, const void *data, size_t size)
std::vector< uint32_t > _rfaceids
size_t writeBlock(FILE *fp, const void *data, size_t size)
std::map< std::string, int > _metamap
virtual bool close(Ptex::String &error)
Close the file.
virtual bool writeConstantFace(int faceid, const FaceInfo &f, const void *data)
bool ok(Ptex::String &error)
std::vector< uint32_t > _faceids_r
virtual void writeMeta(const char *key, const char *value)
Write a string as meta data.
void compressDataBlock(libdeflate_compressor *compressor, std::vector< std::byte > &compressedData, const void *data, size_t size)
void setError(const std::string &error)
void storeConstValue(int faceid, const void *data, int stride, Res res)
std::vector< FaceInfo > _faceinfo
void addMetaData(const char *key, MetaDataType t, const void *value, int size)
void compressFaceData(libdeflate_compressor *compressor, std::vector< std::byte > &compressedData, FaceDataHeader &fdh, Res res, const void *uncompressedData)
virtual ~PtexMainWriter()
virtual void setEdgeFilterMode(Ptex::EdgeFilterMode edgeFilterMode)
Set edge filter mode.
std::vector< MetaEntry > _metadata
PtexUtils::ReduceFn * _reduceFn
static const int MinReductionLog2
void addToMetaDataBlock(std::vector< std::byte > &dataBlock, const MetaEntry &val)
size_t writeBlock(FILE *fp, const std::vector< std::byte > &dataBlock)
DataType datatype() const
std::vector< FaceRec > _faces
virtual bool writeFace(int faceid, const FaceInfo &f, const void *data, int stride)
std::vector< std::byte > _constdata
PtexMainWriter(const char *path, PtexTexture *tex, Ptex::MeshType mt, Ptex::DataType dt, int nchannels, int alphachan, int nfaces, bool genmipmaps)
virtual void setBorderModes(Ptex::BorderMode uBorderMode, Ptex::BorderMode vBorderMode)
Set border modes.
void flagConstantNeighorhoods()
virtual void release()
Release resources held by this pointer (pointer becomes invalid).
libdeflate_compressor * getCompressor()
Interface for reading data from a ptex file.
Interface for writing data to a ptex file.
void ReduceFn(const void *src, int sstride, int ures, int vres, void *dst, int dstride, DataType dt, int nchannels)
DataType
Type of data stored in texture file.
MeshType
Type of base mesh for which the textures are defined.
BorderMode
How to handle mesh border when filtering.
EdgeFilterMode
How to handle transformation across edges when filtering.
std::vector< std::vector< std::byte > > faceData
std::vector< FaceDataHeader > fdh
std::vector< uint8_t > data