EDIT: Vì vấn đề ban đầu của tôi là do lỗi của tôi, tôi sẽ lặp lại câu hỏi này.Sao chép nội dung của điều khiển Silverlight được lưu trữ
Im lưu trữ Silverlight trong cửa sổ bên trong ứng dụng C++ của tôi dựa trên mã được tìm thấy here.
Bây giờ tôi muốn sao chép nội dung của bộ điều khiển sang bộ nhớ để sử dụng nội dung bên trong trình kết xuất của chính tôi. Vấn đề tôi có là khi tôi đặt "EnableGPUAcceleration" thành true, sau đó BitBlt ngừng hoạt động, tất cả những gì tôi nhận được là màu đen.
Tôi cảm thấy rằng về mặt lý thuyết, có một cách để sao chép nội dung của một điều khiển Silverlight tăng tốc GPU với alpha của nó, ví dụ: với một cái gì đó giống như glReadPixels.
Bất kỳ ai có ý tưởng nào về cách sao chép nội dung bằng alpha của điều khiển Silverlight không tăng tốc gpu không cửa sổ?
Một vấn đề khác là cửa sổ phải hiển thị và không cửa sổ nào khác có thể chồng lên nhau, nếu không tôi sẽ không nhận được nội dung phù hợp. Tôi muốn cửa sổ lưu trữ được ẩn.
Mã mẫu làm việc có thể được tìm thấy here (mặc dù không có BitBlt thực tế "ting" mà tôi đang cố gắng để có được để làm việc).
Bạn có mã mẫu thực sự chứng minh sự cố alpha của bạn không? Bởi vì điều khiển Silverlight được lưu trữ của CodeProject có thể được sao chép thành công với BitBlt, phải không? Hay tôi đang thiếu một cái gì đó? –
@Simon: Bạn thực sự chính xác. Mã thử nghiệm của tôi không chính xác. – ronag