0 0

关于NDK通过纯C实现的asset_manager取bmp绘制opengl纹理问题10

第一次在这里求教大神,用ndk开发需要拿asset里的图片,用native activity里的asset_manager 通过AAsset_getBuffer拿到的图片,用opengl画就是画不正个图片,纹理坐标顶点坐标没问题,用glDrawElements绘制,绘出的结果左下角会有一排奇怪的像素,是一排颜色的点,然后图片整个向右边推移了半个身位,而且图片被滤成蓝色调。。。好吧我觉得很无语很无解。。随便了。。有人做ndk开发opengles的么。。
    glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_FASTEST);
    
    glClearColor(grey, blue, grey, 1.0f);
    glClear( GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT);
    
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    
    //启用纹理功能
    glEnable(GL_TEXTURE_2D);
    //加载纹理贴图
    GLuint rectTexture;
    glGenTextures(1, &rectTexture);
    glBindTexture(GL_TEXTURE_2D, rectTexture);
    
    // Create Nearest Filtered Texture
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
    // Different possible texture parameters, e.g. GL10.GL_CLAMP_TO_EDGE
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT);
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT);
    
    glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, 56, 81, 0, GL_RGB, GL_UNSIGNED_BYTE, _buf);
     
    
    //Point to our buffers
    glEnableClientState(GL_VERTEX_ARRAY);
    glEnableClientState(GL_TEXTURE_COORD_ARRAY);

    //Set the face rotation
    glFrontFace(GL_CCW);
    // scale
    glScalef(1.5f, 1.5f, 0.0f);
    // set light color
    glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
    glVertexPointer(3, GL_FLOAT, 0, vertices);
    glTexCoordPointer(2, GL_FLOAT, 0, texture);
    glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_BYTE, indices);
    
    glDisableClientState(GL_VERTEX_ARRAY);
    glDisableClientState(GL_TEXTURE_COORD_ARRAY);




因为我通过代码生成的位图去画就毫无问题,所以定位到是asset取数据的问题。。。。
2012年7月20日 11:02
  • 大小: 16.1 KB
目前还没有答案

