2011-12-08 18 views
11

मैं जीएलयूटी का उपयोग नहीं करना चाहता, क्योंकि इसमें इस पर हास्केल जैसी भावना नहीं है। यह मूल रूप से आपको कॉलबैक के कारण IORef और ऐसे उपयोग करने के लिए मजबूर करता है।Haskell के लिए GLUT विकल्प?

मैंने GLFW पर विचार किया है, जो सरल लगता है और मुझे एक मोनड में गेम लूप करने देता है। लेकिन ऐसा लगता है कि विभिन्न हार्डवेयर के साथ समस्याएं हैं, उदाहरण के लिए, यह मेरे लैपटॉप पर ठीक काम करता है लेकिन मेरे डेस्कटॉप पर नहीं। और खिड़कियों पर, बनावट गायब हो जाती है।

तो मैंने एसडीएल के माध्यम से जाने का विचार किया है, लेकिन विंडोज निर्भरताओं के साथ कोई समस्या हो सकती है, मुझे नहीं पता कि कौन सी डीएलएल की जरूरत है।

तो ओपनजीएल विंडो खोलने के लिए क्या बचा है?

+2

क्या आपने कुछ हफ्ते पहले GLUT की सिग्फ़े की सुखद दिमागी झुकाव चर्चा देखी थी http://blog.sigfpe.com/2011/10/quick-and-dirty-reinversion-of-control.html? कोई आईओआरएफ नहीं है लेकिन हो सकता है कि यह 'हास्केल जैसी' तरह की तरह न हो। – applicative

+0

एसडीएल के लिए मेरे लिए कोई समस्या नहीं है – Qchmqs

उत्तर

14

जीएलयूटी, इसकी खराब प्रतिष्ठा बरकरार और उचित है, मुझे सबसे अच्छा मिला है।

हालांकि, अनौपचारिक भावना इसका उपयोग न करने का एक अच्छा कारण नहीं है। आप उन परियोजनाओं के नीचे एक स्तर पर हैं जो आप यहां एक परियोजना के लिए उपयोग करना चाहते हैं। इसी तरह, आपको ओपनजीएल का उपयोग नहीं करना चाहिए क्योंकि यह अनिवार्य विचारों के साथ गहराई से उलझा हुआ है।

लेकिन जीएलयूटी और ओपनजीएल ठीक हैं। कुंजी उन्हें उपयोग करने से पहले उन्हें nicer abstractions में लपेटना है। मैंने ओपनजीएल, graphics-drawingcombinators में 2 डी ग्राफिक्स के लिए हैकेज मेरे रैपर को प्रकाशित किया है। मेरे आस-पास के अन्य प्रयास हैं, मेरा मानना ​​है, और मैं थोड़ी देर के लिए ग्राफिक्स गेम से बाहर हूं इसलिए मैं अब कला की स्थिति में अच्छी तरह से नहीं जानता हूं।

जीएलयूटी को लपेटना थोड़ा कठिन है। IORef एस IO से भी कम कार्यात्मक नहीं हैं, और IO (और अन्य अनिवार्य संरचनाओं) को छोड़कर इंटरएक्टिविटी व्यक्त करने के लिए आपको FRP के कुछ रूपों की आवश्यकता होगी। अंत में इन एफआरपी पुस्तकालयों के नीचे अनिवार्य विचारों को लपेटना समाप्त हो जाएगा - जब आप सी के लिए लिखे गए पुस्तकालयों से निपट रहे हैं तो आप इससे बच नहीं पाएंगे। और यह काफी महत्वहीन है कि वैसे भी नीचे रहता है - सभी सॉफ़्टवेयर में नीचे वोल्टेज की विद्युत प्रणाली होती है।

वैसे भी, कुछ साल पहले जब मैं शोध कर रहा था, जीएलयूटी एकमात्र लाइब्रेरी थी जिसने वास्तव में क्रॉस-प्लेटफार्म काम किया था। मैं इंटरफ़ेस पसंद करता हूं ... अन्य अन्य, लेकिन प्रत्येक केवल कुछ नियंत्रित स्थितियों में काम करता है। यह एक बड़ी बाधा थी, अगर आप इसे साझा नहीं करते हैं तो आप कुछ और कोशिश कर सकते हैं। लेकिन खिड़की का इंटरफ़ेस एक पतली परत है जो काफी आसानी से लपेटा गया है, आपको इस विकल्प पर किसी भी बड़े निर्णय को आधार देने की आवश्यकता नहीं है।

1

यह बेहतर होगा अगर आपने कहा कि डेस्कटॉप/लैपटॉप पर वास्तव में क्या काम नहीं करता है। जीएलएफडब्ल्यू के लिए सी स्रोत कोड हास्केल बाइंडिंग के साथ उपलब्ध है। यह बहुत कुछ बुनियादी प्लेटफार्म-विशिष्ट एपीआई का उपयोग करता है और यही वह है।