2011-09-16 4 views
2

Я работаю над opengl в android. Может ли кто-нибудь дать мне знать, как установить цвет фона для окна просмотра (вместо всего экрана). У меня есть 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 действительно работает. Ч/б, раньше я пробовал тест с ножницами, но получал ошибку компиляции. Простое изменение в 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

Смежные вопросы