Ptex
Classes | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
PtexMainWriter Class Reference

#include <PtexWriter.h>

Inheritance diagram for PtexMainWriter:
PtexWriterBase PtexWriter

Classes

struct  LevelRec
 

Public Member Functions

 PtexMainWriter (const char *path, PtexTexture *tex, Ptex::MeshType mt, Ptex::DataType dt, int nchannels, int alphachan, int nfaces, bool genmipmaps)
 
virtual bool close (Ptex::String &error)
 Close the file.
 
virtual bool writeFace (int faceid, const FaceInfo &f, const void *data, int stride)
 
virtual bool writeConstantFace (int faceid, const FaceInfo &f, const void *data)
 
- Public Member Functions inherited from PtexWriterBase
virtual void setBorderModes (Ptex::BorderMode uBorderMode, Ptex::BorderMode vBorderMode)
 Set border modes.
 
virtual void setEdgeFilterMode (Ptex::EdgeFilterMode edgeFilterMode)
 Set edge filter mode.
 
virtual void writeMeta (const char *key, const char *value)
 Write a string as meta data.
 
virtual void writeMeta (const char *key, const int8_t *value, int count)
 Write an array of signed 8-bit integers as meta data.
 
virtual void writeMeta (const char *key, const int16_t *value, int count)
 Write an array of signed 16-bit integers as meta data.
 
virtual void writeMeta (const char *key, const int32_t *value, int count)
 Write an array of signed 32-bit integers as meta data.
 
virtual void writeMeta (const char *key, const float *value, int count)
 Write an array of signed 32-bit floats as meta data.
 
virtual void writeMeta (const char *key, const double *value, int count)
 Write an array of signed 32-bit doubles as meta data.
 
virtual void writeMeta (PtexMetaData *data)
 Copy meta data from an existing meta data block.
 
virtual bool close (Ptex::String &error)
 Close the file.
 
virtual void release ()
 Release resources held by this pointer (pointer becomes invalid).
 
bool ok (Ptex::String &error)
 
void getError (Ptex::String &error)
 
- Public Member Functions inherited from PtexWriter
virtual void release ()=0
 Release resources held by this pointer (pointer becomes invalid).
 
virtual void setBorderModes (Ptex::BorderMode uBorderMode, Ptex::BorderMode vBorderMode)=0
 Set border modes.
 
virtual void setEdgeFilterMode (Ptex::EdgeFilterMode edgeFilterMode)=0
 Set edge filter mode.
 
virtual void writeMeta (const char *key, const char *string)=0
 Write a string as meta data.
 
virtual void writeMeta (const char *key, const int8_t *value, int count)=0
 Write an array of signed 8-bit integers as meta data.
 
virtual void writeMeta (const char *key, const int16_t *value, int count)=0
 Write an array of signed 16-bit integers as meta data.
 
virtual void writeMeta (const char *key, const int32_t *value, int count)=0
 Write an array of signed 32-bit integers as meta data.
 
virtual void writeMeta (const char *key, const float *value, int count)=0
 Write an array of signed 32-bit floats as meta data.
 
virtual void writeMeta (const char *key, const double *value, int count)=0
 Write an array of signed 32-bit doubles as meta data.
 
virtual void writeMeta (PtexMetaData *data)=0
 Copy meta data from an existing meta data block.
 
virtual bool writeFace (int faceid, const Ptex::FaceInfo &info, const void *data, int stride=0)=0
 Write texture data for a face.
 
virtual bool writeConstantFace (int faceid, const Ptex::FaceInfo &info, const void *data)=0
 Write constant texture data for a face.
 
virtual bool close (Ptex::String &error)=0
 Close the file.
 

Protected Member Functions

virtual ~PtexMainWriter ()
 
virtual void addMetaData (const char *key, MetaDataType t, const void *value, int size)
 
- Protected Member Functions inherited from PtexWriterBase
DataType datatype () const
 
