WPF และ DWM สำหรับการเปลี่ยนเส้นทางเอาต์พุตผ่านเครือข่าย

ฉันกำลังเขียนแอป WPF ขนาดใหญ่ (ใหญ่เท่าความละเอียดหน้าจอ) ทำงานด้วยการควบคุมพื้นฐาน การเล่นวิดีโอพื้นฐาน ฯลฯ...

ฉันได้ค้นคว้าวิธีการออกอากาศ/เปลี่ยนเส้นทางหน้าต่าง WPF ไปยังจอภาพอื่นผ่านเครือข่ายท้องถิ่น โดยพื้นฐานแล้ว พยายามแสดงภูมิภาคที่เลือกของแอป WPF บนจอภาพแยกแบบเรียลไทม์

ฉันได้อ่านเกี่ยวกับ DWM (ซึ่งฉันไม่เคยมีประสบการณ์มาก่อน) และดูเหมือนว่า API ภาพขนาดย่อจะเป็นวิธีที่ดีในการทำเช่นนี้ เพียงออกอากาศเซกเมนต์ (เช่น 9, 300x300 เซ็กเมนต์) ผ่านเครือข่ายผ่านการออกอากาศเครือข่ายแบบมัลติคาสต์บางประเภท พีซีไคลเอนต์นั้นจะฟังและเรนเดอร์...

สามารถทำได้หรือไม่? เราจะไปทำอะไรแบบนี้ได้อย่างไร?

แก้ไข

ฉันได้อ่าน DWM เพิ่มเติมแล้ว และดูเหมือนว่าจะสามารถทำได้ ลิงก์นี้อธิบายว่า:

คุณสามารถมีการเรนเดอร์ฉาก 3D แบบกระจายและเรียกใช้ด้วยการเร่งด้วยฮาร์ดแวร์เต็มรูปแบบบนเครื่องไคลเอนต์จำนวนเท่าใดก็ได้ สถาปัตยกรรมนี้ช่วยให้ DWM ให้การสนับสนุนระดับเฟิร์สคลาสสำหรับสถานการณ์เดสก์ท็อประยะไกล

ฉันไม่รู้ว่าจะเริ่มมองหาการพัฒนาประเภทนี้ได้ที่ไหน... มีความคิดบ้างไหม?


person Mark    schedule 11.10.2010    source แหล่งที่มา


คำตอบ (1)


คุณสามารถทำได้โดยใช้ API รูปขนาดย่อ DWM หรือไม่ อาจไม่ใช่ เนื่องจาก API ภาพขนาดย่อมีข้อจำกัดมากและไม่อนุญาตให้คุณเข้าถึงภาพจริงได้

โดยทั่วไปสามารถทำได้หรือไม่? ใช่ มีโปรแกรมมากมายที่ถ่ายโอนภาพหน้าจอผ่านเครือข่าย (เช่น Remote Desktop และ VNC)

แต่นี่เป็นวิธีที่ดีที่สุดในการทำเช่นนี้หรือไม่?

คุณต้องมีโปรแกรมเพื่อถ่ายทอดภาพหน้าจอและโปรแกรมอื่นเพื่อวาดภาพ - แล้วทำไมคุณไม่ถ่ายทอดข้อมูลพื้นฐานและทำการแสดงภาพทางฝั่งไคลเอ็นต์ล่ะ?

person Nir    schedule 11.10.2010
comment
การถ่ายโอนข้อมูลบางประเภท (เช่น WCF) ที่มีการเรนเดอร์ในเครื่องดูเหมือนจะเป็นแนวทางที่ดีในการแก้ไขปัญหา โดยพื้นฐานแล้ว พีซีที่มีหน้าจอแยกกันแต่ละเครื่องจะทำหน้าที่เป็นไคลเอนต์สำหรับการโต้ตอบกับโฮสต์ ซึ่งให้ความยืดหยุ่นเพิ่มเติมแก่คุณ เช่น ในที่สุดการเปลี่ยนจอภาพด้านข้างธรรมดาให้เป็นแผงสัมผัสเพื่อการควบคุมเพิ่มเติม - person Dan Bryant; 11.10.2010
comment
ไม่จำเป็นต้องมีการโต้ตอบใดๆ แต่จะมีหน้าจอไคลเอนต์จำนวนมาก... ฉันต้องการให้มันทำงานได้อย่างราบรื่นและยืดหยุ่น ดังนั้นฉันจึงคิดถึงโมเดลไคลเอนต์/เซิร์ฟเวอร์ที่เซิร์ฟเวอร์ออกอากาศบัฟเฟอร์เฟรมทั้งหมดของเครือข่าย (บางที VNC หรือ RDP อาจทำงานได้ดี) จากนั้นไคลเอนต์จะเรนเดอร์เพียงบางส่วนของวิชวลนั้น มันเป็นการตั้งค่าอาร์เรย์มอนิเตอร์ขนาดใหญ่มากกว่า ดังนั้นฉันจึงไม่เห็นวิธีดำเนินการเพียงแค่เผยแพร่ข้อมูลพื้นฐานเท่านั้น - person Mark; 12.10.2010
comment
นอกจากนี้ สิ่งที่คุณหมายถึงว่า API ภาพขนาดย่อนั้นมีจำกัดมากและไม่อนุญาตให้คุณเข้าถึงภาพจริงได้ มันทำให้คุณเข้าถึงอะไรได้บ้าง? - person Mark; 12.10.2010
comment
@Mark - อ่าน เกี่ยวกับ API รูปขนาดย่อบน MSDN - คุณตั้งค่าหน้าต่างต้นทางและสี่เหลี่ยมปลายทางบนหน้าต่างเป้าหมายและภาพขนาดย่อก็เกิดขึ้น รหัสของคุณไม่ได้สัมผัสกับเฟรมจริง (อาจมีวิธีรับเฟรมเนื่องจากเห็นได้ชัดว่าตัวสลับงานบางตัวใช้มัน แต่ฉันไม่เคยเห็นมันบันทึกไว้เลย) - person Nir; 12.10.2010
comment
@Mark - นอกจากนี้ ในฐานะคนที่ใช้เดสก์ท็อประยะไกลบ่อยครั้ง ฉันจะไม่ใช้คำที่ราบรื่นหรือยืดหยุ่นในการอธิบาย การส่งบัฟเฟอร์หน้าจอทั้งหมดเป็นวิธีการสื่อสารที่ใช้แบนด์วิดท์มากที่สุด และเนื่องจากฮาร์ดแวร์กราฟิกของคุณรวดเร็วและเครือข่ายช้า ยิ่งคุณใช้แบนด์วิดท์น้อยลง อายุก็จะยิ่งดีขึ้นเท่านั้น - person Nir; 12.10.2010