博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android opengl es 2.0
阅读量:6833 次
发布时间:2019-06-26

本文共 1478 字,大约阅读时间需要 4 分钟。

要想使用opengl es版本为2.0,则必须在AndroidManifest.xml中添加<uses-feature android:glEsVersion="0x00020000" android:required="true" />如果没设,会默认用1.0,然后运行会报API未实现exception.

Bitmap → byte[]

 public byte[] Bitmap2Bytes(Bitmap bm) {

      ByteArrayOutputStream baos = new ByteArrayOutputStream();
      bm.compress(Bitmap.CompressFormat.PNG, 100, baos);
       eturn baos.toByteArray();
 }

 

byte[] → Bitmap

public Bitmap Bytes2Bimap(byte[] b) {

         if (b.length != 0) {
             return BitmapFactory.decodeByteArray(b, 0, b.length);
         } else {
             return null;
         }
     }

Bitmap → byte[]  :第二种方法

public byte[] Bitamp2Bytes(Bitmap bitmap){

byte[] buffer = new byte[bitmap.getWidth() * bitmap.getHeight() * 3];

        
        for ( int y = 0; y < bitmap.getHeight(); y++ )
            for ( int x = 0; x < bitmap.getWidth(); x++ )
            {
                int pixel = bitmap.getPixel(x, y);
                buffer[(y * bitmap.getWidth() + x) * 3 + 0] = (byte)((pixel >> 16) & 0xFF);
                buffer[(y * bitmap.getWidth() + x) * 3 + 1] = (byte)((pixel >> 8) & 0xFF);
                buffer[(y * bitmap.getWidth() + x) * 3 + 2] = (byte)((pixel >> 0) & 0xFF);
            }

  return buffer;

}

 

Render的mode可以设为两种模式,一种是自动循环模式,也就是说GL线程以一 定的时间间隔自动的循环调用用户实现的onDrawFrame()方法进行一帧一帧的绘制,还有一种的“脏”模式,也就是说当用户需要重绘的时候,主动 “拉”这个重绘过程,有点类似于Canvas中的invalidate()

具体的调用方法是在GLSurfaceView中

a.自动模式

setRenderMode(GLSurfaceView.RENDERMODE_CONTINUOUSLY);

b."脏"模式

.setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);

当需要重绘时,调用

GLSurfaceView.requestRender()

一般情况下使用脏模式,这样可以有效降低cpu负载。测试结果表明,OpenGL真正绘图时一般会占到30%以上的cp

转载于:https://www.cnblogs.com/jwzhangjie/archive/2013/01/31/2886817.html

你可能感兴趣的文章
SpringMvc+Hibernate+Mysql保存表情字符(昵称)到数据库报错的问题?
查看>>
微软2016校园招聘在线笔试 B Professor Q's Software [ 拓扑图dp ]
查看>>
TinyUI组件开发示例
查看>>
qt添加图标
查看>>
字节流高效缓冲区文件复制
查看>>
ColorMatrixColorFilter颜色过滤(离线用户的灰色头像处理)
查看>>
react:reducer-creator
查看>>
MyEclipse 总是弹出“multiple Errors have Occurred”
查看>>
sas实例合集
查看>>
C语言解释器的实现--存储结构(一)
查看>>
Java Eclipse常规设置
查看>>
ios官方菜单项目重点剖析附项目源码
查看>>
构建javaweb项目
查看>>
MVC5学习笔记
查看>>
大大大大板子
查看>>
使用博客园时,如何在自己的博客上显示头像?
查看>>
【作业】简单绘图程序
查看>>
二分查找
查看>>
java ee
查看>>
复制文字,链接,剪贴板的使用
查看>>