2010-07-05 42 views
0

我正在使用OpenGL Texture2D類和initWithString方法向用戶顯示字符串。當使用iOS 3.0和XCode 3.1.3運行時,所有文本在模擬器中顯示爲黑色,在手機上顯示爲白色。在更新到iOS 4.0,XCode 3.2.3和iPhone SDK 4.0後,文本在手機上顯示爲黑色!不太好,因爲我的應用程序幾乎完整,而且這些圖片是圍繞白色文本設計的。我怎樣才能解決這個問題?從iOS 3.0更新到4.0後更改了Texture2D文本顏色

更多信息:我正在測試3G手機。另外texture2D類來自Crashlanding。

+0

文本在基於SGX的設備(例如iPhone 3GS,第三代iPod touch)上顯示的顏色是什麼?另外,您是使用標準紋理環境模式還是配置您自己的自定義紋理組合器狀態? – Pivot 2010-07-05 07:15:32

+0

我只在3G上測試過。我不確定你的第二個問題(新的OpenGL ES和OpenGL)。 – MrDatabase 2010-07-05 21:07:26

回答

0

好的,我找到了一個解決方案真棒幫助this blog(majicjungle.com)提供的幫助。基本上我修改了鏈接教程前幾個步驟中提到的Texture2D類的initWithString方法。

下面是我所進行的修改:

1)代替四行initWithString瓦特/這四行:

colorSpace = CGColorSpaceCreateDeviceRGB(); 
data = calloc(1, width * height * 4); 
context = CGBitmapContextCreate(data, width, height, 8, width * 4, colorSpace,   kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big); 
CGColorSpaceRelease(colorSpace); 

2)代替 kTexture2DPixelFormat_A8 與 kTexture2DPixelFormat_RGBA8888 在調用initWithData

3)更改 CGContextSetGrayFillColor(context,1.0,1.0) ; 至 CGContextSetRGBFillColor(context,1.0,1.0,1.0,1.0);

CGContextSetRGBFillColor的第2-4個參數是RGB值。使他們全部1.0導致所需的白色字體顏色。

我絕對建議閱讀博客文章...這是非常有益的。