virtual void finish ()=0
 
 PtexWriterBase (const char *path, Ptex::MeshType mt, Ptex::DataType dt, int nchannels, int alphachan, int nfaces, bool compress)
 
virtual ~PtexWriterBase ()
 
int writeBlank (FILE *fp, int size)
 
int writeBlock (FILE *fp, const void *data, int size)
 
int writeZipBlock (FILE *fp, const void *data, int size, bool finish=true)
 
int readBlock (FILE *fp, void *data, int size)
 
int copyBlock (FILE *dst, FILE *src, FilePos pos, int size)
 
Res calcTileRes (Res faceres)
 
virtual void addMetaData (const char *key, MetaDataType t, const void *value, int size)
 
void writeConstFaceBlock (FILE *fp, const void *data, FaceDataHeader &fdh)
 
void writeFaceBlock (FILE *fp, const void *data, int stride, Res res, FaceDataHeader &fdh)
 
void writeFaceData (FILE *fp, const void *data, int stride, Res res, FaceDataHeader &fdh)
 
void writeReduction (FILE *fp, const void *data, int stride, Res res)
 
int writeMetaDataBlock (FILE *fp, MetaEntry &val)
 
void setError (const std::string &error)
 
bool storeFaceInfo (int faceid, FaceInfo &dest, const FaceInfo &src, int flags=0)
 
- Protected Member Functions inherited from PtexWriter
virtual ~PtexWriter ()
 Destructor not for public use. Use release() instead.
 

Private Member Functions

virtual void finish ()
 
void generateReductions ()
 
void flagConstantNeighorhoods ()
 
void storeConstValue (int faceid, const void *data, int stride, Res res)
 
void writeMetaData (FILE *fp)
 

Private Attributes

std::string _newpath
 
std::string _tmppath
 
FILE * _tmpfp
 
bool _hasNewData
 
bool _genmipmaps
 
std::vector< FaceInfo > _faceinfo
 
std::vector< uint8_t > _constdata
 
std::vector< uint32_t > _rfaceids
 
std::vector< uint32_t > _faceids_r
 
std::vector< LevelRec_levels
 
std::vector< FilePos_rpos
 
PtexReader_reader
 

Static Private Attributes

static const int MinReductionLog2 =2
 

Additional Inherited Members

- Static Public Member Functions inherited from PtexWriter
static PtexWriteropen (const char *path, Ptex::MeshType mt, Ptex::DataType dt, int nchannels, int alphachan, int nfaces, Ptex::String &error, bool genmipmaps=true)
 Open a new texture file for writing.
 
static PtexWriteredit (const char *path, bool incremental, Ptex::MeshType mt, Ptex::DataType dt, int nchannels, int alphachan, int nfaces, Ptex::String &error, bool genmipmaps=true)
 Open an existing texture file for writing.
 
static bool applyEdits (const char *path, Ptex::String &error)
 Apply edits to a file.
 
- Protected Attributes inherited from PtexWriterBase
bool _ok
 
std::string _error
 
std::string _path
 
std::string _tilepath
 
FILE * _tilefp
 
Header _header
 
ExtHeader _extheader
 
int _pixelSize
 
std::vector< MetaEntry_metadata
 
std::map< std::string, int > _metamap
 
z_stream_s _zstream
 
PtexUtils::ReduceFn_reduceFn
 

Detailed Description

Definition at line 129 of file PtexWriter.h.

Constructor & Destructor Documentation

◆ PtexMainWriter()

PtexMainWriter::PtexMainWriter ( const char *  path,
PtexTexture tex,
Ptex::MeshType  mt,
Ptex::DataType  dt,
int  nchannels,
int  alphachan,
int  nfaces,
bool  genmipmaps 
)

◆ ~PtexMainWriter()

PtexMainWriter::~PtexMainWriter ( )
protectedvirtual

Definition at line 774 of file PtexWriter.cpp.

References _reader, and PtexReader::release().

Member Function Documentation

◆ addMetaData()

