Отрисовка окна с AlphaBlend

Тема в разделе "WASM.WIN32", создана пользователем _DEN_, 12 ноя 2009.

  1. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Каким образом рисуются окна функцией AlphaBlend? Ну чтобы там теньки были с полупрозрачностью, и т.д. Как-то не совсем это все укладывается в стандартную GDI-отрисовку, т.к. блендить нужно всегда поверх того, что находится под окном. Нужно каждый раз руками получать то, что скрыто под окном, и потом уже отрисовывать одно поверх другого, или есть какой-то более простой способ?
     
  2. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Поясню проблему более детально.

    Во время отрисовки AlphaBlend "наблендивает" новую картинку поверх старой в соответствии со своей альфой из BLENDFUNC и альфой из пикселей. Для того, чтобы окно имело градиентную полупрозрачную теньку, окно должно наблендивать теньку поверх того изображения, которое есть под нашим окном. Которое образуется видом низлежащих окон. Следовательно, нужно либо как-то сказать окну, что его background прозрачный (layered тут не к месту), либо как-то получить картинку того, что происходит под окном. Ни то ни другое у меня пока что сделать не получилось.
     
  3. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    Карочи, есле каму интиресна...

    http://www.gamedev.ru/flame/forum/?id=125895