تابع glViewport(پنجــــــــره دید)
برای مثال قبلا برنامه یک مثلث را نوشته اید . این برنامه خودش برای یک پنجره
نمایش با مختصات و ویژگی های خودش بوده اما ما در برنامه جدیدمان میخواهیم
از برنامه قبلیمان استفاده کنیم اما از سایز ومکان شکل در پنجره راضی نیستیم
در واقع دیدمان به پنجره عوض شده است. به عکس پرچم پاناما نگاه کنید . ابتدا
تمام سایز پنجره را گرفته اما بعد هم کوچکش کردم وهم مکانش را تغییر دادم.
برای مثال:
void mydisplay(){
glClear(GL_COLOR_BUFFER_BIT);
//glViewport(0,0,200,400);
glBegin(GL_POLYGON);
glVertex2f(-0.9,0.4);
glVertex2f(-0.5,0.8);
glVertex2f(-0.125,0.4);
glEnd();
glFlush();
}
اما الان می خواهید دید پنجره نمایش نسبت به این شکل تغییرکند مثلا مثلث به
جای اینکه مثل این برنامه در ربع دوم با این سایز کشیده شود در مکان دیگری از
صفحه نمایش با سایز دیگری کشیده شود.
نکته مهم 1 : برای گرفتن نتیجه تابع glviewport را قبل از glBegin بنویسید.
برای اینکارها از تابع glViewport استفاده میشود. شکل کلی تابع glViewport به
صورت زیر است:
(طول شئ , عرض شئ , مختصات Y , مختصات glViewPort( X
نکته مهم 2 :این تابع بر حسب پیکسل است یعنی مختصات دهی بر حسب
پیکسل میباشد.
این هم عکس برای فهم بیشتر ودرک کاربرد:

نکته مهم 3:مختصات (0،0 ) پنجره در اپن جی ال گوشه سمت چپ پایین
صفحه است. در حالی که خود پنجره نمایشی مختصات دیگری برای
صفر وصفرش دارد وآن گوشه سمت چپ بالای صفحه است.
