الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

بناء واجهة للمستخدم بإستخدام OpenGL

بدأه NOUR ALDEEN في 25 يوليو 2012 · 5 رد · 2,187 مشاهدة · في OpenGL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

هل يمكن إنشاء واجهة مستخدم مع كل العناصر المطلوبة أو إنشاء Custom Controls ؟؟

هل يمكن الإعتماد على هذه الواجهة بشكل أفضل من الواجهات المبنية على WINAPI أو MFC أو غيرها ؟؟

هل إستخدام كل إمكانيات برنامج مع WINAPI مع OPENGL ؟؟

من أين أبداً في التعلم ؟؟

شكراً لكم إخواني ومباركة طاعتكم smile.gif

Be the change you want to see in the world


#2

السلام عليكم .

OpenGL هي مكتبة صممت أصلا للوصول إلى العتاد , أي أن مكتبة OpenGL ستستفيد من بطاقة العرض لديك, و لهذا السبب كان من الأجدر لمن يرغب في تصميم واجهات بسيطة كالأزرار و القوائم مثلا أن يستعملوا مكتبات تستفيد فقط من المعالج و بطاقة العرض الإفتراضية و ليس بطاقة العرض ( المسرع الرسومي ) .

إن كنت تريد تصميم واجهة للألعاب مثلا , يتوجب عليك إلقاء نظرة حول مكتبة GLUI , أما إن أردت تصميم واجهة رسومية لبرامج عادية فحاول مع مكتبة Cairo.

اقتباس
هل يمكن إنشاء واجهة مستخدم مع كل العناصر المطلوبة أو إنشاء Custom Controls ؟؟

نعم , و لكن ليس بإحترافية و قوة كتلك التي تقدمها مكتبات المتخصصة بالواجهات مثل Qt أو Gtk .

اقتباس
هل يمكن الإعتماد على هذه الواجهة بشكل أفضل من الواجهات المبنية على WINAPI أو MFC أو غيرها ؟؟

لا.

اقتباس
هل إستخدام كل إمكانيات برنامج مع WINAPI مع OPENGL ؟؟

إن كنت تقصد أنه بإمكان ال WINAPIإحتضان مكتبة OpenGL , فهذا لا , لأن مكتبة OpenGL مكتبة مستقلة تختص بمسرعات بطاقات العرض أي المسرع الرسومي.

اقتباس
من أين أبداً في التعلم ؟؟

هذا يعتمد عليك أنت, و ما هي تطلعاتك . فإن كنت تريد تصميم مكتبة تعتمد على OpenGL في إنشاء الواجهة للتهرب من الرخص التي تقدمها المكتبات الجاهزة , فأنا شخصيا حاولت و باءت كل محاولاتي بالفشل الصاعق حينها أدركت أن OpenGL ليس حلا مثاليا لعمل واجهات , و لكن في حالة خاصة كمثلا في الألعاب يمكنك عمل واجهة بسيطة مقابل جهد كبير من بطاقة العرض .

عموما شرحت لك هذا لكي لا تضيع وقتك و جهدك في شيء قد سبقك إلبه الآخرون و النتيجة 0 و سبب ذلك جهل بعض الأمور المنهجية.

أكرر إن كنت تريد إنشاء واجهات فعليك الإعتماد على مكتبات تستفيد من المعالج CPU و ليس ( المسرع بطاقة العرض ) GPU . أما مكتبة OpenGL فصممت للوصول إلى ال GPU ( بطاقة العرض ).

2

تخيل, هل سيكون مستقبل الأوبن جي أل مع البشرية هكذا

future.jpg
#3

ألف شكر لك أخي

أجوبة في مكانها ولكن ماذا تقول بالنسبة للتأثيرات في البرامج

وبماذا تنصح بالنسبة لعمل واجهة إحترافية جداً جداً

وأرجوا أن يكون حل بديل وجميل

وألف ألف شكر لك

Be the change you want to see in the world


#4
اقتباس
أجوبة في مكانها ولكن ماذا تقول بالنسبة للتأثيرات في البرامج

هي مجرد تأثيرات بسيطة.

اقتباس
وبماذا تنصح بالنسبة لعمل واجهة إحترافية جداً جداً

