bool SceneFileHandlerBase::write(Node * const node, std::ostream &os, Char8 const *fileNameOrExtension, bool compress ) { bool retCode = false; SceneFileType *type = getFileType(fileNameOrExtension); if(type != NULL) { updateWriteProgress(0); SINFO << "try to write stream as " << type->getName() << std::endl; if(_writeFP != NULL) { retCode = _writeFP(type, node, os, fileNameOrExtension, compress); } else { if(compress == true) { #ifdef OSG_WITH_ZLIB SINFO << "writing compressed stream." << std::endl; zip_ostream zipper(os, true); retCode = type->write(node, zipper, fileNameOrExtension); zipper.zflush(); #else SFATAL << "Compressed streams are not supported! Build " << "with zlib= options." << std::endl; #endif } else { retCode = type->write(node, os, fileNameOrExtension); } } } else { SWARNING << "can't write stream unknown scene format" << std::endl; } return retCode; }
//---------------------------- // Function name: write //---------------------------- // //Parameters: //p: const Scene &image, const char *fileName //GlobalVars: //g: //Returns: //r:bool // Caution //c: //Assumations: //a: //Describtions: //d: //SeeAlso: //s: // //------------------------------ bool SceneFileHandler::write(const NodePtr &node, std::ostream &os, const Char8 *fileNameOrExtension, bool compress) { bool retCode = false; SceneFileType *type = getFileType(fileNameOrExtension); if(type) { updateWriteProgress(0); SINFO << "try to write stream as " << type->getName() << std::endl; if(_writeFP != NULL) { retCode = _writeFP(type, node, os, fileNameOrExtension, compress); } else { if(compress) { #ifdef OSG_ZSTREAM_SUPPORTED SINFO << "writing compressed stream." << std::endl; zip_ostream zipper(os, true); retCode = type->write(node, zipper, fileNameOrExtension); zipper.zflush(); #else SFATAL << "Compressed streams are not supported! Configure with --enable-png --with-png=DIR options." << std::endl; #endif } else { retCode = type->write(node, os, fileNameOrExtension); } } } else SWARNING << "can't write stream unknown scene format" << std::endl; return retCode; }