2011-09-16 17 views
2

私はアンドロイドでopenglを使っています。何人かが(画面全体の代わりに)ビューポートの背景色を設定する方法を教えてくれますか?私のアプリケーションでは2つのビューポートがあり、2つのビューポートに異なる色を設定したいと思います。各ビューポートについてはビューポートの色を設定するには

答えて

2

、あなたはまた、シザーテストを使用する場合があります。

+0

こんにちは、ありがとう。 glScissorは動作します。 B/W、以前ははさみテストを試みましたが、コンパイルエラーが発生しました。 glEnableの簡単な変更がそのトリックを行います。 glEnable(GL_SCISSOR_TEST)の代わりにglEnable(gl10.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); 

それに描画する前に。私は、シザーテストがglClearに影響を与えるかなり確信している

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

glClearは全体のフレームバッファと現在のビューポート(つまりわからない)だけでなく、影響を与える場合

+0

こんにちは、ごめんなさい。私はすでにこれらの呼び出しを試みました。しかし、呼び出しはビューポートではなく画面全体に影響します。私が間違っていれば私を修正してください。 – Raj

+0

はい、glViewportはglClearに影響しません。クリアする前に追加のクリッピングやシザーテストを行う必要があります。あるいは、zバッファの書き込みをオフにして直交モードで四角形を使用して、ビューポートの背景を描画することもできます。 – Marc

関連する問題