DFPSR
ห้องสมุดการแสดงผลซอฟต์แวร์ที่ทันสมัยสำหรับ C ++ 14 โดยใช้ SSE/NEON ที่สร้างโดย David Forsgren Piuva หากคุณกำลังมองหาแฟชั่นกระแสหลักล่าสุดให้ดูที่อื่น นี่คือห้องสมุดสำหรับซอฟต์แวร์ที่มีคุณภาพหมายถึงการพัฒนามานานหลายทศวรรษและรอดชีวิตจากลูกหลานของคุณด้วยการบำรุงรักษาน้อยที่สุด เช่นเดียวกับการแกะสลักมรดกของคุณให้เป็นหินมันต้องใช้ความพยายามมากขึ้นในการฝึกฝนทักษะ แต่ให้ผลลัพธ์ที่แข็งแกร่งยิ่งขึ้นโดยไม่ต้องพึ่งพาห้องสมุดที่ห่างไกล ประสบการณ์การใช้งานสูงสุดและการพึ่งพาระบบขั้นต่ำ
พื้นหลังของผู้สร้าง
DXOMARK World Record ในการรักษาเสถียรภาพวิดีโอดิจิตอลจากอุตสาหกรรมมือถือ ทำงานร่วมกับวิสัยทัศน์ที่สำคัญของหุ่นยนต์ที่สำคัญสำหรับการควบคุมการจราจรของสนามบินพลเรือน จัดบรรยายในการเพิ่มประสิทธิภาพที่ บริษัท ต่าง ๆ ในอุตสาหกรรมมือถือการแพทย์และเกม ทำงานกับการเพิ่มประสิทธิภาพของ GPU, CPU, DSP, ISP, FPGA และ ASIC
การเพิ่มประสิทธิภาพต้องการเครื่องมือที่ดีในการประหยัดเวลาของคุณ
ส่วนที่สำคัญที่สุดเกี่ยวกับการเพิ่มประสิทธิภาพรหัสคือการเข้าใจทั้งอัลกอริทึมสูงและข้อ จำกัด ของฮาร์ดแวร์ต่ำเนื่องจากคุณไม่สามารถให้นักวิทยาศาสตร์ออกแบบอัลกอริทึมและโปรแกรมเมอร์ให้เหมาะสมโดยไม่มีที่ว่างสำหรับการเปลี่ยนแปลงในแอสเซมเบลอร์ที่เขียนด้วยลายมือ (ความผิดพลาดที่พบบ่อยที่สุด) การออกแบบอัลกอริทึมไม่ได้ดำเนินการจนกว่าคุณจะมีการแลกเปลี่ยนที่ดีระหว่างคุณภาพและประสิทธิภาพด้วยการเพิ่มประสิทธิภาพทั้งหมดในสถานที่ การประหยัดเวลาในราคาที่มีคุณภาพในที่เดียวสามารถชดเชยได้โดยการเพิ่มคุณภาพในราคาที่ต่ำกว่าที่อื่นเพื่อเพิ่มความเร็วและคุณภาพ ยิ่งคุณสามารถสร้างอัลกอริทึมได้เร็วเท่าไหร่คุณก็ยิ่งสามารถทำซ้ำกระบวนการออกแบบได้เร็วขึ้นเท่านั้น คิดเกี่ยวกับสิ่งที่คุณประมาณอย่างแท้จริง เป้าหมายของคุณในการวาดรูปหลายเหลี่ยมตรงอย่างสมบูรณ์ที่สุดเท่าที่จะเป็นไปได้หรือเป็นเป้าหมายในการประมาณรูปร่างโลกแห่งความเป็นจริงที่ซับซ้อนโดยใช้เทคนิคใด ๆ หรือไม่?
เว็บไซต์อย่างเป็นทางการ: dawoodoz.com
เกมของคุณอาจดูเหมือนใช้การแสดงผล CPU แบบสามมิติ

