gpt4 book ai didi

android - 在 Galaxy S3 上暂停 GLSurfaceView 后,只有文本可见 - 移动时文本模糊。没有按钮背景

转载 作者:行者123 更新时间:2023-11-29 16:06:06 24 4
gpt4 key购买 nike

我在 Galaxy S3 上遇到了一些奇怪的行为(我的其他测试设备(不是 S3)都没有出现如下错误)。

场景:

我正在通过 JNI 从 libffmpeg 处理的 RTSP 流中获取 YUV 数据。我采用这些值并使用 openGL 将它们输入到 C++ 代码中,以便将它们映射到纹理。 (基本上,在 openGL 中显示来自 RTSP 流的视频)。

问题:

我一直在尝试向视频添加叠加层(使用普通的 Android 小部件/ View /xml),我注意到在 Galaxy S3 上(别处)按钮的背景(无论它们是 R.color, R.drawable 等)都不见了。 **按钮上的文字可见。

最大的问题是:按返回键返回到常规的旧非 opengl Activity 后,它们都已损坏(屏幕截图如下)。这些 View 中唯一可见的是文本。如果文本移动(想想分页),文本将模糊(见屏幕截图)。

我已经在其他 5 台设备上试用了我的应用,没有任何问题。这两个问题都发生在我的 Galaxy S3 上,所以我认为它们是相关的。

尽管我在 Google 上尽了最大的努力,但我没有找到任何相关的东西。非常感谢任何信息。TY

文本在 openGL 暂停后可见(返回到它之前的 Activity ),但在移动时变得模糊。没有其他元素可见(它们应该是): Text visible after openGL paused (back to activity before it), but blurred when moved. No other elements visible (they should be)

这就是视频的样子(应该是真实的生活场景),如果在返回之前的 Activity 后继续观看。注意:按钮上没有灰色背景。当 OpenGL Activity 首次打开并且没有其他损坏时,情况就是如此: This is what the video looks like (should be a real life scene) if one resumes it after returning to previous activity. Note: there's no grey background on the button (as there should be). This is true when the OpenGL activity is first opened and there's no other corruption

最佳答案

事实证明,我正在调用该函数以在 UI 线程上设置 openGL。我在连接到我的 GLSurfaceView 的渲染器创建的线程中调用我的 draw() (等)方法。因为在 UI 线程上调用了设置方法,所以用于硬件加速的 openGL 被破坏了。

TL;DR:不要在用于 GLSurfaceView 的渲染器类之外进行任何(甚至设置)调用,因为它会创建一个单独的线程,因此您的 openGL 调用不会干扰 openGL 的运行在用于硬件加速的 UI 线程上。

查看您的应用是否受此问题困扰的一个简单测试是在您的 android list 中禁用硬件加速并检查问题是否消失:

<application android:hardwareAccelerated="false" ...>

我希望这对其他人有帮助:)

关于android - 在 Galaxy S3 上暂停 GLSurfaceView 后,只有文本可见 - 移动时文本模糊。没有按钮背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18243966/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com