در اينجا ميخواهيم شما را با نحوه کار با OPEN GL در VC آشنا کنيم.مبحث OPEN GL در واقع مربوط به مباحث گرافيکي ويژوال سي ميباشد .ولي با اين تفاوت که اين قسمت بسيار پيچيده وسر در گم ميباشد ونيازمند ان است که فرد مطالعه زيادي را در اين باره داشته باشد. OPEN GL را در همه جا ديده ايم بسياري از بازي هايي که با ويژوال سي نوشته ميشوند از اين مورد سود ميبرند .چرا که مربوط به DIRECT X ميباشد که اين متعلق به گرافيک بالا مثلا در بازيها ميتوان آن را نام برد. ويژوال سي به خوبه اين قابليت را دارد که ميتواند به طور عالي با DIRECT X ,ترکيب شود و گرافيک بالايي را در برنامه ها بوجود اورد. همان طور که بسياري از بازي ها تحت همين موضوع در VC نوشته شده , و گرافيک بازي ها را چند برابر ميکند. در اينجا ميخواهيم مثال ساده اي از اين مبحث براي شما بزنيم تا موضوع کمي جا بيفتد. در اين مثال ما مخواهيم يک مثلث را به طريق OPEN GL ترسيم نماييم. براي شروع ابتدا , يک پهنايي را جهت رسم بر روي پنجره باز ميکنيم تا مثلث در آن ترسيم گردد:
خوب محيط ما آماده شد. حال نوبت به ترسيم خود مثلث ميشود . ممکن است بپرسيد اين m_pDisplay چيست؟ اين در واقع متغيري است از يک کلاس دلخواه که مارسم آن مثلث را در تابع ()OnPaint آن کلاس نوشته ايم. خوب قبل از هر چيز ابتدا بايد يک استراکچر يا ساختاري را تعريف کنيم,اي ساختار در واقع فرمت پيکسل ما را جهت ترسيم مثلث در اختيار ما ميگذارد.
آرگومان سوم WINDOW را support ميکنند. آرگومان چهارم خود OPEN GL را, و آرگومان پنجم نوع رنگ در پروژمان و بالاخره آرگومان دو تا به اخر لايه بندي در ترسيم مان را ايجاد مينمايد. بعد از اين ساختار با کمک يک محتواي ابزار اين ساختار را در تابع ChoosePixelFormat جاسازي مينماييم. و بالاخره مقدار برگشتي اين تابع را که از نوع INT هست را در تابعي به نام SetPixelFormat قرار داده تا بتوانيم فرمت مورد نظر در ساختار خود را ايجاد و تنظيم نماييم.
iPixelFormat = ChoosePixelFormat(hdc, &pfd)) == 0
(SetPixelFormat(hdc, iPixelFormat, &pfd
در تابع ()OnPaint که گفته شد حال ميتوانيم مثلث را ترسيم نماييم. ابتدا رنگ هاي پيش فرض در مثلث را پاک ميکنيم تا به حالت پيش فرض برگردد. بعد ازآن رنگ هاي مورد نظر را در مثلث ست يا تنظيم مينماييم, سپس محيط را براي رندر کردن اماده کرده و نيز رنگ ها را به صورت VERTEX يا عمودي به صورت 3F قرار ميدهيم. و در آخر هم جهت تغيير دادن جلو و عقب بافر در محتواي ابزار خود انرا در تابع SwapBuffers قرار داده وبا اين کار مثلث رسم ميگردد. شما ميتوانيد سورس و هدر اين برنامه را از زير دانلود نماييد.