بسم الله الرحمن الرحيم لا ادعي الخبرة .. عشان ما تفهمونا غلط .... لكن هي محاولة لفهم عمل هذه المكتبة الرائعة GL === ربط opengl بالنافذة .. وبالنظام .... بوجه عام .. يتم عن عدة طرق ... اهمها عن طريق المكتبة glut او دوال النظام (API) API طويلة نوعا ما ... لكن لا اتصور لعبة تعمل على الويندوز ولاتستخدم دوال API . لذا سأفترض انك : 1- تجيد لغة السي . 2- تملك اساسا جيدا في win api . الكود طويل نوعا ما .. لكن ما اريدك ان تفهمه.. هو على أي اساس .. انشأنا مثل هذا الكود . هل يجب ان يكون 21 سطر .. او 68 سطر .. هل المسألة قص ولصق . ام فهم . ام حفظ . لا اريدك ان تسير مع الكود سطر بسطر ... كأننا في مادة القراءة في اولى ابتدائي . ولا اريدك ان تحاول اتقان جانب الفلسفة .. والخروج عن صلب الموضوع الى احاديث ومناقشات نظرية . لاتغني ولاتسمن من جوع . اريدك ان تنظر الى الكود نظرو واحدة وتعرف اجزائه ... اولا نقسم عملنا الى عدة أقسام بهدف التنظيم .((دوال )).. اعيد واكرر ... تنظيم . قسم يقوم باعداد النافذة ويربط نافذتنا بopengl ونسميه
CreateGLWindow()
IntiGL()
render()
ReShape(GLsizei width,GLsizei height)
ShutDown()
bool EXIT =false;
MSG uMsg; while( uMsg.message != WM_QUIT ) { if( PeekMessage( &uMsg, NULL, 0, 0, PM_REMOVE ) ) { TranslateMessage( &uMsg ); DispatchMessage( &uMsg ); } else render(); } shutDown();
if( PeekMessage( &uMsg, NULL, 0, 0, PM_REMOVE ) ) { TranslateMessage( &uMsg ); DispatchMessage( &uMsg ); }
else render();}
shutDown();