Adreno SDK Graphics(2)

OpenGL纹理映射精讲
本文深入探讨OpenGL纹理映射技术,介绍纹理如何提升图形真实感,减少顶点颜色指定的工作量。涵盖纹理坐标定义、纹理环绕设定、纹理生成及应用全流程,并解析VAO和VBO在纹理加载中的作用。

一、Textures简介

为了让图形更加生动,需要添加更多的顶点和图形的细节,才能创建出图像。但是,如果想让图形看起来更加真实,我们则必须使用足够多的顶点,从而指定足够多的颜色,即每个图形需要更多的顶点,每个顶点又需求一个颜色属性。为了减少工作量,我们使用纹理(Texture),纹理是一个2D图片(甚至也有1D和3D的纹理),它可以用来添加物体的细节;我们可以想象一张画有窗户纸(window.jpg),把他贴在墙上,这样墙上看起来就像有窗户了,而这张图片我们可以插入非常多的细节,这样就可以让物体非常精细而不用指定额外的顶点。
基于Adreno SDK项目实现过程中,我们也可以通过纹理加载来使得最终取得更好的效果。

二、OpenGL纹理实现

为了使纹理映射到图形上,我们需要指定图形顶点对应纹理的哪一部分,这样就会有顶点关联纹理坐标这样一个关系,标明该从纹理的哪个部分进行采样,之后在图形的其它片断上进行片断插值。
1、定义纹理坐标数组。根据实际顶点数目确定,同时以数组形式保存其坐标。
2、确定纹理环绕方式。环绕方式有以下几种类型:
在这里插入图片描述
可以使用glTexParameter()函数对其进行设定,以下为简单实例:
在这里插入图片描述从上图中我们可以到生成一个纹理的简单流程。在glTexParameter()函数中,第一个参数代表的为2D纹理,第二个指定设置的选项与应用的纹理轴,图中分别为坐标轴S和T,配置的为WRAP选项。
3、生成纹理:
GLuint texture;
glGenTextures(1, &texture);
参数分别代表的为生成纹理的数量1;存储的缓冲区。
绑定:glBindTexture(GL_TEXTURE_2D, texture);
根据加载的图片生成纹理:
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, image);
glGenerateMipmap(GL_TEXTURE_2D);
4、最后为纹理应用:
应用之前需要添加额外的顶点属性,告诉OpenGL新顶点的格式,在着色器程序中的顶点着色器、片段着色器之中都进行引用声明。
最后在draw过程调用以下函数进行实现:
glBindTexture(GL_TEXTURE_2D, texture);
glBindVertexArray(VAO);
glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
glBindVertexArray(0);
5、实例函数解析:
上面实例中用到了VAO和VBO两个参数,此处的声明其实并不随意,了解的人可能已经知道了。
顶点数组对象(Vertex Array Object,)可以像顶点缓冲对象那样被绑定,任何随后的顶点属性调用都会储存在这个VAO中。这样的好处就是,当配置顶点属性指针时,你只需要将那些调用执行一次,之后再绘制物体的时候只需要绑定相应的VAO就行了。这使在不同顶点数据和属性配置之间切换变得非常简单,只需要绑定不同的VAO就行了。
VBO为顶点缓存对象(Vertex Buffer Object),它会在GPU内存(通常被称为显存)中储存大量顶点。使用这些缓冲对象的好处是我们可以一次性的发送一大批数据到显卡上,而不是每个顶点发送一次。
此外还有VA(顶点数组)、EBO索引缓存对象,这部分内容可以对我们开发过程提供很大的帮助。

三、总结

以上为Textures的简单介绍,同Shader一样作为OpenGL开发过程中绕不过的部分,对于基于Adreno SDK开发来说是需要熟练掌握的内容模块。

