vrshoot
diff libs/assimp/assimp/cfileio.h @ 0:b2f14e535253
initial commit
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Sat, 01 Feb 2014 19:58:19 +0200 |
parents | |
children |
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/libs/assimp/assimp/cfileio.h Sat Feb 01 19:58:19 2014 +0200 1.3 @@ -0,0 +1,135 @@ 1.4 +/* 1.5 +--------------------------------------------------------------------------- 1.6 +Open Asset Import Library (assimp) 1.7 +--------------------------------------------------------------------------- 1.8 + 1.9 +Copyright (c) 2006-2012, assimp team 1.10 + 1.11 +All rights reserved. 1.12 + 1.13 +Redistribution and use of this software in source and binary forms, 1.14 +with or without modification, are permitted provided that the following 1.15 +conditions are met: 1.16 + 1.17 +* Redistributions of source code must retain the above 1.18 + copyright notice, this list of conditions and the 1.19 + following disclaimer. 1.20 + 1.21 +* Redistributions in binary form must reproduce the above 1.22 + copyright notice, this list of conditions and the 1.23 + following disclaimer in the documentation and/or other 1.24 + materials provided with the distribution. 1.25 + 1.26 +* Neither the name of the assimp team, nor the names of its 1.27 + contributors may be used to endorse or promote products 1.28 + derived from this software without specific prior 1.29 + written permission of the assimp team. 1.30 + 1.31 +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 1.32 +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 1.33 +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 1.34 +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 1.35 +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 1.36 +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 1.37 +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 1.38 +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 1.39 +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 1.40 +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 1.41 +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 1.42 +--------------------------------------------------------------------------- 1.43 +*/ 1.44 + 1.45 +/** @file aiFileIO.h 1.46 + * @brief Defines generic C routines to access memory-mapped files 1.47 + */ 1.48 +#ifndef AI_FILEIO_H_INC 1.49 +#define AI_FILEIO_H_INC 1.50 + 1.51 +#include "types.h" 1.52 +#ifdef __cplusplus 1.53 +extern "C" { 1.54 +#endif 1.55 +struct aiFileIO; 1.56 +struct aiFile; 1.57 + 1.58 +// aiFile callbacks 1.59 +typedef size_t (*aiFileWriteProc) (C_STRUCT aiFile*, const char*, size_t, size_t); 1.60 +typedef size_t (*aiFileReadProc) (C_STRUCT aiFile*, char*, size_t,size_t); 1.61 +typedef size_t (*aiFileTellProc) (C_STRUCT aiFile*); 1.62 +typedef void (*aiFileFlushProc) (C_STRUCT aiFile*); 1.63 +typedef aiReturn (*aiFileSeek)(C_STRUCT aiFile*, size_t, aiOrigin); 1.64 + 1.65 +// aiFileIO callbacks 1.66 +typedef aiFile* (*aiFileOpenProc) (C_STRUCT aiFileIO*, const char*, const char*); 1.67 +typedef void (*aiFileCloseProc) (C_STRUCT aiFileIO*, C_STRUCT aiFile*); 1.68 + 1.69 +// Represents user-defined data 1.70 +typedef char* aiUserData; 1.71 + 1.72 +// ---------------------------------------------------------------------------------- 1.73 +/** @brief C-API: File system callbacks 1.74 + * 1.75 + * Provided are functions to open and close files. Supply a custom structure to 1.76 + * the import function. If you don't, a default implementation is used. Use custom 1.77 + * file systems to enable reading from other sources, such as ZIPs 1.78 + * or memory locations. */ 1.79 +struct aiFileIO 1.80 +{ 1.81 + /** Function used to open a new file 1.82 + */ 1.83 + aiFileOpenProc OpenProc; 1.84 + 1.85 + /** Function used to close an existing file 1.86 + */ 1.87 + aiFileCloseProc CloseProc; 1.88 + 1.89 + /** User-defined, opaque data */ 1.90 + aiUserData UserData; 1.91 +}; 1.92 + 1.93 +// ---------------------------------------------------------------------------------- 1.94 +/** @brief C-API: File callbacks 1.95 + * 1.96 + * Actually, it's a data structure to wrap a set of fXXXX (e.g fopen) 1.97 + * replacement functions. 1.98 + * 1.99 + * The default implementation of the functions utilizes the fXXX functions from 1.100 + * the CRT. However, you can supply a custom implementation to Assimp by 1.101 + * delivering a custom aiFileIO. Use this to enable reading from other sources, 1.102 + * such as ZIP archives or memory locations. */ 1.103 +struct aiFile 1.104 +{ 1.105 + /** Callback to read from a file */ 1.106 + aiFileReadProc ReadProc; 1.107 + 1.108 + /** Callback to write to a file */ 1.109 + aiFileWriteProc WriteProc; 1.110 + 1.111 + /** Callback to retrieve the current position of 1.112 + * the file cursor (ftell()) 1.113 + */ 1.114 + aiFileTellProc TellProc; 1.115 + 1.116 + /** Callback to retrieve the size of the file, 1.117 + * in bytes 1.118 + */ 1.119 + aiFileTellProc FileSizeProc; 1.120 + 1.121 + /** Callback to set the current position 1.122 + * of the file cursor (fseek()) 1.123 + */ 1.124 + aiFileSeek SeekProc; 1.125 + 1.126 + /** Callback to flush the file contents 1.127 + */ 1.128 + aiFileFlushProc FlushProc; 1.129 + 1.130 + /** User-defined, opaque data 1.131 + */ 1.132 + aiUserData UserData; 1.133 +}; 1.134 + 1.135 +#ifdef __cplusplus 1.136 +} 1.137 +#endif 1.138 +#endif // AI_FILEIO_H_INC