bool HKWidgetRenderer::SetProperty(const char *pProperty, const char *pValue, HKWidget *pWidget) { if(!MFString_CaseCmp(pProperty, "background_image")) { if(pImage) MFMaterial_Destroy(pImage); pImage = MFMaterial_Create(pValue); if(pImage) { int texW, texH; MFTexture *pTex = MFMaterial_GetParameterT(pImage, MFMatStandard_Texture, MFMatStandard_Tex_DifuseMap); MFTexture_GetTextureDimensions(pTex, &texW, &texH); texWidth = (float)texW; texHeight = (float)texH; if(pWidget && (pWidget->bAutoWidth || pWidget->bAutoHeight)) { if(pWidget->bAutoWidth && pWidget->bAutoHeight) pWidget->Resize(MakeVector(texWidth, texHeight)); else if(pWidget->bAutoWidth) pWidget->UpdateWidth(texWidth); else pWidget->UpdateHeight(texHeight); } } return true; } else if(!MFString_CaseCmp(pProperty, "background_align")) { imageAlignment = (HKWidget::Justification)HKWidget_GetEnumValue(pValue, HKWidget::sJustifyKeys); return true; } else if(!MFString_CaseCmp(pProperty, "background_colour")) { colour = HKWidget_GetColourFromString(pValue); return true; } else if(!MFString_CaseCmp(pProperty, "background_padding")) { padding = HKWidget_GetVectorFromString(pValue); return true; } else if(!MFString_CaseCmp(pProperty, "background_9-cell-margin")) { margin9Cell = MFString_AsciiToFloat(pValue); return true; } else if(!MFString_CaseCmp(pProperty, "border_width")) { border = HKWidget_GetVectorFromString(pValue); return true; } else if(!MFString_CaseCmp(pProperty, "border_colour")) { borderColour = HKWidget_GetColourFromString(pValue); return true; } return false; }
//--------------------------------------------------------------------------------------------------------------------- MF_API void MFPrimitive_BeginBlitter(int numBlits) { MFView_Push(); MFRect rect; MFDisplay_GetDisplayRect(&rect); MFView_SetOrtho(&rect); MFMaterial *pMat = MFMaterial_GetCurrent(); MFTexture *pTex = MFMaterial_GetParameterT(pMat, MFMatStandard_Texture, MFMatStandard_Tex_DifuseMap); MFTexture_GetTextureDimensions(pTex, &textureWidth, &textureHeight); uScale = 1.0f / (float)textureWidth; vScale = 1.0f / (float)textureHeight; halfTexelU = uScale * 0.5f; halfTexelV = vScale * 0.5f; MFPrimitive(PT_QuadList); MFBegin(numBlits * 2); }