说明

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 );

glEnd();

//定义在右上角的区域

glColor3f( 0.0, 0.0, 1.0 );

glViewport( 200, 200, 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 );

glEnd();

//定义在左上角的区域

glColor3f( 1.0, 0.0, 0.0 );

glViewport( 0, 200, 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 );

glEnd();

//定义在右下角

glColor3f( 1.0, 1.0, 1.0 );

glViewport( 200, 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 );

glEnd();

glFlush();

}

void init()

{

glClearColor( 0.0, 0.0, 0.0, 0.0 );

glColor3f( 1.0, 1.0, 1.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,如需转载请自行联系原作者

glViewport 用例相关推荐

  1. 一个小兔子的大数据见解2

    Big Data 阿里的大数据解决方案 MAXCOMPUTE DATAWORKS QUICKBI 1.Vmware增强 2. 1.1.VMware 虚拟网络设备 1.1.1.虚拟网卡.虚拟交换机 虚拟 ...

  2. 《Java150道面试题全集》

    本文转载他人,自留作笔记用,请尊重原创作者. 1.面向对象的特征有哪些方面? 答:面向对象的特征主要有以下几个方面: - 抽象:抽象是将一类对象的共同特征总结出来构造类的过程,包括数据抽象和行为抽象两 ...

  3. OpenGL图形渲染管线、VBO、VAO、EBO概念及用例

    OpenGL图形渲染管线.VBO.VAO.EBO概念及用例_牧野的博客-CSDN博客 图形渲染管线(Pipeline) 图形渲染管线指的是对一些原始数据经过一系列的处理变换并最终把这些数据输出到屏幕上 ...

  4. OpenGL QT glViewport 函数的作用

    函数原型: void glViewport(GLintx, GLinty, GLsizeiwidth, GLsizei height) 函数作用: 改变OpengL描绘结果原点在屏幕的位置及尺寸 参数 ...

  5. Opengl ES系列学习--glViewport API使用

    去年有分析了一些Opengl ES的实例,但是后面在实际的工作中,发现根基不牢,工作中使用的一些复杂场景还是理解的不够透彻,所以回过心来,必须把基础把扎实.从这节开始,我们后面对一些非常基础普通的Op ...

  6. OpenGL-案例-环境搭建

    配置环境 创建项目 打开Xcode -> File -> New -> Project,在弹框中选择macOS->App. 导入依赖库 下载libGLTools,找到GL和in ...

  7. OpenGL-案例-矩阵压栈绘制

    OpenGL-案例-环境搭建 导入头文件,定义变量 #include <stdio.h> #include <math.h> #include "GLTools.h& ...

  8. YOLOv4 资源环境配置和测试样例效果

    YOLOv4 资源环境配置和测试样例效果 基本环境:cuda=10.0,cudnn>=7.0, opencv>=2.4 一.下载yolov4 git clone https://githu ...

  9. 2021年大数据常用语言Scala(三十二):scala高级用法 样例类

    目录 样例类 定义样例类 样例类方法 样例对象 样例类 样例类是一种特殊类,它可以用来快速定义一个用于保存数据的类(类似于Java POJO类),而且它会自动生成apply方法,允许我们快速地创建样例 ...

最新文章

  1. Mr. Process的一生-Linux内核的社会视角 (2)启动
  2. Caffe官方教程翻译(2):Web demo
  3. SQL Server语句大全(增删改查数据、创建表、删除表、修改表)
  4. MySQL子查询介绍
  5. 访问数组元素进行赋值
  6. 为什么新装的mysql5.7服务无法启动_Mysql5.7为什么无法启动?请大家帮忙
  7. 2018年python工作好找吗-2018年IT行业薪资大揭秘:你拖后腿了吗?
  8. 树莓派3B 开启串口
  9. MySQLdump之single-transaction详解
  10. 【渝粤教育】广东开放大学 计算机硬件组装与维护 形成性考核 (38)
  11. 关于传奇MapInfo地图文件参数详细说明
  12. 花椒测试平台 - 接口篇
  13. linux安装xbox无线手柄,想不到xbox手柄配对方法居然还有3个【详解】
  14. 简述人工智能的研究目标
  15. 自己实现Latex公式识别
  16. 欧几里得  拓展欧几里得算法 讲解 (Euclid Extend- Euclid Algorithm)
  17. c语言 内部12位二进制整型数据 转换 十六进制 程序,C语言应用:将128位二进制数据转换为十六进制输出...
  18. 不可错过的年度AI学术盛会 2021新一代人工智能院士高峰论坛暨启智开发者大会议程惊喜发布~
  19. CorelDraw 课程标准
  20. 用c 语言做课程表系统代码,[计算机]C语言课程表源代码.doc

热门文章

  1. 【STM32F4】GP2Y10粉尘传感器的使用
  2. Linux下socket多人聊天室
  3. 【VBA树控件学习四】编辑与删除TreeView节点
  4. 【SwiftUI模块】0058、 SwiftUI设计时尚的漫画应用程序UI[用户界面]
  5. JavaWeb(三)jQuery
  6. 实用技巧win7旗舰版批量修改文件名的技巧
  7. 北京燕化附中2021年高考成绩查询,北师大燕化附中高考奖金分配方案
  8. 网络安全 -- 扫描
  9. vivado chipscope
  10. disruptor example