相关推荐

    安卓ndk实现opengl绘制正方形纹理

    总之,通过NDK和OpenGL ES,开发者可以在Android上实现高效且灵活的图形渲染,包括绘制正方形纹理。这需要对OpenGL ES API、C++编程以及Android应用结构有深入理解。通过不断学习和实践,你将能创造出更丰富、更生动...

    Opengl ES 1.x NDK实例开发之七:旋转的纹理立方体

    在“Opengl ES 1.x NDK实例开发之七:旋转的纹理立方体”这个实例中,我们将深入探讨如何通过OpenGL ES和NDK在Android上创建一个旋转的纹理立方体。 首先,理解基本概念是关键。纹理立方体是一种将六个不同图像分别...

    一个用于展示在AndroidNDK环境下实现OpenGL_ES_2.0渲染YUV的Demo_Andro

    一个用于展示在AndroidNDK环境下实现OpenGL_ES_2.0渲染YUV的Demo_AndroidOpenGLESYUV

    08_22_NDK_增量更新

    08_22_NDK_增量更新08_22_NDK_增量更新08_22_NDK_增量更新08_22_NDK_增量更新08_22_NDK_增量更新08_22_NDK_增量更新08_22_NDK_增量更新08_22_NDK_增量更新08_22_NDK_增量更新08_22_NDK_增量更新08_22_NDK_增量更新08...

    NDK_TCP.zip_C6678_NDK编程_cfg配置ndk_创龙c6678_网口配置

    在本文中,我们将深入探讨如何在创龙C6678开发板上进行NDK(Native Development Kit)编程,特别是关于TCP网络通信的配置。NDK是Android平台提供的一种工具集,允许开发者用C和C++原生代码来编写部分应用,以提高...

    android ndk调用OpenGL 实现纹理贴图Texture

    首先必须说,国内在OpenGL这方面特别是ndk上的分享太太太少 这中间遇到很多问题,而这些问题需要在书上,在网上,在各种资料上找,而且书上是java层调用,网上的缺少各种文件案例,只有在java层研究,在各种案例中找...

    08_19_NDK_文件拆分_文件合并_大型应用跨平台解决方案

    08_19_NDK_文件拆分_文件合并_大型应用跨平台解决方案08_19_NDK_文件拆分_文件合并_大型应用跨平台解决方案08_19_NDK_文件拆分_文件合并_大型应用跨平台解决方案08_19_NDK_文件拆分_文件合并_大型应用跨平台解决方案...

    android_NDK.rar_NDK_android_android ndk_linux android

    - **JNI接口**:通过Java Native Interface (JNI),NDK使Java代码能够与本地代码无缝交互,实现Java与C/C++的混合编程。 2. **使用场景** - **性能提升**:对于需要高效运算的任务,如物理模拟、图像处理和音频...

    android-ndk-r8dab.zip_NDK_android_android ndk

    Android NDK(Native Development Kit)是Google为Android平台提供的一款用于开发原生代码的应用工具,它允许开发者使用C和C++编写部分应用代码,以利用设备的硬件性能或实现更底层的操作。在“android-ndk-r8dab....

    基于Android+NDK进行OpenGL_ES开发的完整案例

    本文主要介绍了如何使用Android NDK技术通过JNI实现Android Java层与C层的数据交互,并结合OpenGL ES 在C层实现一个3D效果代码,在Java层用于显示的软件。 一、 Android NDK简介 Android NDK是一套工具,帮助...

    ti.ndk.platforms.evmdm6437.zip_DM6437_DM6437 ndk_NDK_TCP_UDP_UDP

    NDK是Android系统的一个组件,允许开发者使用C和C++编写原生代码,从而实现更高的性能和更低级别的硬件访问。在DM6437平台上,NDK提供了特定于平台的开发环境和工具,帮助开发者充分利用芯片的硬件特性。 标签中的...

    NDK OpenGLES 实现两个Cube的旋转

    在Android开发中,NDK(Native Development Kit)允许开发者用原生C++代码编写高性能的应用程序,特别是对于图形处理和游戏开发,NDK配合OpenGLES可以实现更高效的图形渲染。OpenGLES(OpenGL for Embedded Systems...

    基于NDK的数字电视传输流_TS_网络采集系统

    基于NDK的数字电视传输流_TS_网络采集系统

    基于Android NDK 进行 OpenGL_ES开发的完整案例.doc

    基于 Android NDK 进行 OpenGL ES 开发的完整案例 Android NDK 和 OpenGL ES 简介 ...通过分析 Demo 程序,可以了解如何使用 JNI 将 Java 代码和 C 代码连接起来,并如何使用 OpenGL ES 实现图形渲染。

    android ndk调用opengl es实现旋转正方体

    本篇将详细讲解如何在Android NDK环境中利用C语言调用OpenGL ES来实现一个旋转的正方体。 首先,你需要对OpenGL ES有基本的了解。它是一个轻量级的图形库,适用于嵌入式设备如手机和平板。在Android中,OpenGL ES...

    android+opengl+jni,android环境下使用opengl绘制纹理贴图和三角形等

    本教程将深入探讨如何在Android环境下结合OpenGL ES和JNI实现纹理贴图以及绘制三角形。 1. **OpenGL ES基础** OpenGL ES是OpenGL的一个精简版,专为嵌入式设备如智能手机和平板电脑设计。它提供了一个标准接口,...

    Android NDK中使用OpenGL

    2. 实现本地方法:使用C/C++编写图形处理的函数,实现OpenGL ES的图形绘制逻辑。 3. 生成动态链接库(.so文件):使用NDK提供的交叉编译工具链编译C/C++代码,生成适用于Android平台的库文件。 4. 集成到Android项目...

    Android ndk opengl 绘制带控件可调参数平面波

    Android ndk opengl 绘制带控件可调参数平面波

    Android平台 OpenGL ES3.0绘制点、线、三角形实现源码

    Android平台,OpenGL ES3.0 点、线、三角形绘制方式源码实现举例。 相关绘制方式文章讲解请参考: https://xiaxl.blog.csdn.net/article/details/8873002

    NDK_2_3_1.zip

    《Android Studio NDK开发详解——基于NDK_2_3_1.zip的实践教程》 在移动应用开发中,Android Studio作为主流的集成开发环境,提供了丰富的工具和技术支持。其中,NDK(Native Development Kit)是Android平台的一...

Global site tag (gtag.js) - Google Analytics