草庐IT

安卓 OpenGL ES : auto-correcting env->self and NvRmChannelSubmit failed

下面两个问题。我们有一个图形OpenGLES2应用程序,它在Windows、Linux、MacOS、iPhone、iPad和Android手机上运行了几年。在过去的几个月里,我们开始收到一些Android设备(如ToshibaThrive、HTCOneX、Nexus7或AsusTransformer、API15和17)用户关于黑屏或闪烁屏幕或很少有应用程序问题的反馈碰撞。我们的应用程序面向API9及以上,使用NativeActivity在NDK中编写,直接基于nvidiaandroid示例和演示,已经在所有平台上进行了全面测试,没有内存泄漏,没有无效内存访问,很少调用一些小java代码

android - 如何以编程方式在 Android 中使用 OpenGL ES 2.0 动态绘制虚线?

我是Android版OpenGLES2.0的新手。我正在尝试以编程方式在Android的OpenGLES2.0中绘制一条虚线。我发现了更多仅适用于OpenGLES1.0的方法。任何人都可以给我一个建议或任何适用于Android的OpenGLES2.0示例代码吗? 最佳答案 我找到了更好的解决方案。我将它用于水平和垂直线。#defineDOT_VERTEX_CODE\"attributevec4a_Position;"\"uniformmat4projectionMatrix;"\"varyingvec2v_xy;"\"voidmai

android - LibGDX:如何可靠地确定 opengl 上下文是否丢失?

是否有回调在openGL上下文丢失后得到通知?我已经尝试过ApplicationListener/Game.resume()但(在Android上)有一些情况下resume()被调用,尽管上下文没有丢失。以及其他一些上下文确实丢失但根本没有调用resume()的情况。可靠地确定libGDX中是否丢失了openGL上下文的正确方法是什么? 最佳答案 没有直截了当的solution对于同时具有托管和非托管/动态纹理的应用程序。这篇文章解释了为什么您无法真正获得触发器。我建议使用AssetManager因此您可以在ApplicationL

Android OpenGL 扩展 GLSurfaceView 空指针异常

我正在尝试为android创建一个简单的3-D应用程序,它将在OpenGLView之上分层一个附加View(很像API演示中的SurfaceViewOverlay示例)。我在尝试使用扩展的GLSurfaceView类实现该方法时遇到问题。我已经设置了一个示例,我正在尝试组合thisdemo与APIOerlay演示。如果我尝试像这样转换为Martin的VortexView对象(替换API演示中的第44-46行)VortexViewglSurfaceView=(VortexView)findViewById(R.id.glsurfaceview);我得到一个ClassCastExcepti

android - 没有 NDK 的 OpenGL ES 2.0 可能吗?

我正在学习Android开发,特别是最终在它上面做OpengL2.0ES。到目前为止,我了解到NDK支持Opengl2.0ES。但是,是否也有针对它的JavaAPI?如果有JavaAPI,推荐哪一个?我知道C++和Java,所以如果我必须使用NDK没什么大不了的,但我更愿意尽可能只使用Java,并且不会对性能造成太大影响。 最佳答案 是的,您可以在Java中使用OpenGLES2.0,而无需接触NDK。这是关于在Android中启动OpenGLES2.0的官方文档:http://developer.android.com/resou

android - OpenGL ES 2.0 : Is there a workaround for missing texture access in vertex shader?

我目前正在为一款游戏试用Android的OpenGLES2.0。我的map是一个二维网格map,每个位置都有一个高度值。现在我想将每个坐标的高度存储在纹理中,以便在顶点着色器中进行高度查找。这个想法的好处是我可以生成一个通用的三角网并将其(带有偏移量)放置在用户当前正在查看的map的位置上。由于偏移量,我可以省略每次用户移动其View位置和我将从纹理中读取的高度配置文件时创建新三角形网的需要。现在有很多当前的Android设备(甚至GalaxyS3)不支持顶点着色器中的纹理查找的问题。遗憾的是,这完全破坏了我目前的方法。我的问题:是否还有其他可能在顶点着色器中从显卡内存中获取数据?如果

java - 如何在android中的opengl中实现撤销功能

我正在开发一个扭曲图像的Android应用程序。我正在使用opengl平移和缩放功能来扭曲图像。图像扭曲得很好。现在我想实现撤消功能。但无法实现该功能。任何人可以帮助如何在opengl中实现撤消功能。任何建议或代码都会有所帮助。提前致谢。 最佳答案 我怀疑命令模式不适合您的情况。这是基于我的假设,即使您知道应用了何种失真,也不容易扭转图像失真。相反,您可能需要在应用变形之前将图像压入堆栈。然后,撤消实现将用堆栈中的图像替换当前图像。这将导致由重做和撤消的组合引起的潜在有趣问题。您可以对此进行优化,为易于撤消的更改存储命令对象,为不易

java - 如何使用着色器为使用 GL_LINES 和 OpenGL ES 2.0 绘制的线条着色

我有一个使用OpenGLES2.0的Android应用程序。我需要从一个数组中绘制10条线,每条线都由起点和终点描述。所以有10行=20点=60个浮点值。所有点都没有连接,因此数组中的每一对点都与其他点无关,因此我使用GL_LINES进行绘制。我通过将值放入浮点缓冲区并像这样调用一些辅助代码来绘制它们:publicvoiddrawLines(FloatBuffervertexBuffer,floatlineWidth,intnumPoints,floatcolour[]){GLES20.glLineWidth(lineWidth);drawShape(vertexBuffer,GLES

android - 如何在 Android 中从字节数组创建 OpenGL 纹理

我是OpenGL的新手。出于学术目的,我正在Android上制作色盲应用程序。我在着色器中拥有执行所需操作所需的所有代码,但我仍然必须让着色器能够看到我在Java代码中创建的数据。在我的Java代码中,我最终得到了一个大小为262144的大型int数组。我试图以任何可能的方式将这个数组传递到着色器中,但它太大了。我被告知,如果我将我的数据转换为纹理,我可以轻松地将这么多信息传递到着色器中。我已按照同事的指示将我的int数组转换为字节数组,但现在我不知道如何创建opengl纹理并将我的字节数据输入其中以供着色器查看和使用。因此,我需要创建一个opengl纹理,用我的数据填充它(字节数组最

安卓 OpenGL : crazy aspect ratio after sleep

如果我按下Android手机上的电源按钮(或等待它超时)并且手机进入休眠状态,在重新唤醒后,屏幕纵横比完全不正常。截图:坏了正确在GameActivity.onCreate()中//GrabdisplayinfoDisplayMetricsdm=newDisplayMetrics();getWindowManager().getDefaultDisplay().getMetrics(dm);ACTUAL_SCREEN_WIDTH=(int)dm.widthPixels;ACTUAL_SCREEN_HEIGHT=(int)dm.heightPixels;ACTUAL_DENSITY=dm