【发布时间】:2011-03-01 00:31:11
【问题描述】:
我正在尝试将纹理加载到我的 android 应用程序显示屏上,我正在使用来自 this github 的代码。
我的像素在屏幕上完全混乱了,我不知道发生了什么。我在该代码中唯一更改的是我有 memcpy,它将 uint8_t 缓冲区复制到 s_pixels 而不是 glbuffer.c 文件中的 render_pixels。我的帧像素是 rgb565 格式。
是某种配置问题还是我复制像素的方式有问题?
编辑
下面是代码:
pictureQ如下
图片Q { uint8_t *数据; 整数大小; }
memcpy(s_pixels,&(pictureQ[qFirst].data[0]) , 307200);
//render_pixels(s_pixels);
glClear(GL_COLOR_BUFFER_BIT);
// glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, 480, 320, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, &(pictureRGBQ[qFirst].data[0]));
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 480, 320, 0, GL_RGB, GL_UNSIGNED_SHORT_5_6_5, s_pixels);
check_gl_error("glTexSubImage2D");
glDrawTexiOES(0, 0, 0, s_w, s_h);
check_gl_error("glDrawTexiOES");
memset(s_pixels, 0, 307200);
【问题讨论】:
-
最好能附上截图,让我们看看“一团糟”是什么意思。
-
附上显示截图。
-
好吧,那是搞砸了!现在它应该是什么样子的?你的纹理尺寸是多少?
-
它是 480x320p。这是一个适当的形象。我已经在创建纹理的地方发布了我的代码(已编辑)。
标签: android opengl-es bitmap android-ndk