Exemple #1
0
//============================================================
// <T>将字符串转化为8位字符串</T>
//
// @param pTarget转换后的字符串
// @param size pTarget容量
// @param pValue 被转换字符串
// @return 所需要长度,如果失败返回-1
//============================================================
TInt RString16::ConvertToString8(TChar8* pTarget, TInt size, TChar16C* pValue){
   MO_ASSERT(pTarget);
   MO_ASSERT(pValue);
   TSize length = MO_LIB_STRING_LENGTH16(pValue);
#ifdef _MO_WINDOWS
   TInt result = WideCharToMultiByte(CP_ACP, 0, pValue, length, pTarget, size, NULL, NULL);
#endif // _MO_WINDOWS
#ifdef _MO_LINUX
   iconv_t code = iconv_open("GBK", "UTF-8");
   if(NULL == code){
      MO_STATIC_FATAL("Iconv open failure.");
   }
   TChar8* pInput = (TChar8*)pValue;
   TSize inputLength = length;
   TSize outputLength = size;
   TInt result = iconv(code, &pInput, &inputLength, &pTarget, &outputLength);
   if(-1 == result){
      MO_STATIC_FATAL("Iconv convert failure.");
      return -1;
   }
   iconv_close(code);
   pTarget[outputLength] = 0;
#endif // _MO_LINUX
#ifdef _MO_ANDROID
   TInt result = length;
   // g_lpdlIcuuc = dlopen("/system/lib/libicuuc.so", RTLD_LAZY);
#endif // _MO_ANDROID
   return result;
}
MO_NAMESPACE_BEGIN

//============================================================
// <T>½âÎö×Ö·û´®ÎªÃ¶¾ÙÄÚÈÝ¡£</T>
//
// @param pValue ×Ö·û´®
// @param bufferCd ĬÈÏÄÚÈÝ
// @return ö¾ÙÄÚÈÝ
//============================================================
ERenderShaderBuffer RRenderShaderBuffer::Parse(TCharC* pValue, ERenderShaderBuffer bufferCd){
   if(pValue != NULL){
      TFsCode code = pValue;
      code.ToLower();
      if(code.Equals("globalstatic")){
         return ERenderShaderBuffer_GlobalStatic;
      }else if(code.Equals("globaldynamic")){
         return ERenderShaderBuffer_GlobalDynamic;
      }else if(code.Equals("techniquestatic")){
         return ERenderShaderBuffer_TechniqueStatic;
      }else if(code.Equals("techniquedynamic")){
         return ERenderShaderBuffer_TechniqueDynamic;
      }else if(code.Equals("effectstatic")){
         return ERenderShaderBuffer_EffectStatic;
      }else if(code.Equals("effectdynamic")){
         return ERenderShaderBuffer_EffectDynamic;
      }else if(code.Equals("renderabledynamic")){
         return ERenderShaderBuffer_RenderableDynamic;
      }else if(code.Equals("renderablematerial")){
         return ERenderShaderBuffer_RenderableMaterial;
      }else{
         MO_STATIC_FATAL("Parse shader buffer type failure. (value=%s)", pValue);
      }
   }
   return bufferCd;
}
Exemple #3
0
MO_NAMESPACE_BEGIN

