2014-09-28 81 views
4

我們即將在iOS應用商店推出一款遊戲,最近我們發現它不適用於iOS 8遊戲。遊戲加載到黑屏,但其他所有功能都可以正常工作(音樂可以聽到,它對觸摸屏起反應,顯示屏上什麼都沒有)。ios 8 opengl es 1.1已停產?

我們的引擎非常老,使用OpenGL ES 1.1。我現在確信這是個問題,因爲我嘗試了另一個渲染黑屏的(舊)教程。

我已經在網上尋找關於此的任何類型的討論,但似乎無法找到任何東西。有沒有人有任何1.1應用程序,他們可以確認已停止工作,或工作?

我現在正在考慮將引擎更新爲2.0版本,考慮到項目的規模以及我們很快就會推出的事實,這不算小事。蘋果公司只會放棄對1.1的支持而沒有任何說法,所以我希望我在這方面弄錯了。

+0

我沒有陷入困境,但是你不能嘗試在openGL init期間使用兼容性配置文件嗎? – St0fF 2014-09-28 21:44:17

+0

這可能值得直接聯繫Apple並刻錄TSI。 「OpenGL ES編程指南」仍然在「選擇支持哪些OpenGL ES版本」下引用Open GL ES 1.1。鏈接到文檔:https://developer.apple.com/Library/ios/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/OpenGLESonthe iPhone/OpenGLESontheiPhone.html#//apple_ref/doc/uid/TP40008793-CH101-SW6 – 2014-09-28 21:53:37

+0

@RoboticCat - Yeah ,你說得對,我現在就聯繫他們。 – 2014-09-28 22:09:20

回答

1

好的,我已經取得了一些進展。在回答我的問題時,OpenGL ES 1.1不會停止。

我不知道自iOS 8以來發生了什麼變化,但肯定有些代碼不再適用。我已經設法取得了一些進展,通過一個教程取代我的主要應用程序委託和GL Viewcontroller,現在它正在渲染,儘管在屏幕的一半和歪斜。

所以要確認,1.1是好的,這是我的代碼問題。

+0

任何細節?我遇到了同樣的事情... – 2014-10-01 17:06:35

+0

@graeme即使即時通訊面臨同樣的問題。你可以指定一段代碼打破 – rahulinaction 2014-10-17 10:38:08

+0

對不起,我從來沒有收到你的回覆通知,希望你修好了。 – 2015-05-25 15:24:42

2

我有同樣的問題。整個解決方案 - 而不是addSubview

//[self.window addSubview:glView]; // this produces black screen on ios8 devices 

[self setView: glView]; 

約iOS8上的另一個竅門是,對於一個景觀應用程序的代碼

const CGRect r = [[UIScreen mainScreen] bounds]; 

回報橫向屏幕尺寸。對於iOS < 8,它始終是縱向屏幕尺寸。所以現在我使用max(x,y)作爲X,min(x,y)作爲Y.

+0

任何人都可以發佈一個準系統的OpenGL ES 1.1項目嗎?最好使用自動旋轉並具有導航視圖控制器。 – Rasterman 2014-10-30 17:11:03

1

我修正了一個類似的問題,將CGFloats改爲GLfloats(這包括CGPoints因爲它們使用CGFloats。)與OpenGLES 1.1或2.0無關,因爲我在這兩者中都遇到同樣的問題。

問題在於OpenGL是CGfloats是32位設備上float類型定義的typedef,而它們是64位設備上的double定義。 GLfloats正是爲了解決這個問題而提供的。 也是由蘋果公司提供的,用於解決32位和64位設備之間的這個問題。

+1

將iOS的ES 1.1項目升級到包含x64後,我遇到了同樣的問題。凱文描述了使用GLFloats解決了我的問題。確保我傳遞給GL_FLOAT枚舉類型的數組所繪製的頂點數組由GLfloats組成,而不是由CGPoints內部的CGFloat組成,這爲我解決了這個問題。由於我的目標是iiOS,GLKVector2不可用。但我只是做了兩個GLfloats的新結構。問題已修復。 – 2015-06-13 05:46:47