
http://www.cegui.org.uk
ลิขสิทธิ์© 2004 - 2022 Paul D Turner, ทีมพัฒนา Cegui และผู้เขียนมีส่วนร่วม
ไฟล์เสริมส่วนใหญ่สำหรับ Cegui ซึ่งเคยเป็นข้อความธรรมดาตอนนี้ถูกเก็บไว้ในรูปแบบ "doxygenised" ภายในไดเรกทอรี DOC/Doxygen - โปรดดูไฟล์เหล่านั้นหรือสร้างเอกสารสำหรับรูปแบบที่เป็นมิตรมากขึ้น หรือเยี่ยมชม http://static.cegui.org.uk/docs สำหรับความต้องการเอกสารทั้งหมดของคุณ!
สิ่งต่อไปนี้เป็นเพียงคู่มือเริ่มต้นอย่างรวดเร็วไปที่เอกสาร Doxygen ของเราสำหรับเอกสารรายละเอียดเพิ่มเติม
v0-8 ให้บริการ ABI ที่มีเสถียรภาพล่าสุด (ถึง 0.8.x รุ่น) ของ CEGUI ขึ้นอยู่กับมาตรฐาน C ++ 03 และเข้ากันได้กับคอมไพเลอร์ที่พบบ่อยที่สุดรวมถึง Visual Studio 2008-2015 เนื่องจากสาขานี้เข้ากันได้กับ ABI จึงเป็นไปได้ที่จะแทนที่ไลบรารี Dynamic Cegui ของเวอร์ชัน 0.8.x ด้วยรุ่นที่ใหม่กว่า 0.8.x หรือในทางกลับกันโดยไม่ต้องคอมไพล์โครงการ สาขานี้ยังเป็นฐานสำหรับการเปิดตัว 0.8.x ใหม่v0 ให้ CEGUI ที่เข้ากันได้กับ API ที่มีเสถียรภาพล่าสุดและมีการเปลี่ยนแปลงที่ทำลาย ABI ขึ้นอยู่กับมาตรฐาน C ++ 03 และเข้ากันได้กับคอมไพเลอร์ที่พบบ่อยที่สุดรวมถึง Visual Studio 2008-2015 รุ่นจากสาขานี้จะถูกใช้สำหรับรุ่นรองรุ่นถัดไปdefault มีการเปลี่ยนแปลงที่จะใช้ในเวอร์ชันหลักถัดไปเท่านั้น ขึ้นอยู่กับมาตรฐาน C ++ 11 และเข้ากันได้กับคอมไพเลอร์ที่ทันสมัยที่สุดรวมถึง Visual Studio 2013 หรือใหม่กว่า สาขานี้ไม่เสถียรสูงจะแนะนำการเปลี่ยนแปลงขั้นพื้นฐานและ แบ่งความเข้ากันได้ของ ABI และ API เราไม่แนะนำให้คุณใช้สิ่งนี้ในการผลิตเว้นแต่คุณจะต้องพึ่งพาคุณลักษณะอย่างมากและพูดคุยกับผู้พัฒนา Cegui มาก่อน: แนะนำให้คุณทราบถึงความเสี่ยงที่อาจเกิดขึ้นทั้งหมด ในกรณีทั่วไปคุณควรใช้หนึ่งในสาขาที่มั่นคงเพื่อช่วยให้คุณปวดหัวได้มาก สาขา v0-8 และ v0 นั้นถือว่ามีเสถียรภาพ แต่ได้รับการแก้ไขข้อผิดพลาดและการเปลี่ยนแปลงเล็กน้อยซึ่งไม่ทำลาย ABI และ API ตามลำดับ การเปลี่ยนแปลงของหลักสูตรเหล่านี้แนะนำความเสี่ยงเล็กน้อยว่าอาจมีปัญหาชั่วคราวในช่วงเวลาในสาขา หากคุณสังเกตเห็นข้อบกพร่องใด ๆ ในสาขาเหล่านั้นโปรดรายงานให้เราทราบโดยเร็วที่สุด - ใช้ฟอรัมและ/หรือช่อง IRC ของเรา #cegui และ #cegui-devel บน irc.freenode.net เพื่อแจ้งให้เราทราบ โปรดพิจารณาว่าเราไม่สามารถใช้งานได้ใน IRC 24 ชั่วโมงต่อวัน แต่อย่าลังเลที่จะไม่ได้ใช้งานจนกว่าเราจะตอบกลับ หากมีข้อสงสัยว่าจะใช้สาขาใดให้ถามเราด้วยวิธีนี้ สำหรับการใช้งานการผลิตโดยทั่วไปเราขอแนะนำให้ใช้รุ่นรีลีสที่เสถียร รายการของการเผยแพร่สามารถพบได้บนเว็บไซต์ของเรา
เรามีความสุขที่สุดกับ คำขอดึงที่สะอาด ซึ่งมีการกระทำที่ผิดชอบด้วยความรู้สึกพร้อมกับ ข้อความการกระทำที่เหมาะสม นอกจากนี้เรายังยอมรับ แพตช์ธรรมดา แต่ทำให้เราง่ายต่อการยอมรับการบริจาคของคุณด้วยการคลิกเพียงครั้งเดียวเร่งกระบวนการตรวจสอบอย่างมาก
นี่คือคำอธิบายเกี่ยวกับวิธีการแยกจากที่เก็บของเราทำการเปลี่ยนแปลงส้อมของคุณและสร้างคำขอดึงที่กำหนดเป้าหมายไปยังสาขาที่ถูกต้อง: https://confluence.atlassian.com/display/bitbucket/fork+a+repo
โปรดทราบว่าจะกำหนดเป้าหมายที่เก็บข้อมูลที่ถูกต้อง เราต้องการกำหนดเป้าหมายสาขาที่เข้ากันได้ของ ABI ถ้าเป็นไปได้ มิฉะนั้น API ที่เข้ากันได้ สำหรับข้อมูลเกี่ยวกับความเข้ากันได้ของ ABI/API โปรดอ่านหน้านี้: https://community.kde.org/policies/binary_compatibility_issues_with_c%2b%2b
หากมีข้อสงสัยว่าสาขาใดที่จะกำหนดเป้าหมายโปรดติดต่อเรา!
สคริปต์ต่อไปนี้เป็นสากลที่เป็นสากลมากหรือน้อยสำหรับ *Nix Systems และ Windows อาจจำเป็นต้องมีการเปลี่ยนแปลงเล็กน้อย
cd $cegui_folder
# you can call the folder differently but "build" is customary
mkdir build/
cd build/
# run the configure step
cmake-gui ../
# fix any issues pointed out by cmake
# not all dependencies are required so if some are not found, don't panic and carry on!
# alternative (if you are a command line pro)
# cmake ../ณ จุดนี้ makefiles ไฟล์โครงการหรืออย่างอื่นจะถูกสร้างขึ้น ขั้นตอนต่อไปขึ้นอยู่กับสิ่งนั้น
สำหรับ MakeFiles เพียงแค่วิ่ง
cd $cegui_folder
cd build/
makeสำหรับโซลูชัน Visual Studio, ดับเบิลคลิก, เปลี่ยนโหมดบิลด์ตาม (รีลีส, ดีบัก, ... ) และกดบิลด์
ส่วนนี้มีความสมเหตุสมผลในระบบ *Nix-like เท่านั้น
ตรวจสอบให้แน่ใจว่าคุณมีชุด CMAKE_INSTALL_PREFIX ที่ถูกต้องตามเวลากำหนดค่า Alternativelly รัน cmake และตั้งค่า โดยค่าเริ่มต้นมันควรจะเป็น /usr/local/ แต่คุณอาจต้องการ /usr/
cd $cegui_folder
cd build/
sudo make installหากคุณติดตั้ง Cegui ทั่วทั้งระบบเพียงโทร:
CEGUISampleFramework-0หากควรเรียกใช้จากบรรทัดคำสั่งเพราะมันจะขอให้คุณเลือกผู้แสดงผลในกรณีที่คุณมีมากกว่า 1
หากคุณไม่มีการติดตั้งทั่วทั้งระบบมันมีส่วนเกี่ยวข้องและซับซ้อนมากขึ้น
cd $cegui_folder
cd build/bin/
CEGUI_SAMPLE_DATAPATH=../../datafiles ./CEGUISampleFramework-0CEGUI มีการพึ่งพา ที่ต้องการ ค่อนข้างน้อย (ปัจจุบัน GLM เท่านั้น) และการพึ่งพา ทางเลือก มากมาย ความจริงที่ว่ามันรองรับไลบรารีและเครื่องยนต์ที่ให้การแสดงผลที่แตกต่างกันจำนวนมากตัวโหลด/ตัวแปลงสัญญาณที่แตกต่างกันมากมาย (พร้อมตัวเลือกผ่าน) และตัวแยก XML ที่แตกต่างกันมากมายเป็นสิ่งที่ดีและมีเพียงคนที่ไม่มีข้อมูลเท่านั้นที่จะบอกคุณเป็นอย่างอื่น
หาก cmake บอกคุณว่าไม่พบ บางสิ่งบางอย่าง คุณ จะไม่ตกใจ ;)! ส่วนใหญ่อาจเป็นข้อความที่ไม่เป็นอันตราย คุณควรกังวลหากการพึ่งพาที่คุณรู้ว่าคุณต้องการไม่พบหรือหากไม่พบการพึ่งพาทั้งหมด ในกรณีหลังบน Windows และ Mac OS X คุณอาจไม่ได้ใส่โฟลเดอร์ "การพึ่งพา" (รวมถึงการพึ่งพาที่รวบรวมไว้ในการดีบัก/รีลีส/อะไรก็ตามที่คุณต้องการ) ลงในโฟลเดอร์ที่มีไฟล์และโฟลเดอร์ CEGUI ทั้งหมด นอกจากนี้คุณยังสามารถระบุโฟลเดอร์อื่นใน CMake โดยใช้ตัวแปร cegui_dependencies_dir
ระบบหมายเลขนี้มีจุดประสงค์ที่สำคัญมาก! โปรดให้เราเก็บไว้ ช่วยให้การแจกแจง Linux (และอื่น ๆ ) สามารถติดตั้ง CEGUI API หลายรุ่นควบคู่ไปกับการโยกย้ายและเพิ่มความเร็วในการนำรุ่น CEGUI ใหม่มาใช้ บน Windows สิ่งนี้จะช่วยให้เราสามารถจัดหาการพึ่งพา CEGUI ที่คอมไพล์ไว้ล่วงหน้าโดยใช้ NUGET ในอนาคต
นี่คือพฤติกรรมที่คาดหวัง ก่อนอื่นคุณควรทดสอบประสิทธิภาพในโหมดการเปิดตัวเสมอ แต่ถึงแม้จะมีเคอร์เซอร์ช้าลง เหตุผลก็คือมันไม่น่าเป็นไปได้ที่แอปพลิเคชันใด ๆ จะมีเคอร์เซอร์เร็วเท่ากับเคอร์เซอร์ OS โปรดจำไว้ว่าความเร็วนั้นเชื่อมโยงกับอัตราเฟรมของคุณอย่างใกล้ชิดดังนั้นหากคุณเรียกใช้การสาธิต HelloWorld ที่ 5000 fps ความแตกต่างจะน้อยลง แต่ก็ยังคงสังเกตได้ เกมการจำลองหรือแอปพลิเคชันอื่น ๆ ที่แสดงเคอร์เซอร์ของตัวเองผ่านฟังก์ชั่น OpenGL/Direct3D ในทำนองเดียวกัน อย่างไรก็ตามความเร็วเคอร์เซอร์ไม่ได้เป็นปัญหาสำหรับผู้ใช้หากแอปพลิเคชันของคุณทำงานในอัตราเฟรมที่น่าเชื่อถือ (> 60 fps) โดยไม่มีการลดลงของเฟรมและจะไม่ถูกรับรู้เช่นนี้ เมื่อคุณซ่อนเคอร์เซอร์ OS แล้วความล่าช้าอาจไม่สามารถสังเกตได้สำหรับคุณอีกต่อไป
ก่อนอื่นคำว่า "DLL Hell" ถูกนำมาใช้อย่างผิด ๆ ในบริบทนี้ ไม่ได้หมายความว่า "ฉันเห็นไฟล์ DLL จำนวนมากนี่ต้องเป็นนรก!" การเชื่อมโยงไลบรารี Cegui แบบไดนามิกเป็นวิธีที่ดีที่สุดในการทำงานตามที่ควรจะเป็นและรับประกันความเข้ากันได้ดีและโอกาสต่ำของปัญหาที่เกิดขึ้นกับการพึ่งพา บน Windows เราขอแนะนำให้ใช้การเชื่อมโยงแบบไดนามิกกับ Cegui มากกว่าการเชื่อมโยงแบบคงที่เนื่องจากประสบการณ์ที่ผ่านมา (ผู้ใช้บางคนวิ่งเข้าไปในประเด็นทางเทคนิค) ได้แสดงให้เราเห็นว่าสิ่งนี้ปลอดภัยกว่า อย่างไรก็ตามหากคุณรู้ว่าคุณกำลังทำอะไรอยู่คุณสามารถใช้การเชื่อมโยงแบบคงที่อย่างแน่นอน โปรดทราบว่าเราทดสอบการเชื่อมโยงแบบไดนามิกเป็นประจำเท่านั้นดังนั้นไฟล์ CMake อาจล้าสมัยและคุณอาจต้องเพิ่มไลบรารีที่เชื่อมโยงกับ IDE ของคุณด้วยตัวคุณเอง ฯลฯ ในหมายเหตุเชิงบวก: ในรุ่น 1.0 ที่กำลังจะมาถึงเราจะลดจำนวน DLLS Cegui ที่สร้างขึ้นโดยการรวมบางส่วนเข้าสู่ห้องสมุดฐาน สั้น ๆ แต่ไม่ได้สรุปข้อดีและข้อเสียของการเชื่อมโยงแบบคงที่กับการเชื่อมโยงแบบไดนามิกที่นี่: http://stackoverflow.com/questions/1993390/static-linking-vs-dynamic-linking
ส่วนใหญ่เมื่อผู้ใช้บ่นในฟอรัมเกี่ยวกับความเร็วของ Cegui มันกลับกลายเป็นว่าพวกเขารันแอปพลิเคชันในการกำหนดค่าการดีบักหรือทำอะไรผิด: อาจช้าถ้าคุณกำลังโหลดทรัพยากรเค้าโครง/ไฟล์ทุกเฟรมหรือทำให้เกิดการอัปเดตและเหตุการณ์ที่ไม่จำเป็น หรืออาจช้าถ้าคุณอัปเดต Cegui หลายครั้งต่อเฟรมโดยไม่จำเป็นในโปรแกรมของคุณ หากคุณไม่พบปัญหาคุณควรทำการค้นหาฟอรัม/Google และ - หากคุณไม่พบสิ่งใดที่เป็นประโยชน์ - เพื่ออธิบายการตั้งค่าของคุณในรายละเอียดและปัญหาที่คุณมี เมื่อ Cegui ช้าอาจเป็นเพราะการใช้คุณสมบัติเฉพาะที่เฉพาะเจาะจงซึ่งเราไม่ได้คาดหวังหรือทดสอบ ในกรณีนี้เราต้องการให้คุณอธิบายกรณีการใช้งานของคุณในฟอรัมเพื่อให้เราสามารถหาวิธีแก้ปัญหาหรือหากคุณมีความสามารถในการแก้ปัญหาด้วยตัวเอง
โดยทั่วไป Cegui นั้นเร็วมากและสามารถแข่งขันกับไลบรารี GUI อื่น ๆ ได้อย่างง่ายดายด้วยความเร็ว (โดยเฉพาะอย่างยิ่งที่ใช้แฟลชเนื่องจากไม่สามารถเข้าถึง OpenGL หรือ Direct3D ได้โดยตรง) ในขณะที่ไม่มีห้องสมุดที่ซับซ้อนจะได้รับการปรับให้เหมาะสมอย่างสมบูรณ์แบบ Cegui สามารถพิจารณาได้ว่ามีประสิทธิภาพสูง สิ่งนี้เป็นจริงสำหรับการคำนวณที่ทำใน CPU เช่นเดียวกับที่อยู่ใน GPU มันยังคงทำงานได้ดีที่สุดเมื่อเปิดหน้าต่างหลายร้อยหน้าต่างและแสดงผลในเวลาเดียวกัน
ข้อพิสูจน์ที่ดีที่สุดว่า Cegui นั้นรวดเร็วคือเกมที่เป็นกรรมสิทธิ์ขนาดใหญ่ซึ่งแสดงวิดเจ็ตหลายร้อยตัวและใช้ลำดับชั้นที่ซับซ้อนได้ทำขึ้นโดยใช้ Cegui (Torchlight 1, Torchlight 2, Venetica ฯลฯ )
ตัวอย่างส่วนใหญ่ของเราหากเริ่มต้นในโหมดการเปิดตัวจะแสดงผลด้วยความเร็วสูงกว่า 3000 เฟรมต่อวินาทีใน CPU และ GPU ที่ทันสมัย เป็นหมายเหตุเพิ่มเติมสำหรับบางคนที่ชอบอ้างถึงเกณฑ์มาตรฐานที่น่าสงสัยเกี่ยวกับการเปรียบเทียบความเร็วดังกล่าว: เกณฑ์มาตรฐานขึ้นอยู่กับสถานการณ์และสามารถบิดเบือนความเร็วจริงของห้องสมุดได้อย่างผิด ๆ โดยการใช้งานที่ผิดไม่มีประสิทธิภาพหรือผิดปกติ หากใช้อย่างถูกต้องและภายในขอบเขตของการใช้งานที่คาดหวัง Cegui ทำงานได้ดีมาก