//============================================================
// <T>½âÎö×Ö·û´®ÎªÃ¶¾ÙÄÚÈÝ¡£</T>
//
// @param pValue ×Ö·û´®
// @param blendModeCd ĬÈÏÄÚÈÝ
// @return ö¾ÙÄÚÈÝ
//============================================================
ERenderBlendMode RRenderBlendMode::Parse(TCharC* pValue, ERenderBlendMode blendModeCd){
   if(pValue != NULL){
      TFsCode code = pValue;
      code.ToLower();
      if(code.Equals("none")){
         return ERenderBlendMode_None;
      }else if(code.Equals("sourcealpha")){
         return ERenderBlendMode_SourceAlpha;
      }else if(code.Equals("oneminussourcealpha")){
         return ERenderBlendMode_OneMinusSourceAlpha;
      }else{
         MO_STATIC_FATAL("Parse blend mode failure. (value=%s)", pValue);
      }
   }
   return blendModeCd;
}
Exemple #4
0
//============================================================
// <T>²éÕÒ¶¥µã×ø±ê¡£</T>
//============================================================
TCharC* RFbxEnum::ParseName(FbxNodeAttribute::EType typeCd){
   switch(typeCd){
      case FbxNodeAttribute::eUnknown:
         return TC("Unknown");
      case FbxNodeAttribute::eNull:
         return TC("Null");
      case FbxNodeAttribute::eMarker:
         return TC("Marker");
      case FbxNodeAttribute::eSkeleton:
         return TC("Skeleton");
      case FbxNodeAttribute::eMesh:
         return TC("Mesh");
      case FbxNodeAttribute::eNurbs:
         return TC("Nurbs");
      case FbxNodeAttribute::ePatch:
         return TC("Patch");
      case FbxNodeAttribute::eCamera:
         return TC("Camera");
      case FbxNodeAttribute::eCameraStereo:
         return TC("CameraStereo");
      case FbxNodeAttribute::eCameraSwitcher:
         return TC("CameraSwitcher");
      case FbxNodeAttribute::eLight:
         return TC("Light");
      case FbxNodeAttribute::eOpticalReference:
         return TC("OpticalReference");
      case FbxNodeAttribute::eOpticalMarker:
         return TC("OpticalMarker");
      case FbxNodeAttribute::eNurbsCurve:
         return TC("NurbsCurve");
      case FbxNodeAttribute::eTrimNurbsSurface:
         return TC("TrimNurbsSurface");
      case FbxNodeAttribute::eBoundary:
         return TC("Boundary");
      case FbxNodeAttribute::eNurbsSurface:
         return TC("NurbsSurface");
      case FbxNodeAttribute::eShape:
         return TC("Shape");
      case FbxNodeAttribute::eLODGroup:
         return TC("LODGroup");
      case FbxNodeAttribute::eSubDiv:
         return TC("SubDiv");
      case FbxNodeAttribute::eCachedEffect:
         return TC("CachedEffect");
      case FbxNodeAttribute::eLine:
         return TC("Line");
      default:
         MO_STATIC_FATAL(TC("Invalid type. (type_cd=%d)"), typeCd);
   }
   return TC("Unknown");
}
//============================================================
// <T>½âÎö»º³åΪ²å²ÛλÖá£</T>
//
// @param bufferCd »º³åÀàÐÍ
// @return ²å²ÛλÖÃ
//============================================================
TInt RRenderShaderBuffer::ParseSlot(ERenderShaderBuffer bufferCd){
   switch(bufferCd){
      case ERenderShaderBuffer_GlobalStatic:
         return 0;
      case ERenderShaderBuffer_GlobalDynamic:
         return 1;
      case ERenderShaderBuffer_TechniqueStatic:
         return 2;
      case ERenderShaderBuffer_TechniqueDynamic:
         return 3;
      case ERenderShaderBuffer_EffectStatic:
         return 4;
      case ERenderShaderBuffer_EffectDynamic:
         return 5;
      case ERenderShaderBuffer_RenderableDynamic:
         return 6;
      case ERenderShaderBuffer_RenderableMaterial:
         return 7;
      default:
         MO_STATIC_FATAL("Parse shader buffer group failure. (buffer=%d)", bufferCd);
   }
   return ERenderShaderBuffer_Unknown;
}
//============================================================
// <T>½âÎö»º³åΪ·Ö×黺³å¡£</T>
//
// @param bufferCd »º³åÄÚÈÝ
// @return ö¾ÙÄÚÈÝ
//============================================================
ERenderShaderBuffer RRenderShaderBuffer::ParseGroup(ERenderShaderBuffer bufferCd){
   switch(bufferCd){
      case ERenderShaderBuffer_Global:
      case ERenderShaderBuffer_GlobalStatic:
      case ERenderShaderBuffer_GlobalDynamic:
         return ERenderShaderBuffer_Global;
      case ERenderShaderBuffer_Technique:
      case ERenderShaderBuffer_TechniqueStatic:
      case ERenderShaderBuffer_TechniqueDynamic:
         return ERenderShaderBuffer_Technique;
      case ERenderShaderBuffer_Effect:
      case ERenderShaderBuffer_EffectStatic:
      case ERenderShaderBuffer_EffectDynamic:
         return ERenderShaderBuffer_Effect;
      case ERenderShaderBuffer_Renderable:
      case ERenderShaderBuffer_RenderableDynamic:
      case ERenderShaderBuffer_RenderableMaterial:
         return ERenderShaderBuffer_Renderable;
      default:
         MO_STATIC_FATAL("Parse shader buffer group failure. (buffer=%d)", bufferCd);
   }
   return ERenderShaderBuffer_Unknown;
}
Exemple #7
0
MO_NAMESPACE_BEGIN

//============================================================
// <T>½âÎö×Ö·û´®ÎªÃ¶¾ÙÄÚÈÝ¡£</T>
//
// @param pValue ×Ö·û´®
// @param deviceCd ĬÈÏÄÚÈÝ
// @return ö¾ÙÄÚÈÝ
//============================================================
ERenderDevice RRenderDevice::Parse(TCharC* pValue, ERenderDevice deviceCd){
   if(pValue != NULL){
      TFsCode code = pValue;
      code.ToLower();
      if(code.Equals("unknown")){
         return ERenderDevice_Unknown;
      }else if(code.Equals("directx9")){
         return ERenderDevice_DirectX9;
      }else if(code.Equals("directx10")){
         return ERenderDevice_DirectX10;
      }else if(code.Equals("directx11")){
         return ERenderDevice_DirectX11;
      }else if(code.Equals("opengl2")){
         return ERenderDevice_OpenGL2;
      }else if(code.Equals("opengl3")){
         return ERenderDevice_OpenGL3;
      }else if(code.Equals("opengl4")){
         return ERenderDevice_OpenGL4;
      }else if(code.Equals("opengles2")){
         return ERenderDevice_OpenGLEs2;
      }else if(code.Equals("opengles3")){
         return ERenderDevice_OpenGLEs3;
      }else{
         MO_STATIC_FATAL("Parse render device failure. (value=%s)", pValue);
      }
   }
   return deviceCd;
}