当前位置:编程学习 > wap >>

[高分求解] Android使用opengles显示YUV420数据的问题

各位好,我最近在尝试使用opengl来显示YUV420数据,遇到了一些问题,希望各位帮忙解答。

1. 关于流程,我想是在Java层写Renderer类,然后在Renderer的onDrawFrame()/onSurfaceChanged()/onSurfaceCreated()中分别去调用native层的代码,native负责调用所有的opengles接口,在opengl的shader中进行YUV->RGB的转换,然后通过texture渲染出来,不知道这样的思路是否正确?

2. 在使用shader时,我在c代码中是这样写的:


GLuint loadShader(GLenum shaderType, const char *pSource) {
GLuint shader;
GLint compiled;

shader = glCreateShader(shaderType);
LOGD("JNI -> new Shader = %1$d", shader);
if (shader) {
glShaderSource(shader, 1, &pSource, NULL);
glCompileShader(shader);
glGetShaderiv(shader, GL_COMPILE_STATUS, &compiled);
LOGD("JNI -> compile = %1$d", compiled);
if (!compiled) {
........


我新建了2个shader(GL_VERTEX_SHADER和GL_FRAGMENT_SHADER),但是通过打log发现,2个shader的值是一样的(都是43),两个compiled的值也是一样的(是1393950951这种长数字),我感觉这样是不对的,请问这样对吗,为什么?

3. 各位有没有做过这方面的例子,或有成熟的、好的思路,请不吝赐教,十分感谢! Android OpenGL ES YUV ndk --------------------编程问答-------------------- 小顶一下 -v-
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,