में सभी प्रतिपादन करें यह मेरा वर्तमान सेटअप है: मैं एसडीएल (वर्तमान में लिनक्स पर) का उपयोग कर ओपनजीएल प्रतिपादन कर रहा हूं। मैं एसडीएल (SDL_Init
) शुरू करता हूं और मुख्य थ्रेड में एप्लिकेशन विंडो (SDL_CreateWindow
) बना देता हूं और इसे दूसरे थ्रेड में पास करता हूं। यह दूसरा धागा इसे से ओपनजीएल संदर्भ बनाता है (SDL_GL_CreateContext
) और रेंडर लूप शुरू करता है, जबकि मुख्य धागा घटनाओं के लिए सुनता है। मुझे लगता है कि यह ध्यान रखना महत्वपूर्ण है कि जीएल कॉल इस दूसरे धागे तक पूरी तरह से सीमित हैं; वास्तव में मेरे अधिकांश आवेदन तर्क वहां होते हैं, मुख्य धागा वास्तव में केवल एसडीएल में आने वाली घटनाओं को संभालने के लिए ज़िम्मेदार होता है।एसडीएल 2.0: मुख्य थ्रेड में विंडो बनाएं, लेकिन अलग-अलग
मूल रूप से मैंने इसे दूसरी तरफ किया, लेकिन यह पता चला है कि आप ओएसएक्स और शायद विंडोज़ के मुख्य धागे के अलावा किसी अन्य चीज में ईवेंट को संसाधित नहीं कर सकते हैं, इसलिए मैंने इसे भविष्य में उन दोनों को संगत करने के लिए स्विच किया ।
क्या मुझे कोई चिंता है कि यह ओएसएक्स/विंडोज पर काम नहीं करेगा? लिनक्स पर, मेरे पास कुछ भी नहीं है। संदर्भ साझा करने और कई धागे से जीएल कॉल करने के बारे में इंटरनेट पर बहुत सारी जानकारी है, लेकिन मैं बस एक थ्रेड में ओपनजीएल करना चाहता हूं जो मुख्य नहीं है। मैं केवल बाद में यह पता लगाने के लिए अपने आवेदन को कोडिंग जारी रखना नहीं चाहूंगा कि यह कहीं और काम नहीं करेगा।
मुझे ठीक लगता है। इसके बारे में एक और धागा है ... [लिंक] (http://stackoverflow.com/questions/6172020/opengl-rendering-in-a-secondary-thread?rq=1) – user1961169
@ user1961169 धन्यवाद, मैंने पहले से ही पढ़ा है धागा आप जुड़े हैं। उस व्यक्ति को लिनक्स/एक्स 11 के साथ परेशानी हो रही थी, जो मेरे लिए विशेष रूप से पूरी तरह से काम करता है, यह सिर्फ ओएसएक्स/विन 32 है, मैं इसके बारे में अनिश्चित था। हालांकि उस धागे में कुछ टिप्पणियां थीं जिन्होंने सुझाव दिया कि यह उन प्लेटफॉर्म पर भी ठीक होना चाहिए, इसलिए मुझे याद दिलाने के लिए धन्यवाद! – Ancurio
केवल एक चीज जो आपको आश्वस्त करना है वह यह है कि ओएस सामान कॉल ऐप मुख्य थ्रेड में हैं। यदि नहीं तो यह अक्सर अजीब व्यवहार (बूथ जीत और लिनक्स पर) बनाता है जैसे हैंडल, कभी-कभी अपवाद, ग्राफिक्स कलाकृतियों, अवसर जीयूआई त्रुटियों, आदि ... – Spektre