草庐IT

opengl-compat

全部标签

Android:与 OpenGL 渲染器线程同步

我正在使用OpenGLES在Android应用程序中执行绘图。我想编写一个从UI线程调用的函数,该函数将调用渲染器线程并让它读取图像并将图像返回给调用者。我正在考虑使用Future这样UI线程就会在渲染器线程写入图像数据时休眠(该操作非常快,因此用户不会觉得应用程序变得无响应)。但是我不知道如何将Future提交给渲染器线程。我找到的所有示例都创建了自己的线程,然后将future提交给这些线程。关于GLSurfaceView的文档提到“queueEvent()方法用于UI线程和渲染线程之间的安全通信。如果您愿意,可以使用其他一些Java跨线程通信技术,例如Renderer类本身的同步方

Android opengl 问题(奇怪)

这很奇怪。我有一个基本应用程序(仪表板,...)和一个GLSurfaceview,我在其中绘制3D对象和纹理。一切都运行得很好,但是当我回去参加其他Activity时,嗯,截图胜于文字:这是之前的仪表盘这是opengl:这是我按下返回时的仪表板:如您所见,图片和文字都消失了。我在4.0+上运行,所以我想这是因为android使用opengl绘制元素,因为它在我的2.2设备上不这样做。您知道造成这种情况的原因吗?顺便说一句,当我不使用纹理时,它不会发生。 最佳答案 好的,我发现了我的问题所在。我通过在fragment的onPause(

android - Framebuffer FBO 渲染到纹理非常慢,在 Android 上使用 OpenGL ES 2.0,为什么?

我正在使用opengles2.0编写Android2d游戏。在我将Sprite绘制到后备缓冲区后,我将灯光绘制到FBO并尝试再次将其混合到后备缓冲区。当我将FBO绘制到帧缓冲区时,即使是透明的,没有任何颜色,在SamsungGalaxyw(它有一个adreno205作为gpu)上,帧率从60下降到30。我到处搜索并尝试了所有方法,即使我在场景中绘制了一个Sprite并将透明的FBO纹理混合到屏幕上,帧率也会下降。我在那部手机上尝试了其他带有灯光效果的游戏,它们运行良好,几乎所有游戏在那部手机上都很好,我相信他们也使用帧缓冲区。在GalaxySII(mali400gpu)上运行良好,我对

android - Maven Repo 中缺少 "compatibility-v4-r4.jar"

这两天尝试通过Maven导入这个库:https://github.com/JakeWharton/Android-ViewPagerIndicator我不得不说我是maven的新手所以如果这很容易解决请原谅我用谷歌搜索了这个问题并研究了错误页面,但我找不到这个问题的解决方案。但是每次我尝试都会遇到这样的错误:c:\JakeWharton-Android-ViewPagerIndicator-3db7585>mvninstall[INFO]Scanningforprojects...[WARNING][WARNING]Someproblemswereencounteredwhilebui

android - Android 中的 <compatible-screens>

美好的一天,我正在尝试将屏幕尺寸限制为仅适用于GooglePlay中的手机(即不是平板电脑)。在我找到这个article之后我将此添加到我的list文件中:但是现在5.5++英寸手机的用户似乎无法安装我的应用程序。接下来我也找到了这个article和里面的图片:我的第一个问题-是否可以通过特定的英寸值来限制屏幕尺寸,或者我只能使用小、普通、大和超大等标签?在某些时候,我决定通过像这样更新list来将支持的英寸大小增加到7:但是5.5寸甚至5.2寸的用户还是无法安装app。那么我的第二个问题-我做错了什么或不明白?老实说,我阅读了所有关于stackoverflow的类似问题和androi

iphone - 适用于 Android 和 iPhone 的 OpenGL

在与一些同事的讨论中,我们想知道为Android或iPhone开发的OpenGL工作是否可以有效互换,因为两者都支持规范。或者说,在两个平台之间共享OpenGL的现实更多是一种怪癖、调整,并不像人们希望的那么容易。 最佳答案 OpenGL实现通常由两部分组成:1.平台特定部分。这具有通常与创建和显示表面相关的功能。2.OpenGLAPI。这部分对于OpenGL的具体实现在所有平台上都是一样的,以Android为例,OpenGLES1.0。这意味着您的大部分OpenGL代码应该易于移植。在C中,您可能有glLoadIdentity()

OpenGL ES 绘制一张图片

GLSL语法与内建函数GLSL的修饰符与数据类型GLSL中变量的修饰符const:修饰不可被外界改变的常量attribute:修饰经常更改的变量,只可以在顶点着色器中使用uniform:修饰不经常更改的变量,可用于顶点着色器和片段着色器varying:修饰在顶点着色器计算,然后传递到片元着色器中使用的变量GLSL的基本数据类型intfloatboolfloat是可以再加一个修饰符的,这个修饰符用来指定精度。highp:32bit,一般用于顶点坐标(vertexCoordinate)medium:16bit,一般用于纹理坐标(textureCoordinate)lowp:8bit,一般用于颜色表

android - 在 NativeActivity 中创建 OpenGL 着色器

我调整了nativeActivityNDK示例以合并hello-gl2示例中的OpenGL代码。我处理APP_CMD_INIT_WINDOW消息,然后尝试创建着色器。着色器创建失败,我尝试通过getShaderInfoiv获取信息,但同样失败。所以我的问题是-如何在纯原生Android应用程序中创建OpenGLES2.0着色器?附言我知道如果您使用JavaGLSurfaceView并且没有在正确的线程中创建它们,着色器创建可能会失败,但是查看nativeActivity示例,它似乎只有一个线程! 最佳答案 当然可以在原生Androi

android - 没有操作栏的android compat的黑暗 Activity ?

如何在appcompat主题中实现没有actionbar的黑屏?我已经实现了抽屉导航,其中的主题来自style.xml。这是我当前的主题:true@android:color/transparenttrue 最佳答案 简单。parent="Theme.AppCompat.NoActionBar" 关于android-没有操作栏的androidcompat的黑暗Activity?,我们在StackOverflow上找到一个类似的问题: https://stack

java - 在 Android OpenGL ES 应用程序中加载纹理

我想知道是否有人可以建议在AndroidJava和OpenGLES应用程序中加载纹理的良好模式。我首先关心的是确定要分配多少个纹理名称,以及如何在渲染我的顶点之前有效地执行此操作。我的第二个问题是加载纹理,我必须根据我的游戏数据推断要加载的纹理。这意味着我将玩弄字符串,我知道这是我不应该在我的GL线程中做的事情。总的来说,我了解加载纹理时发生的情况,我只想从中获得最佳生命周期。还有其他我应该考虑的事情吗? 最佳答案 1)您应该根据需要分配尽可能多的纹理名称。一个用于您正在使用的每个纹理。加载纹理是一项非常繁重的操作,会拖延渲染管道。