說明
glViewport決定了将OpengGL渲染的圖形,顯示在螢幕的什麼位置,第一和第二參數決定開始渲染的位置,後兩個參數分别為寬和高
代碼
#include <gl/glut.h>
void display()
{
glClear( GL_COLOR_BUFFER_BIT );
glColor3f( 1.0, 0.0, 0.0 );
//畫分割線,分成四個視見區
glViewport( 0, 0, 400, 400 );
glBegin( GL_LINES );
glVertex2f( -1.0, 0 );
glVertex2f( 1.0, 0 );
glVertex2f( 0.0, -1.0 );
glVertex2f( 0.0, 1.0 );
glEnd();
//定義在左下角的區域
glColor3f( 0.0, 1.0, 0.0 );
glViewport( 0, 0, 200, 200 );
glBegin( GL_POLYGON );
glVertex2f( -0.5, -0.5 );
glVertex2f( -0.5, 0.5 );
glVertex2f( 0.5, 0.5 );
glVertex2f( 0.5, -0.5 );
//定義在右上角的區域
glColor3f( 0.0, 0.0, 1.0 );
glViewport( 200, 200, 200, 200 );//注意,後面這兩個參數是高度和寬度,而不是坐标
//定義在左上角的區域
glViewport( 0, 200, 200, 200 );//注意,後面這兩個參數是高度和寬度,而不是坐标
//定義在右下角
glColor3f( 1.0, 1.0, 1.0 );
glViewport( 200, 0, 200, 200 );//注意,後面這兩個參數是高度和寬度,而不是坐标
glFlush();
}
void init()
glClearColor( 0.0, 0.0, 0.0, 0.0 );
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
//定義剪裁面
//gluOrtho2D( -1.0, 1.0, -1.0, 1.0 );
int main( int argc, char ** argv )
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_SINGLE | GLUT_RGB );
glutInitWindowPosition( 100, 100 );
glutInitWindowSize( 400, 400 );
glutCreateWindow( "glViewport" );
glutDisplayFunc( display );
init();
glutMainLoop();
本文轉自fengyuzaitu 51CTO部落格,原文連結:http://blog.51cto.com/fengyuzaitu/1881876,如需轉載請自行聯系原作者