| /*!**************************************************************************** |
| |
| @file PVRTResourceFile.h |
| @copyright Copyright (c) Imagination Technologies Limited. |
| @brief Simple resource file wrapper |
| |
| ******************************************************************************/ |
| #ifndef _PVRTRESOURCEFILE_H_ |
| #define _PVRTRESOURCEFILE_H_ |
| |
| #include <stdlib.h> |
| #include "PVRTString.h" |
| |
| typedef void* (*PFNLoadFileFunc)(const char*, char** pData, size_t &size); |
| typedef bool (*PFNReleaseFileFunc)(void* handle); |
| |
| /*!*************************************************************************** |
| @class CPVRTResourceFile |
| @brief Simple resource file wrapper |
| *****************************************************************************/ |
| class CPVRTResourceFile |
| { |
| public: |
| /*!*************************************************************************** |
| @fn SetReadPath |
| @param[in] pszReadPath The path where you would like to read from |
| @brief Sets the read path |
| *****************************************************************************/ |
| static void SetReadPath(const char* pszReadPath); |
| |
| /*!*************************************************************************** |
| @fn GetReadPath |
| @return The currently set read path |
| @brief Returns the currently set read path |
| *****************************************************************************/ |
| static CPVRTString GetReadPath(); |
| |
| /*!*************************************************************************** |
| @fn SetLoadReleaseFunctions |
| @param[in] pLoadFileFunc Function to use for opening a file |
| @param[in] pReleaseFileFunc Function to release any data allocated by the load function |
| @brief This function is used to override the CPVRTResource file loading functions. If |
| you pass NULL in as the load function CPVRTResource will use the default functions. |
| *****************************************************************************/ |
| static void SetLoadReleaseFunctions(void* pLoadFileFunc, void* pReleaseFileFunc); |
| |
| /*!*************************************************************************** |
| @brief CPVRTResourceFile constructor |
| @param[in] pszFilename Name of the file you would like to open |
| *****************************************************************************/ |
| CPVRTResourceFile(const char* pszFilename); |
| |
| /*!*************************************************************************** |
| @brief CPVRTResourceFile constructor |
| @param[in] pData A pointer to the data you would like to use |
| @param[in] i32Size The size of the data |
| *****************************************************************************/ |
| CPVRTResourceFile(const char* pData, size_t i32Size); |
| |
| /*!*************************************************************************** |
| @fn ~CPVRTResourceFile |
| @brief Destructor |
| *****************************************************************************/ |
| virtual ~CPVRTResourceFile(); |
| |
| /*!*************************************************************************** |
| @fn IsOpen |
| @return true if the file is open |
| @brief Is the file open |
| *****************************************************************************/ |
| bool IsOpen() const; |
| |
| /*!*************************************************************************** |
| @fn IsMemoryFile |
| @return true if the file was opened from memory |
| @brief Was the file opened from memory |
| *****************************************************************************/ |
| bool IsMemoryFile() const; |
| |
| /*!*************************************************************************** |
| @fn Size |
| @return The size of the opened file |
| @brief Returns the size of the opened file |
| *****************************************************************************/ |
| size_t Size() const; |
| |
| /*!*************************************************************************** |
| @fn DataPtr |
| @return A pointer to the file data |
| @brief Returns a pointer to the file data. If the data is expected |
| to be a string don't assume that it is null-terminated. |
| *****************************************************************************/ |
| const void* DataPtr() const; |
| |
| /*!*************************************************************************** |
| @fn Close |
| @brief Closes the file |
| *****************************************************************************/ |
| void Close(); |
| |
| protected: |
| bool m_bOpen; |
| bool m_bMemoryFile; |
| size_t m_Size; |
| const char* m_pData; |
| void *m_Handle; |
| |
| static CPVRTString s_ReadPath; |
| static PFNLoadFileFunc s_pLoadFileFunc; |
| static PFNReleaseFileFunc s_pReleaseFileFunc; |
| }; |
| |
| #endif // _PVRTRESOURCEFILE_H_ |
| |
| /***************************************************************************** |
| End of file (PVRTResourceFile.h) |
| *****************************************************************************/ |
| |