OpenGL的glViewPort窗口设置函数实现分屏

之前实现过全景图片查看(OpenGL的几何变换3之内观察全景图),那么我们需要进行分屏该如何实现呢?如下图:

没错就是以前提过的glViewPort函数,废话不多说了,我直接上代码:

 1 //从这里开始进行所有的绘制2 void drawCube(void)3 {4     glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);    //清除屏幕和深度缓存5     glMatrixMode(GL_MODELVIEW);6     glLoadIdentity();    //重置当前的模型观察矩阵7 8     glPushMatrix();9     {
10         gluLookAt(0, 0, -5, 0, 0, 0, 0, 1, 0);
11         glTranslatef(0.0f, 0.0f, -5.0f);    //移入屏幕 5 个单位
12         glRotatef(xangle_Textures, 1.0f, 0.0f, 0.0f);    //绕X轴旋转
13         glRotatef(yangle_Textures, 0.0f, 1.0f, 0.0f);    //绕Y轴旋转
14         glRotatef(zangle_Textures, 0.0f, 0.0f, 1.0f);    //绕Z轴旋转
15         for (int i = 0; i < 2; i++) {
16             glViewport(i * w_Textures, 0, w_Textures, h_Textures);
17             glBindTexture(GL_TEXTURE_2D, texturesArr[0]);    //选择纹理
18             glBegin(GL_QUADS); {
19                 //前面:纹理顺时针,立方体逆时针
20                 glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);    //纹理和四边形的左下
21                 glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);    //纹理和四边形的左上
22                 glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);    //纹理和四边形的右上
23                 glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);    //纹理和四边形的右下
24             }glEnd();
25
26             glBindTexture(GL_TEXTURE_2D, texturesArr[1]);    //选择纹理
27             glBegin(GL_QUADS); {
28                 //后面:纹理顺时针,立方体逆时针
29                 glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);    //纹理和四边形的左下
30                 glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);    //纹理和四边形的左上
31                 glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);    //纹理和四边形的右上
32                 glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);    //纹理和四边形的右下
33             }glEnd();
34
35             glBindTexture(GL_TEXTURE_2D, texturesArr[2]);    //选择纹理
36             glBegin(GL_QUADS); {
37                 //顶面:纹理顺时针,立方体逆时针
38                 glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f,  1.0f,  1.0f);    //纹理和四边形的左下
39                 glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);    //纹理和四边形的左上
40                 glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);    //纹理和四边形的右上
41                 glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f,  1.0f,  1.0f);    //纹理和四边形的右下
42             }glEnd();
43
44             glBindTexture(GL_TEXTURE_2D, texturesArr[3]);    //选择纹理
45             glBegin(GL_QUADS); {
46                 //底面:纹理顺时针,立方体逆时针
47                 glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);    //纹理和四边形的左下
48                 glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f, -1.0f,  1.0f);    //纹理和四边形的左上
49                 glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f, -1.0f,  1.0f);    //纹理和四边形的右上
50                 glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);    //纹理和四边形的右下
51             }glEnd();
52
53             glBindTexture(GL_TEXTURE_2D, texturesArr[5]);    //选择纹理
54             glBegin(GL_QUADS); {
55                 //右面:纹理顺时针,立方体逆时针
56                 glTexCoord2f(0.0f, 0.0f); glVertex3f( 1.0f, -1.0f, -1.0f);    //纹理和四边形的左下
57                 glTexCoord2f(0.0f, 1.0f); glVertex3f( 1.0f,  1.0f, -1.0f);    //纹理和四边形的左上
58                 glTexCoord2f(1.0f, 1.0f); glVertex3f( 1.0f,  1.0f,  1.0f);    //纹理和四边形的右上
59                 glTexCoord2f(1.0f, 0.0f); glVertex3f( 1.0f, -1.0f,  1.0f);    //纹理和四边形的右下
60             }glEnd();
61
62             glBindTexture(GL_TEXTURE_2D, texturesArr[4]);    //选择纹理
63             glBegin(GL_QUADS); {
64                 //左面:纹理顺时针,立方体逆时针
65
66                 glTexCoord2f(0.0f, 0.0f); glVertex3f(-1.0f, -1.0f,  1.0f);    //纹理和四边形的左下
67                 glTexCoord2f(0.0f, 1.0f); glVertex3f(-1.0f,  1.0f,  1.0f);    //纹理和四边形的左上
68                 glTexCoord2f(1.0f, 1.0f); glVertex3f(-1.0f,  1.0f, -1.0f);    //纹理和四边形的右上
69                 glTexCoord2f(1.0f, 0.0f); glVertex3f(-1.0f, -1.0f, -1.0f);    //纹理和四边形的右下
70             }glEnd();
71         }
72     }glPopMatrix();
73     glFlush();
74 }

