openGL剪裁的使用

来源:互联网 发布:php统计网站访问量代码 编辑:程序博客网 时间:2024/05/21 21:44
#include <windows.h>#include <GL/glut.h>void RenderScene(void){    glClearColor(0.0f,0.0f,1.0f,0.0f);    glClear(GL_COLOR_BUFFER_BIT);    glClearColor(1.0f,0.0f,0.0f,0.0f);    glScissor(100, 100, 600, 400);    glEnable(GL_SCISSOR_TEST);     glClear(GL_COLOR_BUFFER_BIT);        // Finally, an even smaller green rectangle        glClearColor(0.0f, 1.0f, 0.0f, 0.0f);        glScissor(200, 200, 400, 200);        glClear(GL_COLOR_BUFFER_BIT);        // Turn scissor back off for next render        glDisable(GL_SCISSOR_TEST);glutSwapBuffers();}void ChangeSize(int w, int h){// Prevent a divide by zeroif(h == 0)h = 1;// Set Viewport to window dimensions        glViewport(0, 0, w, h);// Set the perspective coordinate systemglMatrixMode(GL_PROJECTION);glLoadIdentity();// Set 2D Coordinate systemgluOrtho2D(-4.0, 4.0, -3.0, 3.0);// Modelview matrix resetglMatrixMode(GL_MODELVIEW);glLoadIdentity();}///////////////////////////////////////////////////////////// Program entry pointint main(int argc, char* argv[]){glutInit(&argc, argv);glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);glutInitWindowSize(800,600);glutCreateWindow("OpenGL Scissor");glutReshapeFunc(ChangeSize);glutDisplayFunc(RenderScene);glutMainLoop();return 0;}

0 0