|  | /*!**************************************************************************** | 
|  |  | 
|  | @file         PVRTUnicode.h | 
|  | @copyright    Copyright (c) Imagination Technologies Limited. | 
|  | @brief        A small collection of functions used to decode Unicode formats to | 
|  | individual code points. | 
|  |  | 
|  | ******************************************************************************/ | 
|  | #ifndef _PVRTUNICODE_H_ | 
|  | #define _PVRTUNICODE_H_ | 
|  |  | 
|  | #include "PVRTGlobal.h" | 
|  | #include "PVRTError.h" | 
|  | #include "PVRTArray.h" | 
|  |  | 
|  | /**************************************************************************** | 
|  | ** Functions | 
|  | ****************************************************************************/ | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @brief      		Decodes a UTF8-encoded string in to Unicode code points | 
|  | (UTF32). If pUTF8 is not null terminated, the results are | 
|  | undefined. | 
|  | @param[in]			pUTF8			A UTF8 string, which is null terminated. | 
|  | @param[out]		aUTF32			An array of Unicode code points. | 
|  | @return 			Success or failure. | 
|  | *****************************************************************************/ | 
|  | EPVRTError PVRTUnicodeUTF8ToUTF32(	const PVRTuint8* const pUTF8, CPVRTArray<PVRTuint32>& aUTF32); | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @brief      		Decodes a UTF16-encoded string in to Unicode code points | 
|  | (UTF32). If pUTF16 is not null terminated, the results are | 
|  | undefined. | 
|  | @param[in]			pUTF16			A UTF16 string, which is null terminated. | 
|  | @param[out]		aUTF32			An array of Unicode code points. | 
|  | @return 			Success or failure. | 
|  | *****************************************************************************/ | 
|  | EPVRTError PVRTUnicodeUTF16ToUTF32(const PVRTuint16* const pUTF16, CPVRTArray<PVRTuint32>& aUTF32); | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @brief      		Calculates the length of a UTF8 string. If pUTF8 is | 
|  | not null terminated, the results are undefined. | 
|  | @param[in]			pUTF8			A UTF8 string, which is null terminated. | 
|  | @return 			The length of the string, in Unicode code points. | 
|  | *****************************************************************************/ | 
|  | unsigned int PVRTUnicodeUTF8Length(const PVRTuint8* const pUTF8); | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @brief      		Calculates the length of a UTF16 string. | 
|  | If pUTF16 is not null terminated, the results are | 
|  | undefined. | 
|  | @param[in]			pUTF16			A UTF16 string, which is null terminated. | 
|  | @return 			The length of the string, in Unicode code points. | 
|  | *****************************************************************************/ | 
|  | unsigned int PVRTUnicodeUTF16Length(const PVRTuint16* const pUTF16); | 
|  |  | 
|  | /*!*************************************************************************** | 
|  | @brief      		Checks whether the encoding of a UTF8 string is valid. | 
|  | If pUTF8 is not null terminated, the results are undefined. | 
|  | @param[in]			pUTF8			A UTF8 string, which is null terminated. | 
|  | @return 			true or false | 
|  | *****************************************************************************/ | 
|  | bool PVRTUnicodeValidUTF8(const PVRTuint8* const pUTF8); | 
|  |  | 
|  | #endif /* _PVRTUNICODE_H_ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | End of file (PVRTUnicode.h) | 
|  | *****************************************************************************/ | 
|  |  |