Размещение RGBA поверх Direct X в том же приложении

У меня в приложении 2 дочерних окна. Первый выполняет рендеринг материала Direct3D. Второй берет изображение BGRA и должен поместить его сверху (с прозрачными областями). Если поиграть с ним, даже если я поставлю порядок z окна BGRA в качестве верхнего уровня, мое окно Direct3D все еще скрывает мою BGRA.

Есть ли способ разместить окно BGRA (которое больше) поверх окна Direct3D?


person Tsahi Levent-Levi    schedule 17.07.2011    source источник


Ответы (1)


Пробовали ли вы использовать многоуровневые окна? Насколько мне известно, именно так большинство простых игровых дополнений делают свои оверлеи, поэтому я предполагаю, что это действительно работает с Direct3D.

Если вам нужны более конкретные инструкции по настройке многоуровневого окна, вам нужно будет рассказать нам немного больше о вашей среде программирования (C++, C# и т. д.).

person Paul-Jan    schedule 20.07.2011
comment
На самом деле захват контекста рендеринга D3D и работа в нем гораздо более распространены (так работают Fraps, Steam, MGE, OBGE, NWSShader, ENB). Я никогда не видел, чтобы для этого использовались многоуровневые окна, что странно, поскольку выглядит удобным решением. - person ssube; 20.07.2011
comment
Afaik, захват контекста рендеринга необходим только в том случае, если вы хотите обработать (прочитать и/или изменить) содержимое, что и делают все упомянутые вами надстройки. Для простого наложения (без обработки, без полноэкранного режима... только карты и статистика) в этом нет необходимости. - person Paul-Jan; 20.07.2011
comment
Я ищу что-то, что меняется: я хочу, чтобы BGRA изменялась со временем (я визуализирую ее каждые несколько сотен миллисекунд), а затем размещала ее в прямом эфире с частотой 30 кадров в секунду. - person Tsahi Levent-Levi; 20.07.2011