2011-09-16 45 views
2

我正在使用android中的opengl。有人可以讓我知道如何設置視口的背景顏色(而不是整個屏幕)。我在我的應用程序中有2個視口,我想爲2個視口設置不同的顏色。如何設置視口顏色

回答

2

如果glClear影響整個幀緩衝,而不是僅在當前視(不知道這一點),那麼你可能還使用了剪刀測試:

glScissor(x, y, w, h); 
glEnable(GL_SCISSOR_TEST); 
glClearColor(r, g, b, a); 
glClear(GL_COLOR_BUFFER_BIT); 

我敢肯定剪試驗影響glClear

+0

嗨,謝謝。 glScissor確實有效。 B/w,早些時候我嘗試了剪刀測試,但得到編譯錯誤。 glEnable的一個簡單的改變就是這樣。使用glEnable(gl10.GL_SCISSOR_TEST)而不是glEnable(GL_SCISSOR_TEST) – Raj

+0

@Raj如果有幫助,可以提高投票(也許接受)。關於'gl10.',當然你需要調整代碼片段到你的特定GL綁定,我只是使用了原始的OpenGL C代碼,但是這個想法是一樣的。 –

1

對於每個視做:

glViewport(0, 0, width, height); 
glClearColor(0.0, 0.0, 0.0, 1.0); // adapt this to the color you want 
glClear(GL_COLOR_BUFFER_BIT); 

之前,它繪製。

+0

嗨,對不起應該說這個。我已經嘗試過這些電話。但是這些調用會影響整個屏幕而不是視口。如果我錯了,請糾正我。 – Raj

+0

是的,glViewport不影響glClear,在清除之前需要使用額外的剪裁或剪刀測試。或者,您可以使用正交模式下的四邊形繪製視口背景,並將z緩衝區註銷。 – Marc