2012-12-06 32 views
1

如果我正在嘗試更改另一個紋理時,前一個仍在進行中應用程序正在崩潰..使用nineveh gl frsmework更改紋理

這是我的代碼。

- (IBAction爲)changeTexture:(ID)發送{

self.text = [arrayEyes objectAtIndex:[sender tag]]; 
NGLTexture *texture; 
texture = [NGLTexture texture2DWithFile:self.text]; 

NGLMaterialMulti *material = (NGLMaterialMulti *)mesh.material; 

[[material materialWithName:@"lambert16SG"] setDiffuseMap:texture]; 

mesh.material = material; 
[mesh compileCoreMesh]; 

}

+0

這可能有助於http://vimeo.com/24973692 –

回答

0

我要去承擔這個代碼是正確的,在程序開始執行打擊。所以有一點模型仍然被加載在後臺線程中。

因此,當NGLTexture正在另一個線程中處理時,它可能會被分配給網格的材質。您可能會遇到將引發異常或徹底崩潰的分配問題。嘗試等待模型加載器完成處理後再進行分配。查找NGLMeshDelegate協議並嘗試在-meshLoadingDidFinish:處理程序中進行分配。