--------- beginning of main --------- beginning of system 2025-06-05 19:19:52.875 2778-2778 Zygote com.example.diaryapp I seccomp disabled by setenforce 0 2025-06-05 19:19:52.876 2778-2778 xample.diaryap com.example.diaryapp I Late-enabling -Xcheck:jni 2025-06-05 19:19:52.893 2778-2778 xample.diaryap com.example.diaryapp W Unexpected CPU variant for X86 using defaults: x86_64 2025-06-05 19:19:53.227 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden field Landroid/os/Trace;->TRACE_TAG_APP:J (light greylist, reflection) 2025-06-05 19:19:53.227 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/os/Trace;->isTagEnabled(J)Z (light greylist, reflection) 2025-06-05 19:19:53.258 2778-2778 AppCompatDelegate com.example.diaryapp D Checking for metadata for AppLocalesMetadataHolderService : Service not found 2025-06-05 19:19:53.273 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden field Landroid/graphics/Insets;->left:I (light greylist, linking) 2025-06-05 19:19:53.273 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden field Landroid/graphics/Insets;->top:I (light greylist, linking) 2025-06-05 19:19:53.273 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden field Landroid/graphics/Insets;->right:I (light greylist, linking) 2025-06-05 19:19:53.273 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden field Landroid/graphics/Insets;->bottom:I (light greylist, linking) 2025-06-05 19:19:53.293 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection) 2025-06-05 19:19:53.294 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection) 2025-06-05 19:19:53.298 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/graphics/FontFamily;-><init>()V (light greylist, reflection) 2025-06-05 19:19:53.298 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/graphics/FontFamily;->addFontFromAssetManager(Landroid/content/res/AssetManager;Ljava/lang/String;IZIII[Landroid/graphics/fonts/FontVariationAxis;)Z (light greylist, reflection) 2025-06-05 19:19:53.298 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/graphics/FontFamily;->addFontFromBuffer(Ljava/nio/ByteBuffer;I[Landroid/graphics/fonts/FontVariationAxis;II)Z (light greylist, reflection) 2025-06-05 19:19:53.298 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/graphics/FontFamily;->freeze()Z (light greylist, reflection) 2025-06-05 19:19:53.298 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/graphics/FontFamily;->abortCreation()V (light greylist, reflection) 2025-06-05 19:19:53.299 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/graphics/Typeface;->createFromFamiliesWithDefault([Landroid/graphics/FontFamily;Ljava/lang/String;II)Landroid/graphics/Typeface; (light greylist, reflection) 2025-06-05 19:19:53.400 2778-2778 OpenGLRenderer com.example.diaryapp D Skia GL Pipeline 2025-06-05 19:19:53.417 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden field Landroid/view/WindowInsets;->CONSUMED:Landroid/view/WindowInsets; (light greylist, reflection) 2025-06-05 19:19:53.417 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/view/View;->getViewRootImpl()Landroid/view/ViewRootImpl; (light greylist, reflection) 2025-06-05 19:19:53.417 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden field Landroid/view/View$AttachInfo;->mVisibleInsets:Landroid/graphics/Rect; (light greylist, reflection) 2025-06-05 19:19:53.417 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden field Landroid/view/ViewRootImpl;->mAttachInfo:Landroid/view/View$AttachInfo; (light greylist, reflection) 2025-06-05 19:19:53.429 2778-2820 <no-tag> com.example.diaryapp D HostConnection::get() New Host Connection established 0x7f2e2dac31c0, tid 2820 2025-06-05 19:19:53.429 2778-2820 <no-tag> com.example.diaryapp W Process pipe failed 2025-06-05 19:19:53.431 2778-2820 ConfigStore com.example.diaryapp I android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0 2025-06-05 19:19:53.431 2778-2820 ConfigStore com.example.diaryapp I android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0 2025-06-05 19:19:53.431 2778-2820 OpenGLRenderer com.example.diaryapp I Initialized EGL, version 1.4 2025-06-05 19:19:53.431 2778-2820 OpenGLRenderer com.example.diaryapp D Swap behavior 1 2025-06-05 19:19:53.432 2778-2820 EGL_adreno com.example.diaryapp E CreateContext rcMajorVersion:3, minorVersion:2 2025-06-05 19:19:53.440 2778-2820 EGL_adreno com.example.diaryapp D eglCreateContext: 0x7f2e2da45b20: maj 3 min 2 rcv 3 2025-06-05 19:19:53.440 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:19:53.440 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:19:53.472 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:19:53.472 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:19:53.473 2778-2820 vndksupport com.example.diaryapp D Loading /vendor/lib64/hw/android.hardware.graphics.mapper@2.0-impl.so from current namespace instead of sphal namespace. 2025-06-05 19:19:53.473 2778-2820 vndksupport com.example.diaryapp D Loading /vendor/lib64/hw/gralloc.gmin.so from current namespace instead of sphal namespace. 2025-06-05 19:19:53.476 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:19:53.476 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2db09100, error=EGL_BAD_MATCH 2025-06-05 19:19:53.902 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/os/Trace;->asyncTraceBegin(JLjava/lang/String;I)V (light greylist, reflection) 2025-06-05 19:19:53.902 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/os/Trace;->asyncTraceEnd(JLjava/lang/String;I)V (light greylist, reflection) 2025-06-05 19:19:53.902 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/os/Trace;->traceCounter(JLjava/lang/String;I)V (light greylist, reflection) 2025-06-05 19:19:58.602 2778-2845 ProfileInstaller com.example.diaryapp D Installing profile for com.example.diaryapp 2025-06-05 19:22:51.307 2778-2778 Choreographer com.example.diaryapp I Skipped 32 frames! The application may be doing too much work on its main thread. 2025-06-05 19:22:51.377 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:22:51.377 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:22:51.401 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:22:51.401 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2a73b480, error=EGL_BAD_MATCH 2025-06-05 19:22:52.875 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:22:52.875 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:22:52.879 2778-2778 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@b70dda7 2025-06-05 19:22:52.882 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:22:52.882 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2db09880, error=EGL_BAD_MATCH 2025-06-05 19:22:53.180 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:22:53.180 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:22:53.197 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:22:53.197 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2a73b480, error=EGL_BAD_MATCH 2025-06-05 19:22:53.203 2778-2778 Glide com.example.diaryapp W Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored 2025-06-05 19:22:59.515 2778-2778 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@dee6c34 2025-06-05 19:22:59.547 2778-2783 xample.diaryap com.example.diaryapp I Compiler allocated 4MB to compile void android.widget.TextView.<init>(android.content.Context, android.util.AttributeSet, int, int) 2025-06-05 19:22:59.572 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:22:59.572 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:22:59.586 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:22:59.586 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2db09b80, error=EGL_BAD_MATCH 2025-06-05 19:23:07.999 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:23:07.999 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:23:08.013 2778-2778 xample.diaryap com.example.diaryapp W Accessing hidden field Landroid/view/View;->mAccessibilityDelegate:Landroid/view/View$AccessibilityDelegate; (light greylist, reflection) 2025-06-05 19:23:08.015 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:23:08.015 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2a73b280, error=EGL_BAD_MATCH 2025-06-05 19:23:10.088 2778-2778 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@a431ad9 2025-06-05 19:23:10.141 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:23:10.141 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:23:10.160 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:23:10.160 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2da27800, error=EGL_BAD_MATCH 2025-06-05 19:23:18.089 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:23:18.089 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:23:18.109 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:23:18.109 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2a736700, error=EGL_BAD_MATCH 2025-06-05 19:23:20.289 2778-2778 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@6e93288 2025-06-05 19:23:20.343 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:23:20.343 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:23:20.364 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:23:20.364 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e1d387d00, error=EGL_BAD_MATCH 2025-06-05 19:23:22.178 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:23:22.178 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:23:22.188 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:23:22.188 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e1d5bf900, error=EGL_BAD_MATCH 2025-06-05 19:23:26.082 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:23:26.082 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:23:26.102 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:23:26.102 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e1d5bf900, error=EGL_BAD_MATCH 2025-06-05 19:27:41.046 2778-2778 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@4c87c69 2025-06-05 19:27:41.111 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:27:41.111 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:27:41.124 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:27:41.124 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e1d4afd00, error=EGL_BAD_MATCH 2025-06-05 19:27:42.651 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:27:42.651 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:27:42.667 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:27:42.667 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e1d4af080, error=EGL_BAD_MATCH 2025-06-05 19:27:42.732 2778-2789 System com.example.diaryapp W A resource failed to call close. 2025-06-05 19:27:42.732 2778-2789 chatty com.example.diaryapp I uid=10062(com.example.diaryapp) FinalizerDaemon identical 1 line 2025-06-05 19:27:42.734 2778-2789 System com.example.diaryapp W A resource failed to call close. 2025-06-05 19:27:44.377 2778-2820 OpenGLRenderer com.example.diaryapp D endAllActiveAnimators on 0x7f2e1623df00 (RippleDrawable) with handle 0x7f2e2dab3800 2025-06-05 19:27:44.393 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:27:44.393 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:27:44.416 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:27:44.416 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e16286180, error=EGL_BAD_MATCH 2025-06-05 19:27:48.098 2778-2778 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@845b71b 2025-06-05 19:27:48.195 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:27:48.195 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:27:48.203 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:27:48.203 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2a73b500, error=EGL_BAD_MATCH 2025-06-05 19:27:49.264 2778-2778 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@a6acb9a 2025-06-05 19:27:49.389 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:27:49.389 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:27:49.397 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:27:49.397 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e16286e00, error=EGL_BAD_MATCH 2025-06-05 19:28:07.132 2778-2778 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@e46c675 2025-06-05 19:28:07.237 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:28:07.237 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:28:07.262 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:28:07.262 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e16286e00, error=EGL_BAD_MATCH 2025-06-05 19:28:08.766 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:28:08.766 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:28:08.772 2778-2778 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@8487834 2025-06-05 19:28:08.777 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:28:08.777 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e162dca00, error=EGL_BAD_MATCH 2025-06-05 19:28:08.811 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:28:08.811 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:28:08.829 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:28:08.829 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2db8d000, error=EGL_BAD_MATCH 2025-06-05 19:28:11.031 2778-2778 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@4a13060 2025-06-05 19:28:11.094 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:28:11.094 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:28:11.115 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:28:11.115 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e16430500, error=EGL_BAD_MATCH 2025-06-05 19:28:12.651 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:28:12.651 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:28:12.671 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:28:12.671 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e162dc500, error=EGL_BAD_MATCH 2025-06-05 19:28:14.160 2778-2820 OpenGLRenderer com.example.diaryapp D endAllActiveAnimators on 0x7f2e165b7b00 (RippleDrawable) with handle 0x7f2e2db3c200 2025-06-05 19:28:14.178 2778-2820 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 19:28:14.178 2778-2820 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 19:28:14.197 2778-2820 EGL_adreno com.example.diaryapp E tid 2820: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 19:28:14.197 2778-2820 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2db8d180, error=EGL_BAD_MATCH
06-06
Process pipe failed 2025-06-05 21:00:33.745 22340-22371 ConfigStore com.example.diaryapp I android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasWideColorDisplay retrieved: 0 2025-06-05 21:00:33.745 22340-22371 ConfigStore com.example.diaryapp I android::hardware::configstore::V1_0::ISurfaceFlingerConfigs::hasHDRDisplay retrieved: 0 2025-06-05 21:00:33.745 22340-22371 OpenGLRenderer com.example.diaryapp I Initialized EGL, version 1.4 2025-06-05 21:00:33.745 22340-22371 OpenGLRenderer com.example.diaryapp D Swap behavior 1 2025-06-05 21:00:33.746 22340-22371 EGL_adreno com.example.diaryapp E CreateContext rcMajorVersion:3, minorVersion:2 2025-06-05 21:00:33.754 22340-22371 EGL_adreno com.example.diaryapp D eglCreateContext: 0x7f2e2da30120: maj 3 min 2 rcv 3 2025-06-05 21:00:33.754 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:00:33.754 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:00:33.781 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:00:33.781 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:00:33.782 22340-22371 vndksupport com.example.diaryapp D Loading /vendor/lib64/hw/android.hardware.graphics.mapper@2.0-impl.so from current namespace instead of sphal namespace. 2025-06-05 21:00:33.782 22340-22371 vndksupport com.example.diaryapp D Loading /vendor/lib64/hw/gralloc.gmin.so from current namespace instead of sphal namespace. 2025-06-05 21:00:33.786 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:00:33.786 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2da27e00, error=EGL_BAD_MATCH 2025-06-05 21:00:34.214 22340-22340 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/os/Trace;->asyncTraceBegin(JLjava/lang/String;I)V (light greylist, reflection) 2025-06-05 21:00:34.214 22340-22340 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/os/Trace;->asyncTraceEnd(JLjava/lang/String;I)V (light greylist, reflection) 2025-06-05 21:00:34.214 22340-22340 xample.diaryap com.example.diaryapp W Accessing hidden method Landroid/os/Trace;->traceCounter(JLjava/lang/String;I)V (light greylist, reflection) 2025-06-05 21:00:39.439 22340-22401 ProfileInstaller com.example.diaryapp D Installing profile for com.example.diaryapp 2025-06-05 21:00:40.016 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:00:40.016 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:00:40.023 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:00:40.023 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2db3cb80, error=EGL_BAD_MATCH 2025-06-05 21:00:40.026 22340-22340 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@b266666 2025-06-05 21:00:40.267 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:00:40.267 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:00:40.283 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:00:40.283 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2db3cc80, error=EGL_BAD_MATCH 2025-06-05 21:00:40.292 22340-22340 Glide com.example.diaryapp W Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored 2025-06-05 21:00:42.727 22340-22340 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@7575cb3 2025-06-05 21:00:42.763 22340-22345 xample.diaryap com.example.diaryapp I Compiler allocated 4MB to compile void android.widget.TextView.<init>(android.content.Context, android.util.AttributeSet, int, int) 2025-06-05 21:00:42.780 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:00:42.780 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:00:42.794 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:00:42.794 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2dbdb280, error=EGL_BAD_MATCH 2025-06-05 21:00:50.659 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:00:50.659 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:00:50.673 22340-22340 xample.diaryap com.example.diaryapp W Accessing hidden field Landroid/view/View;->mAccessibilityDelegate:Landroid/view/View$AccessibilityDelegate; (light greylist, reflection) 2025-06-05 21:00:50.675 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:00:50.675 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2dbdb300, error=EGL_BAD_MATCH 2025-06-05 21:00:52.086 22340-22340 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@d5d171c 2025-06-05 21:00:52.186 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:00:52.186 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:00:52.204 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:00:52.204 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e1d0afd00, error=EGL_BAD_MATCH 2025-06-05 21:00:53.766 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:00:53.766 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:00:53.776 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:00:53.776 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e1d337180, error=EGL_BAD_MATCH 2025-06-05 21:00:58.199 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:00:58.199 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:00:58.220 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:00:58.220 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2dbdb300, error=EGL_BAD_MATCH 2025-06-05 21:01:01.788 22340-22340 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@bf7a046 2025-06-05 21:01:01.863 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:01:01.863 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:01:01.880 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:01:01.880 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e1d222f00, error=EGL_BAD_MATCH 2025-06-05 21:01:04.247 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:01:04.247 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:01:04.268 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:01:04.268 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2dbdb300, error=EGL_BAD_MATCH 2025-06-05 21:01:06.508 22340-22340 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@58e8cd8 2025-06-05 21:01:06.613 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:01:06.613 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:01:06.633 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:01:06.633 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e1d222f00, error=EGL_BAD_MATCH 2025-06-05 21:01:07.985 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:01:07.985 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:01:07.993 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:01:07.993 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2db3c000, error=EGL_BAD_MATCH 2025-06-05 21:01:07.996 22340-22340 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@d24a3e0 2025-06-05 21:01:08.020 22340-22349 System com.example.diaryapp W A resource failed to call close. 2025-06-05 21:01:08.021 22340-22349 chatty com.example.diaryapp I uid=10062(com.example.diaryapp) FinalizerDaemon identical 2 lines 2025-06-05 21:01:08.021 22340-22349 System com.example.diaryapp W A resource failed to call close. 2025-06-05 21:01:08.038 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:01:08.038 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:01:08.057 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:01:08.057 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2c09d580, error=EGL_BAD_MATCH 2025-06-05 21:01:09.873 22340-22340 ActivityThread com.example.diaryapp W handleWindowVisibility: no activity for token android.os.BinderProxy@4e83cf6 2025-06-05 21:01:09.914 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:01:09.914 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:01:09.934 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:01:09.934 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e1d9c8580, error=EGL_BAD_MATCH 2025-06-05 21:01:11.614 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:01:11.614 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:01:11.629 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:01:11.629 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e1d95f280, error=EGL_BAD_MATCH 2025-06-05 21:01:13.193 22340-22371 OpenGLRenderer com.example.diaryapp D endAllActiveAnimators on 0x7f2e1d16d900 (RippleDrawable) with handle 0x7f2e2db44560 2025-06-05 21:01:13.213 22340-22371 EGL_adreno com.example.diaryapp E [getAttribValue] Bad attribute idx 2025-06-05 21:01:13.213 22340-22371 EGL_adreno com.example.diaryapp D eglGetConfigAttrib: bad attrib 0x3339 2025-06-05 21:01:13.231 22340-22371 EGL_adreno com.example.diaryapp E tid 22371: eglSurfaceAttrib(1615): error 0x3009 (EGL_BAD_MATCH) 2025-06-05 21:01:13.231 22340-22371 OpenGLRenderer com.example.diaryapp W Failed to set EGL_SWAP_BEHAVIOR on surface 0x7f2e2db3c680, error=EGL_BAD_MATCH
06-06
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值