自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(79)
  • 收藏
  • 关注

原创 Android monkey测试脚本

@echo offset /p times=测试开关机次数set n=0:starttestset /a temp+=1echo 执行第%temp%次adb rebootadb wait-for-devicesping -n 40 127.1>nulset /a n+=1if %n%==%times%(echo 测试结束) else(goto restart

2017-12-25 13:56:49 954

原创 surfaceflinger composer flow && mutex introduction

1.1.1 Android中的同步与互斥Android系统也提供了自己的同步互斥机制,不过任何技术的本质都是类似的,更多的是把这些本质的东西应用到符合自己要求的场景。目前Android封装的同步互斥类包括:·          Mutex头文件在frameworks/native/include/utils/Mutex.h,因为实现与具体的平台有关,我们只关心如何使用它

2016-09-09 11:22:31 780 1

转载 lighthouse3d的GLSL教程

请参考原作者翻译的文章http://blog.csdn.net/racehorse/article/details/6593719http://review.cyanogenmod.org/#/c/129313/

2016-08-31 17:39:27 943

转载 Android 4.4(KitKat)中的设计模式-Graphics子系统

原文地址:http://blog.csdn.net/jinzhuojun/article/details/17427491 本文主要从设计模式角度简单地侃下Android4.4(KitKat)的Graphics子系统。作为一个操作系统,Android需要考虑到灵活性,兼容性,可用性,可维护性等方方面面 ,为了达到这些需求,它需要良好的设计。因此,在Android源码中可以看到很多设

2016-08-31 15:47:56 862

转载 Android中native_handle private_handle_t ANativeWindowBuffer ANativeWindow GraphicBuffer Surface的关系

在阅读SurfaceFlinger HardwareComposer以及gralloc相关代码的过程中,我们经常会遇到native_handle private_handle_t ANativeWindowBuffer ANativeWindow GraphicBuffer Surface等等一系列和memory相关的struct和class,他们相互之间到底是什么区别,又有什么联系呢?本文从st

2016-08-30 16:53:48 4032

转载 Android用surface直接显示yuv数据(二)

研究了一段时间Android的surface系统,一直执着地认为所有在surface或者屏幕上显示的画面,必须要转换成RGB才能显示,yuv数据也要通过颜色空间转换成RGB才能显示。可最近在研究stagefright视频显示时发现,根本找不到omx解码后的yuv是怎么转换成RGB的代码,yuv数据在render之后就找不到去向了,可画面确确实实的显示出来了,这从此颠覆了yuv必须要转换成RGB才能

2016-08-29 17:01:07 5238 1

转载 分析linux下的进程地址空间,以及c语言的函数调用过程

今天的计划是在linux环境下,通过一个简单的程序,先了解一个进程的各个部分在内存中的分布,然后着重学习栈的概念。熟悉之后,和C相关的各种困惑就可以解决一大半。程序如下:/* * file name: for_rabbit.c */#include #includeint extern_apple;int extern_pear = 1;in

2016-08-26 14:04:15 2045

转载 Android下打印调试堆栈方法总结以及strace工具使用

打印堆栈是调试的常用方法,一般在系统异常时,我们可以将异常情况下的堆栈打印出来,这样十分方便错误查找。实际上还有另外一个非常有用的功能:分析代码的行为。android代码太过庞大复杂了,完全的静态分析经常是无从下手,因此通过打印堆栈的动态分析也十分必要。Android打印堆栈的方法,简单归类一下 1. zygote的堆栈dump实际上这个可以同时dump jav

2016-08-24 17:53:46 4448

转载 对进程地址空间的一点认识

在进入正题前先来谈谈操作系统内存管理机制的发展历程,了解这些有利于我们更好的理解目前操作系统的内存管理机制。一 早期的内存分配机制在早期的计算机中,要运行一个程序,会把这些程序全都装入内存,程序都是直接运行在内存上的,也就是说程序中访问的内存地址都是实际的物理内存地址。当计算机同时运行多个程序时,必须保证这些程序用到的内存总量要小于计算机实际物理内存的大小。那当程序同时运行多个程序时,操作

2016-08-24 14:43:36 457

转载 VAO与VBO

我想大家都已经熟悉VBO了吧。在GL3.0时代的VBO大体还是处于最重要的地位,但是与此同时也出现了不少新的用法和辅助役,其中一个就是VAO。本文大致小记一下这两者的联系,帮助大家理解一下这个角色。——ZwqXin.comVBO?See[学一学,VBO]本文来源于 ZwqXin (http://www.zwqxin.com/), 转载请注明      原文地址:http:/

2016-08-11 10:37:30 2195

转载 Android createWindowSurface failed EGL_BAD_ALLOC 引起Crash的解决方案

createWindowSurface failed EGL_BAD_ALLOC先看下Log:[java] view plain copyW/Adreno-EGL﹕ 5493>: EGL_BAD_ALLOC  E/libEGL﹕ eglMakeCurrent:784 error 3003 (EGL_BAD_ALLOC)  I/

2016-08-05 11:34:45 10038

转载 EGLImage与纹理

Using the EGL* Image ExtensionThe conventional way to copy an image into a texture is with either the glTexImage2D() orglTexSubImage2D() methods, but these methods are slow because of how they c

2016-07-13 10:19:42 5262

转载 Android中线程同步之Mutex与Condtion的用法

Android封装的同步类主要有MUTEX(AutoMutex)与Condition。本文分析如何使用他们,具体的实现参见《Android中线程同步之MUTEX与Condtion的实现》与《pthread之MUTEX与Condition用法》。Keywords: Mutex, Condition Variable, AutoLock/AutoMutex, Android关键字:互斥体、条件

2016-07-07 09:36:25 493

原创 Android bug——Launcher 0x506导致花屏问题

现象描述:在Android4.4中,概率极高会出现Launcher或者应用整个绘制成花屏、黑屏或者字体绘制成方块等问题,出现花屏问题的时候将会在hwui中打印0x506的错误。分析:通过log发现也只有hwui中出现0x506这个错误码,即hwui中当前绘图时使用的fbo是无效的。接着通过分析代码发现当前hwui中使用fbo的地方为LayerRenderer中,在Layer

2016-06-30 14:45:35 2642

转载 理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式

GL_TRIANGLE_STRIP绘制三角形方式很多时候令人疑惑,在这里对其运作机理进行解释。一般情况下有三种绘制一系列三角形的方式,分别是GL_TRIANGLES、GL_TRIANGLE_STRIP和GL_TRIANGLE_FAN。如下图所示:GL_TRIANGLES是以每三个顶点绘制一个三角形。第一个三角形使用顶点v0,v1,v2,第二个使用v3,v4,v5

2016-06-17 14:54:53 1766

原创 map server

sshfs  username@host_ip:/home6/username/ server/

2016-05-11 21:26:16 610

转载 EGLImage in SurfaceFlinger

In android, the application UI is used as an OpenGL ES texture, and composed by SurfaceFlinger to form final image on display. To understand how the application UI is sent to OpenGL, we have to start

2016-04-06 13:21:59 1817

原创 DDMS调试native heap实战

第一步:setprop libc.debug.malloc 1。这里有四种prop可以设置,1是mem leak,5和10是内存越界,20是虚拟机。可悲的是5和10并没有被libc_malloc_debug库完美地支持,所以只有1好用。第二步,stop, start。这些操作都是在device shell里面做的。设备会快速重启。第三步,验证prop。getprop看看

2016-02-25 14:14:51 5512

转载 C与C++互相调用

1.引言  C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不

2015-12-18 18:02:30 599

转载 spin_lock and mutex_lock

本文由该问题引入到内核锁的讨论,归纳如下为什么需要内核锁?多核处理器下,会存在多个进程处于内核态的情况,而在内核态下,进程是可以访问所有内核数据的,因此要对共享数据进行保护,即互斥处理有哪些内核锁机制?(1)原子操作atomic_t数据类型,atomic_inc(atomic_t *v)将v加1原子操作比普通操作效率要低,因此必要时才使用,且不能与普通操作混

2015-12-15 10:47:53 536

转载 Bump Map

original link:http://freespace.virgin.net/hugo.elias/graphics/x_polybm.htmBump mapping is very much like Texture Mapping. However, where Texture Mapping added colour toa polygon, Bump

2015-10-15 20:25:11 859

转载 Depth Buffer

深度缓冲是一个与你的渲染目标(render target)相同大小的缓冲,这个缓冲记录每个像素的深度。当一个像素第二次被绘制时– 例如当一个物体在另一个物体之后被绘制-深度缓冲要么保留前面的深度值,要么使用第二个像素的深度值替换当前深度值。那个深度保留哪个深度抛弃取决于你选择的深度函数。例如,如果当前深度函数是CompareFunction.LessEqual时,只有小于等于当前深度值的值才会

2015-10-14 20:51:02 1333 1

转载 如何由Height Map生成Normal Map

Nvidia和ATI都有相应的工具把Heightmap转成NormalMap,有了NormalMap,我们就可以用NormalMapping技术进行Per Pixel Lighting计算了。那么HeightMap是怎么转化成NormalMap的呢?      其实并不难,在《3D游戏与计算机图形学方法》中,提供了一种由高度图生成法向图的方法。其思想是根据高度图中的象素与其周围象素的高度差,在切空

2015-10-12 15:26:40 3133

转载 Height Map高度图

Height Map高度图1. 什么是高度图2. 高度图格式 1.什么是高度图? 首先,什么是高度图(Height Map)呢?所谓高度图实际上就是一个2维数组。创建地形为什么需要高度图呢?我们这样考虑,地形实际上就是一系列高度不同的网格而已,这样数组中每个元 素的索引值刚好可以用来定位不用的网格(x,y),而所储存的值就是网格的高度(z)。正是由于

2015-10-12 14:00:58 36990

转载 凹凸贴图、法线贴图、置换贴图

先我想说,对于凹凸贴图在计算机图形领域中的研究,最早开始于70年代末,至今已经有接近30年历史了。NormalMap只是一种目前很流行的凹凸贴图技术,而这里将会介绍一些目前游戏和在XBOX360和PlayStation3这种新世代主机上将会运用的凹凸贴图技术。  BumpMapping 凹凸贴图  做过CG的朋友一定比FXCarl还要更早的认识BumpMap。这种贴图是一种灰度图,用表

2015-10-11 16:58:50 20121 2

转载 The Android ION memory allocator, DMABUF is mentioned as well

转自:http://blog.csdn.net/thegameisfives/article/details/7308458什么是ION ?我的理解就是google在android4.0引入的一种内存管理器,来替代之前各个芯片厂家自己的方案..以下是网上找到的: it has become clear that PMEM is considered obsolete and

2015-09-13 14:59:16 805

转载 从零开始学习OpenCL开发(一)架构

本文将作为我《从零开始做OpenCL开发》系列文章的第一篇。 转载:http://blog.csdn.net/leonwei/article/details/88800121 异构计算、GPGPU与OpenCL  OpenCL是当前一个通用的由很多公司和组织共同发起的多CPU\GPU\其他芯片 异构计算(heterogeneous)的标准,它是跨平台的。旨在充分利用GPU强大的并行计算

2015-09-02 14:24:33 939

转载 Android Synchronization Fences – An Introduction

In any system that employs the exchange of buffers betweenindependent buffer Producers and buffer Consumers, there is a need for a policyto control buffer life times (allocation/deallocation) and a po

2015-08-10 21:10:07 1627

转载 Android中的GraphicBuffer同步机制-Fence

http://blog.csdn.net/jinzhuojun/article/details/39698317Fence是一种同步机制,在Android里主要用于图形系统中GraphicBuffer的同步。那它和已有同步机制相比有什么特点呢?它主要被用来处理跨硬件的情况,尤其是CPU,GPU和HWC之间的同步,另外它还可以用于多个时间点之间的同步。GPU编程和纯CPU编程一个很大的不

2015-02-12 21:38:51 6737

转载 Sync Object in OpenGL (about GPU Fence)

Sync ObjectJump to: navigation,searchSyncObject   Core in version4.4Core since version3.2Core ARB extensionARB_syncVendor extensionNV_fenceSyn

2015-02-08 15:23:06 3197

原创 ubuntu下串口minicom打印

sudo apt-get install minicomsudo minicom -s /dev/ttyUSB0

2015-02-03 20:38:47 2512

转载 GDB 调试Native Crash 总结

一 、 什么是Native Crash :    最简单的理解就是发生在Native世界里的异常,当然你也可以更直接一些,发生在lib库里异常。    常见的native crash有 SIG 7/11 等,尤其是这两个哥们,在新项目阶段的出场率还是非常高的,访问非法内存/内存对齐诸如此类。二、如何分析Native Crash:     发生nativeCrash的时候,通常可以从

2015-01-22 19:59:03 1484

转载 Shader学习笔记,通过GLSL实现(一)

最近一直在专心研究利用GLSL编写Shader,写点东西将自己学的总结一下,把自己学习shader的经历分享一下,希望能对有兴趣学习shader的同学有些帮助,但这些玩意还算不上教程,很多都是我自己在学习中的问题以及如何解决的,有什么不足还请各位指出,想要系统的学习GLSL的话还是推荐大家看《OpenGL Shading Language 3rd Edition》,但如果你对OpenGL也一无所知

2014-12-25 11:16:47 775

转载 glew, glee与 gl glu glut glx glext的区别和关系

GLEW是一个跨平台的C++扩展库,基于OpenGL图形接口。使用OpenGL的朋友都知道,window目前只支持OpenGL1.1的涵数,但 OpenGL现在都发展到2.0以上了,要使用这些OpenGL的高级特性,就必须下载最新的扩展,另外,不同的显卡公司,也会发布一些只有自家显卡才支 持的扩展函数,你要想用这数涵数,不得不去寻找最新的glext.h,有了GLEW扩展库,你就再也不用为找不到函数

2014-12-19 21:12:42 923

转载 VS2010 如何添加H文件目录和LIB目录

第一次使用VS2010,也是初学者开始编写VC++,程序首先学习编写DLL文件,编译完自己的DLL文件后,要在其它项目中使用,开始遇到很多错,但是在网上搜索了好久后,终于解决了问题。H文件目录:依次点击“项目——XX 属性——C/C++——常规”,在“附加包含目录”中加入H文件所在的文件夹LIB目录:依次点击“项目——XX 属性——链接器——常规”,在“附加库目录”中加

2014-12-19 21:04:50 515

转载 OpenGL ES 2.0 Shader相关介绍

与OpenGL ES1.x渲染管线相比,OpenGL ES 2.0渲染管线中“顶点着色器”取代了OpenGL ES 1.x渲染管线中的“变换和光照”;“片元着色器”取代了OpenGL ES 1.x渲染管线中的“纹理环境和颜色求和”、“雾”以及“Alpha测试”。这使得开发人员在使用OpenGL ES 2.0API进行开发时,不得不编写着色器代码,来完成一些顶点变换和纹理颜色计算的工作。

2014-11-21 20:41:33 742

转载 颜色混合opengl--glBlendFunc函数

混合是什么呢?混合就是把两种颜色混在一起。具体一点,就是把某一像素位置原来的颜色和将要画上去的颜色,通过某种方式混在一起,从而实现特殊的效果。假设我们需要绘制这样一个场景:透过红色的玻璃去看绿色的物体,那么可以先绘制绿色的物体,再绘制红色玻璃。在绘制红色玻璃的时候,利用“混合”功能,把将要绘制上去的红色和原来的绿色进行混合,于是得到一种新的颜色,看上去就好像玻璃是半透明的。要使用OpenG

2014-08-30 15:25:55 803

转载 Android图形子系统详解

Android的图形系统发展经历了通过CPU模拟图形操作,和GPU专门进行图形处理的阶段,因为这方面硬件技术发展很快,因此Android图形系统也在不断调整,以期提供更加快速流畅的UI体验。图形操作可以有两种方式实现:一是利用通用CPU模拟图形操作;二是利用GPU专门做图形操作。前者会增加CPU的负担,在现在高分辨率已经是普遍现象的时候,让通用处理器来完成大量的图形计算已经不现实。An

2014-08-30 13:40:16 2264

转载 Mali GPU OpenGL ES 应用性能优化--基本概念

1. 基本概念1.1 Mali GPU家族      Mali GPU家族都包含以下通用的硬件:      • 基于分块的延迟渲染:         Mali GPU把framebuffer分成许多块(16 x 16像素),然后一块一块地进行渲染。基于分块的渲染是有效的,因为像素值使用片上内存进行计算。它需要更少的内存带宽和功耗。      • L2 Cac

2014-08-02 15:15:15 1044

转载 Mali GPU OpenGL ES 应用性能优化--基本方法

1. 常用优化工具2. 常用优化方案     OpenGL ES优化的主要工作是在图形管道中找到影响性能的bottleneck,其bottleneck一般表现在以下几方面:     • 在应用程序代码中,如冲突检测     • GPU与主内存间的数据传输     • 在VP(Vertex Processor)中的顶点处理     • 在F

2014-08-02 15:10:44 909

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除