РЕДАКТИРОВАТЬ: Поскольку моя первоначальная проблема была из-за моей ошибки, я перефразирую этот вопрос.
Я размещаю Silverlight в окне внутри моего приложения C ++, основываясь на найденном коде здесь .
Теперь я хотел бы скопировать содержимое элемента управления в память, чтобы использовать содержимое внутри моего собственного средства визуализации. Проблема у меня заключается в том, что когда я устанавливаю «EnableGPUAcceleration» в true, BitBlt перестает работать, все, что я получаю, это чернота.
Мне кажется, что теоретически должен быть способ скопировать содержимое элемента управления Silverlight с ускорением на GPU с помощью его альфа-канала, например, с чем-то вроде glReadPixels.
Кто-нибудь задумывался о том, как скопировать содержимое с помощью альфа-канала неоконтролируемого gpu-ускорителя Silverlight?
Другая проблема заключается в том, что окно должно быть видимым, и никакое другое окно не может перекрывать его, в противном случае я не получаю надлежащее содержимое. Я бы хотел, чтобы окно хостинга было невидимым.
Рабочий пример кода можно найти здесь (хотя без фактического "тона" BitBlt, который я пытаюсь заставить работать).