2010-07-05 48 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导致所需的白色字体颜色。

我绝对建议阅读博客文章...这是非常有益的。