แสงแบบไดนามิกแบบเรียลไทม์ที่มีเงาหล่อตามความลึกและการทำแผนที่ปกติที่ 453 เฟรมต่อวินาทีใน 800x600 พิกเซลที่ทำงานบน CPU ความละเอียดที่สูงขึ้นจะทำลายสไตล์ย้อนยุคและดูแย่ลงจริง ๆ แต่มีเวลาเหลืออีกมากสำหรับตรรกะเกมและเอฟเฟกต์เพิ่มเติม โดยการแสดงรุ่น 3 มิติล่วงหน้าเพื่อกระจายภาพปกติและความสูงการอ่านข้อมูลจะมีประสิทธิภาพแคชมากขึ้นในซีพียูที่ทันสมัยกว่าการใช้มุมมองฟรี นอกจากนี้ยังช่วยให้มีรูปสามเหลี่ยมมากกว่าพิกเซลบนหน้าจอและทำการอัปเดตเรขาคณิตคงที่ รุ่น 3 มิติที่มีรายละเอียดต่ำใช้ในการหล่อเงาแบบไดนามิก
รองรับการแสดงผล 3 มิติแบบดั้งเดิมด้วยรูปหลายเหลี่ยม

การเรนเดอร์ 3 มิตินั้นไม่เร็วเท่ากับการแสดงผล 2D หรือการถ่ายภาพสามมิติบน CPU แต่มักจะถึง 60 Hz ใน 1920x1080 พิกเซลสำหรับกราฟิกที่มีรายละเอียดต่ำ สำหรับระดับรายละเอียดที่สูงขึ้นและคุณสมบัติเพิ่มเติมขอแนะนำให้คัดลอกและปรับเปลี่ยนไปป์ไลน์การเรนเดอร์เพื่อให้เป็นฮาร์ดโค้ดสำหรับคุณสมบัติที่คุณต้องการแล้วลดความซับซ้อนของคณิตศาสตร์สำหรับเครื่องยนต์เรนเดอร์เฉพาะของคุณเช่นเดียวกับตัวอย่างของกล่องทราย
เหตุใดจึงต้องใช้ตัวแสดงผลซอฟต์แวร์โอเพนซอร์ซเมื่อ GPUs เร็วมาก?
- ความทนทาน ในการใช้ซอฟต์แวร์เรนเดอร์อาจไม่ทำลายระบบของคุณเมื่อทำผิดพลาดซึ่งแตกต่างจากกราฟิก APIs สำหรับ GPU ที่มีแนวโน้มที่จะมีหน้าจอสีฟ้า
- การกำหนด หากใช้งานได้กับคอมพิวเตอร์เครื่องหนึ่งมันอาจจะทำงานเหมือนกันในคอมพิวเตอร์เครื่องอื่นที่มีความแตกต่างเล็กน้อยระหว่างระบบปฏิบัติการ อย่างไรก็ตาม OpenGL มีคุณสมบัติที่เหลืออยู่หากคุณลบทุกอย่างที่มีข้อบกพร่องในการใช้งานไดรเวอร์ใด ๆ
- ค่าใช้จ่ายต่ำ เมื่อคุณต้องการความละเอียดต่ำสำหรับสไตล์การมองเห็นหรือการมองเห็นหุ่นยนต์คุณอาจทำให้มันน้อยที่สุดด้วยตัวแสดงซอฟต์แวร์ที่เชื่อมโยงแบบคงที่เมื่อ GPU จะช้าลง
- การดีบักง่ายๆ เมื่อข้อมูลทั้งหมดถูกประมวลผลในตัวแสดงผลซอฟต์แวร์มันง่ายกว่ามากที่จะเห็นสิ่งที่ผิดพลาดระหว่างการดีบัก
- ง่ายต่อการปรับเปลี่ยน ไม่มีข้อ จำกัด ของฮาร์ดแวร์อื่นนอกเหนือจากวงจร CPU และหน่วยความจำดังนั้นคุณสามารถปรับเปลี่ยนไปป์ไลน์การเรนเดอร์ทั้งหมดโดยการคัดลอกและวางรหัส
- Pixel Exact 2D แทนที่จะทำวิธีแก้ปัญหาที่แปลกประหลาดเหนือ Polygons ผู้แสดงซอฟต์แวร์ให้คุณทำงานกับทั้งพิกเซลเพื่อเริ่มต้นด้วย
ทำไมต้องใช้ซอฟต์แวร์เรนเดอร์นี้
- การพึ่งพาระบบขั้นต่ำ ทุกอย่างที่เกี่ยวข้องกับระบบเฉพาะ API จะถูกวางไว้ในโมดูล wrapper แยกต่างหากที่รวมคุณสมบัติที่สำคัญขั้นต่ำที่ควรจะรวมเข้ากับระบบปฏิบัติการในอนาคต ซึ่งแตกต่างจากการเรนเดอร์ซอฟต์แวร์อื่น ๆ อันนี้ไม่ต้องการไดรเวอร์กราฟิกใด ๆ เพราะคุณสามารถรับประสิทธิภาพเดียวกันโดยใช้มัลติเธรดโดยการอัปโหลดผ้าใบบนเธรดพื้นหลังเมื่อแกนส่วนใหญ่ไม่ได้ใช้งานอยู่ดี
- ไม่มีไบนารี ไลบรารีทั้งหมดจะถูกรวบรวมจากซอร์สโค้ดโดยอัตโนมัติ แม้แต่ระบบบิลด์ก็กำลังรวบรวมตัวเองก่อนที่จะสร้างโครงการของคุณ สิ่งนี้ทำให้แน่ใจว่าไม่มีใครในอนาคตต้องย้อนกลับไบนารีเก่าศตวรรษของวิศวกรเมื่อพยายามสร้างโปรแกรมของคุณและมันก็ทำให้มัลแวร์ปลอดภัยยิ่งขึ้นเมื่อทุกอย่างสามารถตรวจสอบได้ในรหัสที่อ่านได้
- การเชื่อมโยง ห้องสมุดทั้งหมดเชื่อมโยงกับโปรแกรมของคุณอย่างคงที่ราวกับว่าคุณได้เขียนรหัสด้วยตัวคุณเอง เฉพาะ APIs ระบบหลักที่รอดชีวิตมานานหลายทศวรรษเท่านั้นที่อาศัยการพึ่งพาไม่มีไดรเวอร์ GPU ไม่มีชั้นสื่อภายนอก ทุกอย่างตั้งแต่วิธีการเข้ารหัสอักขระ Unicode และ RENDER FONTS ไปจนถึงวิธีการที่รูปหลายเหลี่ยมแรสเตอร์กับบัฟเฟอร์เชิงลึกจะมีอยู่ภายในโปรแกรม C ++ ที่รวบรวมไว้ของคุณเพื่อความน่าเชื่อถือและความมั่นใจสูงสุด ระบบบิลด์อนุญาตให้เชื่อมโยงไลบรารีมาตรฐาน C ++ แบบคงที่เมื่อเป็นไปได้
- สร้างซอฟต์แวร์สร้างมรดกของคุณ ซึ่งคนรุ่นต่อไปในอนาคตอาจสามารถพอร์ตรวบรวมและทำงานได้โดยไม่จำเป็นต้องใช้อีมูเลเตอร์หรือวิศวกรรมย้อนกลับของไดรเวอร์กราฟิกที่เป็นกรรมสิทธิ์
คุณสมบัติในห้องสมุดนี้
- ระบบสร้าง C ++ อัตโนมัติเต็มรูปแบบ ไม่มีรายการไฟล์ต้นฉบับยาวในโครงการของคุณ ระบบบิลด์ที่รวมอยู่จะพบส่วนหัวที่ให้มาและตามชื่อไฟล์ต้นฉบับที่สอดคล้องกันโดยอัตโนมัติ เพียงแค่บอกให้รวบรวมข้อมูลจากหลักและปล่อยให้มันออกส่วนที่เหลือโดยอัตโนมัติ แบ็กเอนด์ที่แตกต่างกันสำหรับห้องสมุดได้รับการจัดการโดยรวมถึงส่วนหัวของโครงการห้องสมุดโดยบอกว่าแบ็กเอนด์ใดที่จะใช้สำหรับแต่ละแพลตฟอร์ม การตรวจสอบใช้เพื่อสร้างสิ่งที่เปลี่ยนแปลงไปเท่านั้นดังนั้นจึงไม่จำเป็นต้องสร้างไลบรารีแบบคงที่สำหรับบางส่วนของรหัสของคุณ
- การวาดรูปแบบ 2D พิกเซลการวาดมาตรฐานที่แน่นอนการเรียกใช้บรรทัด, สี่เหลี่ยม, สำเนาภาพที่เป็นของแข็ง, การวาดภาพที่ผ่านการกรองอัลฟ่า, การวาดความลึกบัฟเฟอร์และการวาดลายฉลุ
- การเรนเดอร์ 3 มิติเทียบเท่ากับ Direct3d 7 ด้วยการสุ่มตัวอย่างพื้นผิวแบบสองเชิงเส้น, mipmapping, lightmaps และการกรองอัลฟ่าเมื่อใช้นอกกล่อง แต่สามารถแก้ไขให้เป็นเหมือน Direct 3D 9 หากคุณใช้การแรเงากับพื้นผิว (สามารถใช้ SIMD กับมัลติเธรด
- ระบบการบดเคี้ยว การรวบรวมงานการเรนเดอร์สำหรับมัลติเธรดยังมีกริดบดเคี้ยวที่รูปร่างการบดเคี้ยวสามารถวาดเพื่อข้ามการวาดรูปสามเหลี่ยมวัตถุหรือกลุ่มทั้งหมดหากเครื่องยนต์ของคุณใช้เฟสกว้างสำหรับการทดสอบการคัดและการอุดตัน การบดเคี้ยวแบบไดนามิกอย่างเต็มที่นี้สามารถรวมกับการปรับให้เหมาะสมแบบคงที่สำหรับเกมเฉพาะโดยใช้ข้อมูลเกี่ยวกับภูมิภาคที่สามารถมองเห็นได้จากตำแหน่งกล้องแต่ละตำแหน่ง
- ตัวเลือกการตัดไกล เนื่องจากกราฟิก API นี้ใช้บัฟเฟอร์ความลึกแบบลอยตัวสำหรับมุมมองเท่านั้นไม่จำเป็นต้องทำให้ค่าความลึกเป็นปกติสำหรับการเป็นตัวแทนจากจำนวนเต็มใด ๆ สิ่งนี้จะช่วยให้การเลือกระยะทางคลิปที่ไม่มีที่สิ้นสุดเมื่อสร้างกล้องของคุณหากคุณสามารถแสดงผลทั้งฉากได้พร้อมกัน
- เลเยอร์ สื่อ ข้ามแพลตฟอร์มชั้นสื่อที่ออกแบบมาเพื่อความแข็งแกร่ง Backends เสียง ALSA และ WINMM เพื่อควบคุมการผสมเสียงอย่างเต็มที่โดยไม่ต้องเรียกระบบใด ๆ ที่เฉพาะเจาะจงด้วยตัวคุณเอง การจัดการหน้าต่างใช้มัลติเธรดสำหรับการอัปโหลดผ้าใบเพื่อให้คุณไม่จำเป็นต้องใช้ไดรเวอร์กราฟิก GPU และการพึ่งพาหนักเพื่ออัปโหลดผลลัพธ์ ใช้หน้าต่างไร้ขอบสำหรับเต็มหน้าจอเพื่อให้คุณสามารถเข้าถึงโปรแกรมอื่น ๆ ได้อย่างง่ายดายหากคุณได้รับอีเมลหรือข้อความโต้ตอบแบบทันทีในพื้นหลัง การปรับขนาดจะทำใน CPU เพื่อทำงานกับความละเอียดหน้าจอใด ๆ โดยไม่ต้องพึ่งพาไดรเวอร์กราฟิกที่อาจทำให้พิกเซลมีการแก้ไขผิดหรือไม่มีอยู่จริง เลเยอร์สื่อเก่าที่ออกแบบมาสำหรับจอแสดงผล CTR อาจทำให้เกิดความถี่จากข้อผิดพลาดในช่วงเมื่อไม่มีการติดตั้งไดรเวอร์กราฟิกและจอแสดงผลไม่ยอมรับการเลือกความละเอียดโดยพลการ ใช้ไอคอนเคอร์เซอร์ที่มองไม่เห็นเพื่อซ่อนเมาส์เพื่อให้โปรแกรมการชนจะไม่นำเคอร์เซอร์ออกไปเมื่อพยายามฆ่ากระบวนการ
- เฟรมอินเทอร์เฟซผู้ใช้กราฟิก โหลดอินเทอร์เฟซภาพไปยังหน้าต่างของคุณโดยใช้รหัสบรรทัดเดียวที่อ่านไฟล์เค้าโครงหรือสตริง รับที่จับทั่วไปไปยังส่วนประกอบโดยใช้ชื่อหรือการรวมกันของชื่อและดัชนี เพิ่มเหตุการณ์โดยการแนบฟังก์ชั่นแลมบ์ดากับส่วนประกอบและการเรียกกลับหน้าต่าง
- ตัวจับเวลา จะได้รับความแม่นยำสองวินาทีที่ผ่านไปตั้งแต่การโทรครั้งแรกไปยังตัวจับเวลาเพื่อที่คุณจะได้ไม่ต้องกังวลเกี่ยวกับแมลงเที่ยงคืนเมื่อเวลาของวันรีเซ็ต
- SIMD Abstraction Layer ใช้ SIMD.H เพื่อสร้าง SSE, AVX และ Neon Intrinsics โดยอัตโนมัติจากไวยากรณ์คณิตศาสตร์ที่อ่านได้อย่างสมบูรณ์ รหัสเวกเตอร์ของคุณจะดูเหมือนการใช้งานอ้างอิงและการรวบรวมสำหรับสถาปัตยกรรมเป้าหมายที่ไม่รู้จักจะสร้างการดำเนินการสเกลาร์ที่ยังสามารถเพิ่มประสิทธิภาพได้โดยการเขียนอัลกอริทึมของคุณด้วยการดำเนินการขั้นพื้นฐานที่มักจะรองรับโดยตรงในฮาร์ดแวร์ CPU
- ตัวชี้ที่ปลอดภัย ใช้ safepointer.h เพื่อรับข้อผิดพลาดมากขึ้นโดยบอกตัวชี้ของคุณว่าส่วนใดของการจัดสรรที่อาจใช้งานได้ ไม่มีค่าใช้จ่ายในเวอร์ชันรุ่นเพื่อให้คุณสามารถแทนที่ตัวชี้ดิบของคุณด้วย safepointer และรู้ว่าคุณจะได้รับข้อความแสดงข้อผิดพลาดข้อมูลด้วยชื่อตัวชี้และข้อมูลรายละเอียดเมื่อมีสิ่งเลวร้ายเกิดขึ้น
- สตริง ใช้ UTF-32 เพื่อจัดเก็บอักขระในหน่วยความจำเพื่อให้แน่ใจว่าอัลกอริทึมทั้งหมดทำงานกับอักขระที่ไม่ใช่ละติน (เข้ากันได้กับตัวอักษรสตริง U "") การบันทึกเป็นไฟล์เริ่มต้นเป็น UTF-8 (ที่เก็บข้อมูลขนาดกะทัดรัด) ด้วย BOM (บอกอย่างชัดเจนว่ารูปแบบใดที่ใช้) และตอนจบบรรทัด CR LF (เพื่อให้ไฟล์ข้อความเข้ารหัสทุกที่สามารถอ่านได้ทุกที่) ใช้บัฟเฟอร์หน่วยความจำที่ใช้ร่วมกันโดยอัตโนมัติเพื่ออนุญาตให้แยกออกเป็นรายการสตริงโดยไม่ต้องท่วมฮีปด้วยการจัดสรรขนาดเล็ก
- บัฟเฟอร์ ไฟล์ทั้งหมดจะถูกบันทึกและโหลดผ่านวัตถุบัฟเฟอร์ สิ่งนี้ทำให้แน่ใจว่ารูปแบบไฟล์ทั้งหมดที่คุณออกแบบจะต้องกังวลเกี่ยวกับวิธีการเข้ารหัสไบต์การทดสอบการถดถอยจะง่ายโดยไม่เกี่ยวข้องกับผลข้างเคียงภายนอกจากระบบไฟล์และไฟล์ใด ๆ สามารถรวมเข้ากับของคุณเองโดยใช้บัฟเฟอร์เทียบเท่ากับฟังก์ชั่นบันทึก
- การจัดการไฟล์ ประมาณเทียบเท่ากับ std :: ระบบไฟล์จาก C ++ 17 แต่ทำงานร่วมกับ C ++ 14 ใช้สตริงเดียวกันและประเภท readableString ในทุกแพลตฟอร์มและสามารถแก้ไขตัวคั่นโฟลเดอร์โดยอัตโนมัติระหว่าง / (posix) และ (MS-Windows)
- การจัดการกระบวนการ สามารถเริ่มแอปพลิเคชันอื่น ๆ และติดตามสถานะของพวกเขาเพื่อให้คุณสามารถโทรหาแอปพลิเคชันเช่นฟังก์ชั่นการเขียนผลลัพธ์ไปยังไฟล์
สรุปใบอนุญาต
ห้องสมุดนี้ส่วนใหญ่ใช้ใบอนุญาตโอเพ่นซอร์ส ZLIB แต่ยังรวมถึงไลบรารีภาพ STB สำหรับการบันทึกและโหลดภาพซึ่งมีใบอนุญาตคู่ที่อนุญาต (MIT / Unlicense) เนื่องจากห้องสมุดภาพ STB สามารถใช้เป็นโดเมนสาธารณะจึงไม่มีผลทางกฎหมายใด ๆ ในการใช้ห้องสมุดโดยรวมภายใต้ใบอนุญาตโอเพนซอร์ส ZLIB ทั้งหมดรวมซอร์สโค้ดที่มีใบอนุญาตทั้งหมดอนุญาตให้ใช้ทั้งเชิงพาณิชย์และไม่ใช่เชิงพาณิชย์รวมถึงการปรับเปลี่ยนซอร์สโค้ดที่ไม่เปิดเผย หากคุณไม่ได้แจกจ่ายซอร์สโค้ดอีกครั้งคุณไม่จำเป็นต้องบอกใครว่าคุณใช้ไลบรารีนี้เพราะการรับรองที่ไม่จริงใจไม่มีค่า
ยังคงเป็นเบต้าสาธารณะ
ชุดรูปแบบ GUI ตัวอักษรและ APIs ยังอยู่ระหว่างการพัฒนาที่ใช้งานอยู่และอาจมีการเปลี่ยนแปลงที่สำคัญก่อนที่เวอร์ชัน 1.0 ที่เสถียรจะพร้อมเนื่องจากรหัสบางอย่างเป็นเพียงตัวยึดดั้งเดิมจนกว่าการดำเนินการขั้นสูงสามารถแทนที่ได้และเราต้องพยายามใช้ห้องสมุดจริง ๆ ก่อนที่ปัญหาการใช้งานจะชัดเจน บัฟเฟอร์, ไฟล์, รูปภาพ, การวาด, ตัวกรอง, สตริงและเวลา API นั้นค่อนข้างเสถียร คุณสามารถเลือกที่จะติดกับเวอร์ชันเฉพาะสำหรับแต่ละโครงการใหม่ให้อัปเดตด้วยการเปลี่ยนแปลงล่าสุดหรือรอเวอร์ชันที่เสถียร 1.0
คุณจะช่วยได้อย่างไร
- พอร์ตไปยัง Macintosh หรือ Wayland โดยใช้หลักการเดียวกันกับการพึ่งพาน้อยที่สุด
- ทดสอบรุ่นเบต้านี้และให้ข้อเสนอแนะเกี่ยวกับการออกแบบก่อนที่จะเปิดตัวเวอร์ชัน 1.0
- สร้างเครื่องยนต์เกมประเภทต่าง ๆ ด้วยเครื่องมือโอเพนซอร์ซ
ฮาร์ดแวร์ CPU ที่รองรับ:
- Intel/AMD โดยใช้ SSE2 Intrinsics และส่วนขยายเสริม
- แขน ใช้ Neon Intrinsics
- สถาปัตยกรรม CPU ที่ไม่รู้จักโดยไม่ต้องใช้เวกเตอร์ SIMD เป็นโซลูชันทางเลือก
แพลตฟอร์ม:
- Linux , ทดสอบกับ Mint, Mate, Manjaro, Ubuntu, Raspberrypi OS, Raspbian (บัสเตอร์หรือใหม่กว่า) Linux Mint ต้องการส่วนหัวคอมไพเลอร์และ X11 ดังนั้นเรียกใช้ "sudo apt ติดตั้ง g ++" และ "sudo apt ติดตั้ง libx11-dev" ก่อนที่จะรวบรวม ปัจจุบันสนับสนุน X11 และ Wayland ได้รับการวางแผนสำหรับเวอร์ชันในอนาคต
- Microsoft Windows แต่ช้ากว่าบน Linux เนื่องจาก Windows มีกระบวนการพื้นหลังมากมายและการทำเกลียวช้าและการจัดการหน่วยความจำ
อาจใช้งานได้:
- BSD และ Solaris มีรหัสที่กำหนดเป้าหมายแพลตฟอร์มใน fileapi.cpp สำหรับรับโฟลเดอร์แอปพลิเคชัน แต่มีแนวโน้มว่าแอปพลิเคชันบางตัวจะขาดหายไปสำหรับการเรียกใช้สคริปต์บิลด์ ระบบที่สอดคล้องกับ Posix ในอนาคตควรมีนิสัยใจคอเพียงไม่กี่ตัวเท่านั้นที่จะแยกแยะว่ามีเซิร์ฟเวอร์ X11 หรือไม่
- Big-Endian ได้รับการสนับสนุนในทางทฤษฎีหากเปิดใช้งานแมโคร DSR_BIG_ENDIAN ทั่วโลก แต่สิ่งนี้ไม่เคยได้รับการทดสอบจริง ๆ เนื่องจากความยากลำบากในการกำหนดเป้าหมายระบบเก่าที่มีคอมไพเลอร์สมัยใหม่
ยังไม่ได้พอร์ตไปที่:
- Macintosh ไม่ใช้ X11 อีกต่อไปดังนั้นจะต้องใช้ความพยายามในการพอร์ต Macintosh ไม่มีลิงก์สัญลักษณ์ไปยังไบนารีของกระบวนการทำงานดังนั้นมันจะกลับไปที่ไดเรกทอรีปัจจุบันเมื่อขอโฟลเดอร์แอปพลิเคชัน
จะไม่กำหนดเป้าหมาย:
- โทรศัพท์มือถือ เนื่องจากการเปลี่ยนแปลงอย่างต่อเนื่องทำให้เกิดความเข้ากันได้ย้อนหลังบนแพลตฟอร์มมือถือจะเอาชนะวัตถุประสงค์ของการใช้กรอบการทำงานที่ยาวนาน แพลตฟอร์มมือถือต้องการคอมไพเลอร์ C ++ ที่กำหนดเองการเข้าถึงตัวประมวลผลสัญญาณการหมุนหน้าจอการประหยัดแบตเตอรี่การรู้ว่าเมื่อใดที่จะแสดงแป้นพิมพ์เสมือนจริงสิทธิ์การรักษาความปลอดภัยบังคับเต็มหน้าจอเต็มหน้าจอ ... การพยายามทำทั้งสองอย่างในเวลาเดียวกัน
- หน้าผากเว็บ wrapper ดังกล่าวเหนือห้องสมุดนี้จะไม่สามารถได้รับพลังของ SIMD Intrinsics สำหรับการกำหนดตัวกรองภาพของคุณเองดังนั้นคุณจะดีกว่าการกำหนดเป้าหมายภาษา GPU การแรเงาจากเบราว์เซอร์ซึ่งเหมาะสำหรับการเขียนสคริปต์แบบไดนามิก