لعمل واجهة إحترافية , يجب أن تتقن مكتبة معينة . كنت أيام الطفولة أتعامل مع WINAPI لبرمجة الواجهات على الويندوز و لما إنتقلت إلى لينكس لم أجد هناك ال WINAPI و وجدت X على اللينكس تعلمته و إستهلك مني وقت كبير جدا و لكن بدأة أفكرة في مكتبة مناسبة و تعمل على مختلف الأنظمة و لا أنسى أني تعلمت "دوت نت سي شوربا " زمان ما كنت على الويندوز و كان السبب الوحيد الذي كون لي فكرة أن هناك مكتبات عديدة و أطر عديدة و من ثم دخلت في دوامة كبيرة من الأفكار . هذه كانت مجرد سيرة علها تفيدك في شيء.

الآن بما أن المبرمج سيعمل على الواجهات فقط فهناك حل مناسب و أمثل و هو أنت تختار بين Qt و Gtk لعمل الواجهات و أنا أفضل ال Qt على غيره لأنه سهل و متدرج و بسيط و يعمل على غالبية الأنظمة.

على فكرة أنا لم أصل لمرحلة إعداد واجهات إحترافية على #C ...

تم تعديل هذه المشاركة بواسطة 3ds max2010 في 26 يوليو 2012 في 01:32

2

تخيل, هل سيكون مستقبل الأوبن جي أل مع البشرية هكذا

future.jpg
#5

السلام عليكم

أخي أجوبتك كلها في مكانها

أولاً أخي أنا أتقن السي شارب ولم أستفد منها في مشروعي وقد إنتقلت إلى السي بلس بلس والسي

وقد إستفد كثيراً منها مع كيوتي ولكن بعد تعب شديد وبعد خسارة الوقت مع السي شارب وبناء برنامجي عليه

قمت ببناء برنامج على كيوتي بشكل كامل وبعدها واجهتني الكثير من المشاكل ولكن المشكلة الأخيرة كانت GPL

أي لا أستطيع بيع برنامج إلا مع السورس كود ولم أعد مقتنع بكيوتي كثيراً ولا يهمني المكتبة التي سوف أتعامل معها سهلة أم صعبة

سوف أتعلم أي شيء لأصل لهدفي آسف إن أطلت عليك ولكن هذه مسيرتي أتمنى أن تساعدني برأيك

لأني أيضاً حاولت التعامل مع Gtk+ ولم أصل معها إلى طريق مناسب وأيضاً لا يهمني تعدد المنصات

وشكراً لك وآسف على الإطالة

Be the change you want to see in the world


#6

إذا لم يخب ظني أن المكتبات الرسومية على ويندوز ليست سوى تغليف وطبقة أخرى فوق دوال رسوميات ويندوز الأصلية. إذا أردت بناء وجهة رسومية من الصفر , لغرض المتعة والتجربة, فأفضل مكان لديك هو خادم الرسوميات X11 على لينكس أو أي نظام يونكس كماك.

خادم عرض خام كل مايوفر لك هو دالة لإنشاء نافذة مربعة مع دوال للرسم داخل النافذة ودوال للتواصل مع الفأرة ولوحة المفاتيح وأحداثها. بيئة خصبة لتطوير الواجهات. البرامج القديمة, كانت تستخدمة لبناء واجهات رسومية بدائية :

xcalc.jpg

آلة حاسبة مبنية بإستخدامه

فكرة إنشاء زر بإسخدامه : أنشيء نافذة وإرسم مربع داخله نص (الزر). إذا كانت موقع إحداثيات مؤشر الفأرة دخل المربع وضغط المسخدم بزر الفأرة الأيمن, فأعمل تأثير بسيط عل الزر (ضغط) ويمكنك عمل دالة تأخذ مؤشر دالة كـcallback للحدث الذي تريد تنفيذه إذا ضغط الزر.

أغلب برامج بناء الواجهات على لينكس ويونكس تعمل كطبقة فوق هذا الخادم لأن التعامل معه قد يكون صعب.

عموماً إذا أردت التجربة فإبحث عن وثائق libx11 بعد تنصيب لينكس : http://tronche.com/gui/x/

1

مواضيع مشابهة