我在尋求建議之前,深入瞭解我的下一個項目。我想支持所有現在由iOS支持的各種解決方案(視網膜,非視網膜iPhone和全部3個iPad)。開發視網膜和非視網膜顯示器OpenGL ES
開發人員最常用的方法是什麼?我看到了類似的問題,但具體性質。我正在尋找完整的軟件包。 IE瀏覽器。我想支持不同分辨率的位圖字體,圖像等。
是設備專用開關,還是if語句標準?
感謝您的高級幫助。
Ë
編輯:我發現這個蘋果:
塊引用 如果應用程序使用的OpenGL ES渲染,現有的圖形碼應繼續無需任何修改工作。然而,當在高分辨率屏幕上繪製時,您的內容會相應地縮放並顯得更加塊狀。塊狀外觀的原因是,用於支持OpenGL ES渲染緩衝區的CAEAGLLayer類的默認行爲與其他Core Animation圖層對象相同。換句話說,它的縮放因子最初設置爲1.0,這將導致Core Animation合成器在高分辨率屏幕上縮放圖層的內容。爲了避免這種塊狀外觀,您需要增加OpenGL ES渲染緩衝區的大小以匹配屏幕的大小。 (隨着像素數量的增加,您可以增加爲內容提供的細節數量。)因爲向渲染緩衝區添加更多像素會有性能影響,但您必須明確選擇支持高分辨率屏幕。
Blockquote 要啓用高分辨率繪圖,您必須更改用於呈現OpenGL ES內容的視圖的比例因子。將視圖的contentScaleFactor屬性從1.0更改爲2.0會觸發底層CAEAGLLayer對象的比例因子的匹配更改。 renderbufferStorage:fromDrawable:方法,用於將圖層對象綁定到渲染緩衝區,通過將圖層的邊界乘以其比例因子來計算渲染緩衝區的大小。因此,縮放倍數倍增了渲染緩衝區的寬度和高度,爲您的內容提供更多像素。之後,您可以爲這些附加像素提供內容。
所以我想我更新的問題是如何加倍上述比例因子?
編輯2:
我幾乎沒有...
我用這對我EAGLView內規模:
// Adjust for retina displays
if ([self respondsToSelector:@selector(setContentScaleFactor:)])
{
self.contentScaleFactor = [[UIScreen mainScreen] scale];
}
現在仍然是唯一的問題是原產地是莫名其妙弄亂。顯示圖像現在根據分辨率進行縮放,但在較大的分辨率下,圖像從屏幕中間開始。
請幫忙!
編輯3:解決!!!!我的方向遇到了問題。
您需要確保您的翻譯已更新。我用這個:
glTranslatef(width/2, height /2, 0);
glRotatef(-90, 0, 0, 1);
glTranslatef(-1 * (height/2),-1 * (width/2),0);
謝謝你的樣子。我希望這可以幫助別人。
與設置conten任何運氣tScale = 2在iPad3上支持視網膜? http://stackoverflow.com/questions/11276027/where-to-start-with-an-opengl-painter-for-the-retina-display –
我還沒有嘗試iPad的視網膜顯示呢。當我這樣做時,我會再次觸及。 –