2013-05-19 66 views
0

我正在查看LWJGL維基截取屏幕(找到here),並且我注意到了註釋假設一個32位顯示器的每個字節爲紅色,綠色,藍色和α。在此代碼:OpenGL - 獲取顯示顏色位

GL11.glReadBuffer(GL11.GL_FRONT); 
int width = Display.getDisplayMode().getWidth(); 
int height= Display.getDisplayMode().getHeight(); 
int bpp = 4; // Assuming a 32-bit display with a byte each for red, green, 
//blue, and alpha. 
ByteBuffer buffer = BufferUtils.createByteBuffer(width * height * bpp); 
GL11.glReadPixels(0, 0, width, height, GL11.GL_RGBA, GL11.GL_UNSIGNED_BYTE, buffer); 

我將如何改變基於關閉當前系統的無功BPP

+0

你是什麼意思'當前系統'? – fluffels

+0

不應該濫用OpenGL來創建系統顯示的屏幕截圖。您可以使用它來存儲OpenGL drawable內容的內容,但有時發現的創建全屏幕底層窗口以抓取屏幕截圖的技術是非常不可靠的。 – datenwolf

回答

2

如果你還在尋找一個答案:

您可以通過從LWJGL的顯示類得到它得到每當前顯示模式的像素的字節數。它看起來像這樣:

int bpp = Display.getDisplayMode().getBitsPerPixel()/4