OpenGL es 在android平台的移植性问题
来源:互联网 发布:贝尔求生刀淘宝网 编辑:程序博客网 时间:2024/06/04 17:51
Android上为了让视频显示的更流畅,自然要使用到NDK, 没有采用YUV420 overlay的方式, 而采用平台移植更安全的RGB565显示。 在android 2.3上测试通过。
但到了MTK andriod平台(A301)遇到glTexImage2D gl_error 0x501的错误(源图像为176*144)。 经过反复测试, 这个mtk andriod版本支持opengl es, 但对源图像的分辨率有奇怪的限制。当源尺寸宽高必须是64的倍数而且一般宽高为2倍的关系。比如512*256, 256*128都是可以的。 只能先把图像缩放到256*128, 然后再用opengl es刷屏。
另外, OpenSL es在MTK的android上也还是可以用的。
~~~最后 贴上opengl es的sample code给大家参考咯
void OpenGL_Resize(jint screen_width, jint screen_height)
{
glDeleteTextures(1, &s_texture);
GLuint *start = s_disable_caps;
while (*start)
glDisable(*start++);
glEnable(GL_TEXTURE_2D);
glGenTextures(1, &s_texture);
glBindTexture(GL_TEXTURE_2D, s_texture);
glTexParameterf(GL_TEXTURE_2D,
GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D,
GL_TEXTURE_MAG_FILTER, GL_LINEAR);
glShadeModel(GL_FLAT);
check_gl_error("glShadeModel");
glColor4x(0x10000, 0x10000, 0x10000, 0x10000);
check_gl_error("glColor4x");
int rect[4] = {0, TEXTURE_HEIGHT, TEXTURE_WIDTH, -TEXTURE_HEIGHT};
glTexParameteriv(GL_TEXTURE_2D, GL_TEXTURE_CROP_RECT_OES, rect);
check_gl_error("glTexParameteriv");
VideoWidth = width;
VideoHeight = height;
}
static void render_video_opengl(unsigned char* rgb_buffer)
{
glClear(GL_COLOR_BUFFER_BIT);
glTexImage2D(GL_TEXTURE_2D,/* target */
0, /* level */
GL_RGB, /* internal format */
TEXTURE_WIDTH,/* width */
TEXTURE_HEIGHT,/* height */
0, /* border */
GL_RGB, /* format */
GL_UNSIGNED_SHORT_5_6_5,/* type */
rgb_buffer); /* pixels */
check_gl_error("glTexImage2D");
glDrawTexiOES(0, 0, 0, VideoWidth, VideoHeight);
check_gl_error("glDrawTexiOES");
}
- OpenGL es 在android平台的移植性问题
- 在android平台hook OpenGL es的API
- OpenGL ES 在 iOS 平台纹理贴图倒置的问题研究
- 在 Android* 平台上设置原生 OpenGL ES*
- android的opengl es
- 关于Android平台中OpenGL ES应用的初步研究
- OpenGL ES 的一些问题
- OpenGL ES 在 Android 中对 GLU 的原生支持
- 安卓平台OpenGL ES的调用
- 懂iOS平台的OpenGL ES请进
- Android下的OpenGl ES
- Android的OpenGL Es开发
- 学习android的opengl es
- Android在新平台上的移植
- Android在新平台上的移植
- ntfs在android平台上的移植
- ffmpeg在android平台上的移植
- 在Android下初始化Native OpenGL ES
- Ubuntu常用软件推荐,图文详细说明及下载
- 最新的Javascript和CSS应用技巧荟萃
- 重构
- IO总结
- MySQL 备份的实际应用与功能介绍
- OpenGL es 在android平台的移植性问题
- Linux V4L2
- 24点小游戏(c语言)
- utf16编码转换成base64编码(一)
- oracle使用小技巧
- freemark与flying saucer生成PDF
- 多点触摸与单点触摸接口主要区别
- ListView个性化
- HTTP GTE和POST格式解析