当前位置: 首页 > 知识库问答 >
问题:

在OpenGL中显示全屏背景

慕承允
2023-03-14

我的Android应用程序需要显示一个全屏位图作为背景,然后在上面使用OpenGL ES显示一些动态的3D图形(1.1或2.0--尚未决定)。背景图像是同一个应用程序中WebView组件的快照,因此它的尺寸已经完全适合屏幕。

我是OpenGL新手,但我知道显示位图的常规方法包括将其缩放成一个POT纹理(glTexImage2D)、配置矩阵、为矩形创建一些顶点并使用GLDraWarrays来显示。似乎需要做很多额外的工作(当将图像缩放到POT大小时,质量会下降),而所需的只是在屏幕上以1:1的比例绘制位图。

共有1个答案

谷梁德容
2023-03-14

但是我知道显示位图的常规方法包括将其缩放成一个POT纹理(glTexImage2D)

那你的知识就过时了。现代OpenGL(版本2及更高版本)对任意图像尺寸的纹理都很好。

“desktop”GL具有glDrawPixels(),它似乎可以完成这种情况下所需的工作,但GLES显然缺少这一点。

只需将未缩放的图像上传到纹理中,禁用mipmapping并将其绘制到全屏幕上。

 类似资料:
  • 下面的程序适用于目录中的第一个. jpg。当第二次调用时,它会得到一个“_tkinter。图片"pyImage2"不存在"异常。为什么它会得到错误?有没有办法重用第一个图像而不是创建第二个? 导入系统,如果是系统,则导入操作系统。版本信息[0]==2: 导入Tkinter Tkinter=Tkinter其他:从PIL导入图像,ImageTk导入Tkinter 这是控制台输出。Traceback(最

  • 描述 (Description) 您可以根据窗口的宽度和高度创建全屏模式。 例子 (Example) 以下示例演示了在Foundation中使用full screen modal - <!doctype html> <head> <meta charset = "utf-8" /> <meta http-equiv = "x-ua-compatible" conten

  • 问题内容: 我一直在尝试并且无法在OSX系统的主显示屏上使用Java全屏模式。无论我尝试了什么,似乎都无法摆脱显示屏顶部的“苹果”菜单栏。我真的需要在整个屏幕上绘画。谁能告诉我如何摆脱菜单? 我已经附上了一个显示问题的示例类-在我的系统上,菜单仍然可见,我希望看到一个完全空白的屏幕。 问题答案: 我认为您的问题在这里: 块总是执行,所以这里发生的是,您的窗口在短时间内(如果有的话)变为全屏,然后立

  • 我想在API调用时在flutter中显示全屏加载视图。但是当我在脚手架体中添加加载小部件时,它出现在appbar和底部导航器之后。 我花了很多时间在全屏显示加载视图。另外,我希望在API调用时防止后退操作。

  • 问题内容: 我有一个以全屏模式运行的应用程序,并且运行良好。现在,我需要添加一个简单的,未修饰的对话框,我遇到了麻烦。如果我 最大化 而不是全屏运行该应用程序,则对话框将按预期方式显示和运行。当我切换回全屏模式时,该对话框将不会显示。 该对话框扩展了JDialog,仅包含一个JSlider和几个按钮。它是未经装饰的, 不是模态的 。(我出于测试目的禁用了模式- 每次对话框阻止输入时强制退出应用程序

  • 我试图在linux red hat上使用GLFW打开一个OpenGL全屏窗口。我有一个桌面,它跨越两个显示器,总分辨率为3840*1080。 我有两个问题:1。窗口仅在一台显示器上打开,最大窗口宽度为1920(单个显示器的宽度)。2.窗口的最大高度是1003(我认为是屏幕的高度减去任务栏和顶栏的高度)。 这是我用来打开窗口的代码: 输出:宽度=1920高度=1003 编辑:我使用xrandr检查可