OpenGL的glViewPort窗口设置函数实现分屏相关推荐

  1. 【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★

    文章目录 一.导入 OpenGL 的两个头文件 二.链接 OpenGL 库 三.将 Windows 桌面窗口改成 OpenGL 窗口 四.获取窗口设备 五.设置像素格式描述符 六.设置像素格式 七.创 ...

  2. blender中如何将窗口移动到另一块屏幕上,即新开一个窗口,作用到分屏上

    在 Blender 中,您可以通过以下步骤将窗口移动到另一块屏幕上: 打开 Blender 的 "User Preferences" 窗口(在 Windows 系统中,您可以在菜单 ...

  3. java如何控制分屏显示,intellij idea 分屏设置 与快捷键

    1.找到分屏功能 File -> setting -> keymap,搜索(注意大小写): Split Vertically 水平分屏 Split Horizontally 垂直分屏 2. ...

  4. Android - 分屏模式(多窗口模式)

    简介 在Android N以上设备,可以开启多窗口模式,也叫分屏模式,即在屏幕上可以同时显示多个窗口,这多个窗口可以是不同应用的,也可以是同一个应用的. 禁用分屏 app默认允许分屏,如果想要禁止分屏 ...

  5. Android实现一键开启自由窗口、分屏、画中画模式——自由窗口模式

    转载请注明出处:https://blog.csdn.net/sunmmer123 忙过一段时间后,新需求又来了"多个应用/页面间在不用退出或者切换的情况下,可同时操作" 咋一听是不 ...

  6. AndroidQ 分屏窗口模式 (AMS部分)

    1. 多窗口 1.1 栈 Android7.0开始支持多窗口,多窗口分为三种,画中画,分屏,自由窗口,多窗口的核心原理其实就是分栈和设置栈边界, 分栈即把不同窗口模式下的Activity放在不同的Ac ...

  7. Android实现一键开启自由窗口、分屏、画中画模式——分屏模式

    转载请注明出处:https://blog.csdn.net/sunmmer123 Android实现一键开启自由窗口.分屏.画中画模式系列 一键开启自由窗口模式 一键开启进入分屏模式 一键开启画中画模 ...

  8. windows平台下,有什么好的分屏软件推荐?3款让窗口布局更合理的App

    windows平台下,有什么好的分屏软件推荐?Windows 10 系统为例,系统自带功能支持二分屏/三分屏/四分屏的分屏方式.比如用户通过鼠标将应用窗口拖到屏幕边缘,窗口会自动以占据 1/2 屏幕大 ...

  9. Mac 窗口管理分屏工具软件【Wins】

    Wins,为 Mac 带来系统级的分屏功能,快速分屏,只需拖动窗口到屏幕边缘即可进行分屏操作.提供了分屏预览动画和触发分屏后的动画效果. 单设备永久使用,免费更新.仅需95   Wins 激活码:Wi ...

最新文章

  1. 昌宁一中高考成绩表查询2021,昌宁县一中20182019学年上学期高二数学月考试题含解析.docx...
  2. 降维(一)----说说主成分分析(PCA)的源头
  3. select自定义箭头问题 。。。和一行内不同颜色的整体鼠标滑过变色
  4. CTF python沙箱逃逸进阶题目
  5. python pexpect timeout_Python 的 pexpect 模块的问题
  6. python闹钟界面程序_「Python编程」自由管理时间之编写一个小闹钟起床
  7. 重磅!普惠AI--华为云语音语义万次调用1元购,有奖问答@评论区等你来!
  8. 用法 the_英语冠词:不定冠词a,an和定冠词the的用法
  9. 2011年7月21日 星期四 new
  10. cnn卷积神经网络_【CNN】一文带你了解卷积神经网络CNN的发展史
  11. 配置php apache,apache如何配置php
  12. 带瀑布流的电钢琴_你没有看错 这个Find智能钢琴它会自己弹琴
  13. (php毕业设计)基于php校园网络报修管理系统获取
  14. 命名时取代基优先顺序_烷烃的系统命名
  15. vim之快速查找功能
  16. 计算机网络数据通信部分之网络层ARP报文分析
  17. Android逆向案例:干掉梆梆加固免费版的反调试检测
  18. 使用Spring实现读写分离(MySQL实现主从复制)
  19. 1.试用期个人工作总结(篇一)
  20. 量化投资 — 移动平均及双均线策略

热门文章

  1. A Survey on Federated Learning Systems- Vision, Hype and Reality for Data Privacy and Protection
  2. 2021-10-11 学习笔记 什么是D触发器?
  3. 如何使用Synopsys VCS在Vivado中编译库并执行仿真
  4. Python Django Web开发入门-刘硕-专题视频课程
  5. P5514 [MtOI2019]永夜的报应(位运算)
  6. 赶紧换回我以前比较老实的头像算了
  7. FH8626V100添加Uboot串口
  8. 高通 Android 12/13 去掉耳机音量安全弹窗
  9. IDS及防火墙知识点
  10. 数据管理技术的发展经历了哪三个阶段