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