我正在尝试将纹理加载到我的Android应用程序显示中,我使用 this github 中的代码。
我的像素在屏幕上完全搞砸了,而且我不知道发生了什么。我在该代码中唯一改变的是我有memcpy,它将uint8_t缓冲区复制到s_pixels而不是glbuffer.c文件中的render_pixels。我的帧像素采用rgb565格式。
是否有一些配置问题或我复制像素的方式有什么问题?
修改
以下是代码:
pictureQ如下
pictureQ { uint8_t *数据; int size; }
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);
答案 0 :(得分:0)
好的,这是我的错误,我传递的是像素数据而不是数据。感谢您的回复Reuben Scatton。