2016-10-13 2 views
0

Я использую kivy в своем приложении и пытаюсь создать прозрачное фоновое окно. Я делаю это с:API OpenGL glClearColor альфа-канал ничего не делает

Window.clearcolor = (1,1,1,0) 
Window.clear() 

Это производит белое окно - непрозрачное. Kivy напрямую звонит glClearColor из API OpenGL 4 (https://www.khronos.org/opengl/).
docs говорят, что последний параметр - это альфа-канал, поэтому я ожидаю, что мое окно будет прозрачным.

Есть ли у меня ошибка в моем мышлении или это ошибка?

+0

Вы проверили состояние трубопровода GL? Действительно ли включен режим «Блендинг» с помощью используемой структуры? Нет никакого вопроса о том, что «glClearColor», но, как отметил pleluron, это не будет иметь никакого эффекта без включения смешивания. – thokra

ответ

1

Стандартные пиксельные форматы часто RGB, поэтому альфа-значение используется только для операций смешивания. Вам нужен правильный формат пикселей, чтобы сделать ваши поверхности прозрачными, см. this answer.

+0

mh ok - мне нужно адаптировать мой вопрос с iam на рабочем столе, а не на android ... ty anyway – Fuzzyma

+0

Я сделал предположение, что kivy был построен поверх OpenGL ES, но для этого нет кросс-платформенного решения. Kivy должен реализовать это самостоятельно, но чтобы ответить на ваш вопрос, 'glClearColor()' работает по назначению. – pleluron

+0

Kivy использует открытую версию gl в системе, если таковая имеется. В моем случае это opengl 4. Thx для вашего разъяснения! – Fuzzyma

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