1/*!**************************************************************************** 2 3 @file PVRTUnicode.h 4 @copyright Copyright (c) Imagination Technologies Limited. 5 @brief A small collection of functions used to decode Unicode formats to 6 individual code points. 7 8******************************************************************************/ 9#ifndef _PVRTUNICODE_H_ 10#define _PVRTUNICODE_H_ 11 12#include "PVRTGlobal.h" 13#include "PVRTError.h" 14#include "PVRTArray.h" 15 16/**************************************************************************** 17** Functions 18****************************************************************************/ 19 20/*!*************************************************************************** 21 @brief Decodes a UTF8-encoded string in to Unicode code points 22 (UTF32). If pUTF8 is not null terminated, the results are 23 undefined. 24 @param[in] pUTF8 A UTF8 string, which is null terminated. 25 @param[out] aUTF32 An array of Unicode code points. 26 @return Success or failure. 27*****************************************************************************/ 28EPVRTError PVRTUnicodeUTF8ToUTF32( const PVRTuint8* const pUTF8, CPVRTArray<PVRTuint32>& aUTF32); 29 30/*!*************************************************************************** 31 @brief Decodes a UTF16-encoded string in to Unicode code points 32 (UTF32). If pUTF16 is not null terminated, the results are 33 undefined. 34 @param[in] pUTF16 A UTF16 string, which is null terminated. 35 @param[out] aUTF32 An array of Unicode code points. 36 @return Success or failure. 37*****************************************************************************/ 38EPVRTError PVRTUnicodeUTF16ToUTF32(const PVRTuint16* const pUTF16, CPVRTArray<PVRTuint32>& aUTF32); 39 40/*!*************************************************************************** 41 @brief Calculates the length of a UTF8 string. If pUTF8 is 42 not null terminated, the results are undefined. 43 @param[in] pUTF8 A UTF8 string, which is null terminated. 44 @return The length of the string, in Unicode code points. 45*****************************************************************************/ 46unsigned int PVRTUnicodeUTF8Length(const PVRTuint8* const pUTF8); 47 48/*!*************************************************************************** 49 @brief Calculates the length of a UTF16 string. 50 If pUTF16 is not null terminated, the results are 51 undefined. 52 @param[in] pUTF16 A UTF16 string, which is null terminated. 53 @return The length of the string, in Unicode code points. 54*****************************************************************************/ 55unsigned int PVRTUnicodeUTF16Length(const PVRTuint16* const pUTF16); 56 57/*!*************************************************************************** 58 @brief Checks whether the encoding of a UTF8 string is valid. 59 If pUTF8 is not null terminated, the results are undefined. 60 @param[in] pUTF8 A UTF8 string, which is null terminated. 61 @return true or false 62*****************************************************************************/ 63bool PVRTUnicodeValidUTF8(const PVRTuint8* const pUTF8); 64 65#endif /* _PVRTUNICODE_H_ */ 66 67/***************************************************************************** 68 End of file (PVRTUnicode.h) 69*****************************************************************************/ 70 71