का उपयोग करके अधिकतम विंडो को संभालना हमने हाल ही में जीएलयूटी से एसडीएल तक Bitfighter पोर्ट किया। ऐसा करने के कई फायदे थे, लेकिन विशेष रूप से खिड़की प्रबंधन के क्षेत्र में कुछ कमियां भी थीं।एसडीएल
बिटफाइटर एक निश्चित-पहलू-अनुपात विंडो (800x600 पिक्सेल) में चलता है। उपयोगकर्ता अपनी खिड़की को किसी भी आकार को अपनी इच्छानुसार बना सकते हैं, लेकिन हम आकार बदलने का प्रयास करते हैं और अनुरोध किए गए आकार में समायोजन करते हैं ताकि यह सुनिश्चित किया जा सके कि विंडो सही अनुपात रखती है (SDL_SetVideoMode का उपयोग करके)।
(निम्नलिखित समस्या विंडोज पर लागू होता है, लेकिन अभी तक दूसरे प्लेटफार्म पर परीक्षण नहीं किया गया। क्या मैं नीचे का वर्णन है, विंडोज के लिए संदर्भित हालांकि मैं एक मंच स्वतंत्र समाधान के लिए देख रहा हूँ।)
आमतौर पर, इस महान काम करता है, सिवाय इसके कि जब उपयोगकर्ता टाइटल बार पर डबल क्लिक करके या अधिकतम बटन का उपयोग करके अपनी खिड़की को अधिकतम करते हैं। उस स्थिति में, विंडो आकार बदलने की घटना को स्क्रीन आकार के अनुमानित खिड़की के आकार के साथ बुलाया जाता है (खिड़की के आभूषण के लिए कुछ पिक्सेल घटाएं)। दुर्भाग्यवश, जब विंडो को अधिकतम किया जाता है, तो SDL_SetVideoMode का कोई प्रभाव नहीं पड़ता है (GLUT के विपरीत जो अधिकतम विंडो का आकार बदलने में सक्षम था)। इसके अलावा, एसडीएल_GetVideoInfo के बाद की कॉल के आकार के बारे में रिपोर्ट की गई है, न कि खिड़की के वास्तविक वर्तमान आकार की, इसलिए यह कहना मुश्किल है कि कोशिश करने वाले प्रयासों ने काम किया है या नहीं।
मैं निम्न कोई भी कार्य करने के लिए एक मंच स्वतंत्र तरीके रहा हूँ (प्राथमिकता के घटते क्रम में):
- एक विंडो का आकार बदलें के बाद यह अधिकतम गया है
- का पता लगाने जब एक खिड़की तो अधिकतम कर दिया गया है कि, मुझे पता है कि मैं इसका आकार बदल नहीं सकता, मैं कम से कम
- विंडो को अधिकतम करने से रोक सकता हूं (विंडो शीर्षक पट्टी पर डबल क्लिक अवरुद्ध करें, अधिकतम बटन का उपयोग करें, और विंडो को खींचें स्क्रीन के शीर्ष)
बिटफाइटर सी ++ में लिखा गया है, और हम एसडीएल की नवीनतम आधिकारिक रिलीज का उपयोग कर रहे हैं।
क्या आप एसडीएल 1.3 हेड को आजमाने की स्थिति में हैं? – genpfault
हम हो सकते हैं; इस पर निर्भर करता है कि यह कितना स्थिर है। हम कुछ हफ्तों में रिलीज होने की उम्मीद कर रहे हैं। – Watusimoto
अपने कोड को देखकर, ऐसा लगता है कि आप एसडीएल 2.0 में माइग्रेट हो गए हैं। क्या इससे आपके मुद्दों को ठीक किया गया? – faffy