virtual void PtexMainWriter::addMetaData ( const char *  key,
MetaDataType  t,
const void *  value,
int  size 
)
inlineprotectedvirtual

Reimplemented from PtexWriterBase.

Definition at line 141 of file PtexWriter.h.

References _hasNewData, and PtexWriterBase::addMetaData().

◆ close()

bool PtexMainWriter::close ( Ptex::String error)
virtual

Close the file.

This operation can take some time if mipmaps are being generated or if there are many edit blocks. If an error occurs while writing, false is returned and an error string is written into the error parameter.

Reimplemented from PtexWriterBase.

Definition at line 780 of file PtexWriter.cpp.

References _hasNewData, _newpath, PtexWriterBase::_path, _reader, _tmpfp, _tmppath, PtexWriterBase::close(), and PtexReader::release().

◆ finish()

void PtexMainWriter::finish ( )
privatevirtual

◆ flagConstantNeighorhoods()

void PtexMainWriter::flagConstantNeighorhoods ( )
private

◆ generateReductions()

void PtexMainWriter::generateReductions ( )
private

◆ storeConstValue()

void PtexMainWriter::storeConstValue ( int  faceid,
const void *  data,
int  stride,
Res  res 
)
private

◆ writeConstantFace()

bool PtexMainWriter::writeConstantFace ( int  faceid,
const FaceInfo &  f,
const void *  data 
)
virtual

◆ writeFace()

bool PtexMainWriter::writeFace ( int  faceid,
const FaceInfo &  f,
const void *  data,
int  stride 
)
virtual

◆ writeMetaData()

void PtexMainWriter::writeMetaData ( FILE *  fp)
private

Member Data Documentation

◆ _constdata

std::vector<uint8_t> PtexMainWriter::_constdata
private

◆ _faceids_r

std::vector<uint32_t> PtexMainWriter::_faceids_r
private

Definition at line 162 of file PtexWriter.h.

Referenced by generateReductions().

◆ _faceinfo

std::vector<FaceInfo> PtexMainWriter::_faceinfo
private

◆ _genmipmaps

bool PtexMainWriter::_genmipmaps
private

Definition at line 158 of file PtexWriter.h.

Referenced by finish(), and writeFace().

◆ _hasNewData

bool PtexMainWriter::_hasNewData
private

Definition at line 157 of file PtexWriter.h.

Referenced by addMetaData(), close(), finish(), PtexMainWriter(), writeConstantFace(), and writeFace().

◆ _levels

std::vector<LevelRec> PtexMainWriter::_levels
private

Definition at line 174 of file PtexWriter.h.

Referenced by finish(), generateReductions(), PtexMainWriter(), and writeFace().

◆ _newpath

std::string PtexMainWriter::_newpath
private

Definition at line 154 of file PtexWriter.h.

Referenced by close(), finish(), and PtexMainWriter().

◆ _reader

PtexReader* PtexMainWriter::_reader
private

Definition at line 177 of file PtexWriter.h.

Referenced by close(), finish(), PtexMainWriter(), and ~PtexMainWriter().

◆ _rfaceids

std::vector<uint32_t> PtexMainWriter::_rfaceids
private

Definition at line 161 of file PtexWriter.h.

Referenced by generateReductions().

◆ _rpos

std::vector<FilePos> PtexMainWriter::_rpos
private

Definition at line 175 of file PtexWriter.h.

Referenced by generateReductions(), PtexMainWriter(), and writeFace().

◆ _tmpfp

FILE* PtexMainWriter::_tmpfp
private

◆ _tmppath

std::string PtexMainWriter::_tmppath
private

Definition at line 155 of file PtexWriter.h.

Referenced by close(), and PtexMainWriter().

◆ MinReductionLog2

const int PtexMainWriter::MinReductionLog2 =2
staticprivate

Definition at line 164 of file PtexWriter.h.

Referenced by generateReductions(), and writeFace().


The documentation for this class was generated from the following files: