flashplayer的cpu渲染

bitmapData占用的内存分两块,一块是原始数据区,另一块是解压后的内存区
10秒内如果没有使用这个bitmapdata,解压后的内存区会被释放,
当10秒后重新使用,这个bitmapdata会再次解压,
所以就会造成某些页游几秒钟一定会卡一下的现象,这个现象在手机上最严重
另外,copy出来会变成三份内存,或者当你无意中缩小了位图,也会变成三份
内存。2dx和flash的位图机制都是如此

 fp用cpu渲染,消耗大量CPU是因为要解压 ,解压后的数据经过CPU渲染到屏幕
 其实只要不缩放图片,显示的效率非常高的. fp cpu渲染没有经过显卡。

 显示100个图片动画,缩放占CPU40%,不缩放占20% 
 
 为了提供alpha支持,fp还不止调用系统api,还调用了gdi+的api ,flashplayer最终
调用windows的api c++来达到显示图形。

 每个系统画屏幕的api都不一样 
 如果FP运行在Mac上,会调用Mac的画屏幕的API 
 
 GPU只负责计算,然后将结果交给BUS总线,传给显示屏

 CPU做的也是这个工作 区别是CPU还要做其他事情
stage,只是C++的一个Canvas

 C++的Canvas调用系统API绘制屏幕

 系统API采用的是逐行扫描 并没有垂直同步

 所以就会导致滚屏时出现撕裂现象

 显卡的驱动也是C/C++写的。。 
 
 脏矩形思想是,有变动的地方才需要重绘

 所以面积小了,绘制速度快 
http://blog.codingnow.com/cloud/DirtyRect

显示器呈像原理

读出的顺序对应于图像为从左到右一整行后,再到下一行,直至右下角最后一个象点。再回到左上角象点读出,电压的输出分红、绿、蓝三个通道,对应每一色,光亮度越高,输出的电压越高,通常输出电压范围(国际标准为0-0.7V或0-0.1V)此三通道电压由信号线的1、2、3号脚输入到显示器。

在显示器一侧:图象放大电路把0-0.7V电压转换为约0-40V,用于调节电子枪电子束的强弱,电子束对荧光屏的荧光粉进行扫描。在时间、位置上与显卡的读出一一对应,称为同步。同步又分水平同步和垂直同步,分别标定每一行的起始点,和每一幅图象的行。

电子束对荧幕的扫描过电场(静电偏转)或磁场(磁偏转)的控制。静电偏转特点反应快、角度小,极均匀,通常用于测量仪器(示波器为典型例子)。磁偏转反应慢(每秒十三个来回)均匀度稍差(需加复杂枕形较正),偏转角度大,可偏转角度90度-110度,显示器通常用90度磁偏转系统,110度用于大屏幕电视机。

三原色可以组成所有色彩,显示器通过单个像素点上的三组颜色组合来实现显示色彩的。荧光粉受到电子流轰击得到能量,显示色彩。
CRT(阴极射线管)显示器通过将高能电子激活屏幕上的荧光粉显示色彩,传统用三枪三束显示管(激活红绿蓝荧光区的三束电子流分别用三根发射枪管控制),也有sony独创的单枪三束显示管(特丽珑管),定位更准,所以画质精度更高,所以当时sony显示器是无对手可言的。
如今的LCD也是如此,每个像素点排列三个液晶槽每个槽负责一种原色,通过改变液晶两端的电压来扭转液晶的开闭达到显色效果。

bitmapdata的知识点的更多相关文章

  1. ASP.NET Core 中的那些认证中间件及一些重要知识点

    前言 在读这篇文章之间,建议先看一下我的 ASP.NET Core 之 Identity 入门系列(一,二,三)奠定一下基础. 有关于 Authentication 的知识太广,所以本篇介绍几个在 A ...

  2. ASP.NET MVC开发:Web项目开发必备知识点

    最近加班加点完成一个Web项目,使用Asp.net MVC开发.很久以前接触的Asp.net开发还是Aspx形式,什么Razor引擎,什么MVC还是这次开发才明白,可以算是新手. 对新手而言,那进行A ...

  3. UWP开发必备以及常用知识点总结

    一直在学UWP,一直在写Code,自己到达了什么水平?还有多少东西需要学习才能独挡一面?我想对刚接触UWP的开发者都有这种困惑,偶尔停下来总结分析一下还是很有收获的! 以下内容是自己开发中经常遇到的一 ...

  4. C#高级知识点&(ABP框架理论学习高级篇)——白金版

    前言摘要 很早以前就有要写ABP高级系列教程的计划了,但是迟迟到现在这个高级理论系列才和大家见面.其实这篇博客很早就着手写了,只是楼主一直写写停停.看看下图,就知道这篇博客的生产日期了,谁知它的出厂日 ...

  5. lucene 基础知识点

    部分知识点的梳理,参考<lucene实战>及网络资料 1.基本概念 lucence 可以认为分为两大组件: 1)索引组件 a.内容获取:即将原始的内容材料,可以是数据库.网站(爬虫).文本 ...

  6. DoraCMS 源码知识点备注

    项目需要研究了下DoraCMS这款开源CMS,真心做的不错:).用的框架是常用的express 4 + mongoose,代码也很规范,值得学习. 源码中一些涉及到的小知识点备注下: https:// ...

  7. atitit 商业项目常用模块技术知识点 v3 qc29

    atitit 商业项目常用模块技术知识点 v3 qc29 条码二维码barcodebarcode 条码二维码qrcodeqrcode 条码二维码dm码生成与识别 条码二维码pdf147码 条码二维码z ...

  8. HTML5知识点总结

    HTML5知识点总结(一) 一.HTML新增元素 1.IE9版本以下支持HTML5的方法 <!--[if lt IE9]> <script src="http://cdn. ...

  9. JavaScript易错知识点整理

    前言 本文是我学习JavaScript过程中收集与整理的一些易错知识点,将分别从变量作用域,类型比较,this指向,函数参数,闭包问题及对象拷贝与赋值这6个方面进行由浅入深的介绍和讲解,其中也涉及了一 ...

随机推荐

  1. ng-深度学习-课程笔记-8: 超参数调试,Batch正则(Week3)

    1 调试处理( tuning process ) 如下图所示,ng认为学习速率α是需要调试的最重要的超参数. 其次重要的是momentum算法的β参数(一般设为0.9),隐藏单元数和mini-batc ...

  2. Flask Web 开发 错误页面自定义

    如果要自定义错误画面,无法大多数情况是自定义404和500的情况 首先,要在路由中设置 通过app.error_handler这个装饰器来绑定响应函数 @main.errorhandler(404) ...

  3. Linux查看网卡UUID另一方法

    转自:http://liaoronghui.com/linux-view-network-adapter-uuid-other-law.html 有时我们不小心将/etc/sysconfig/netw ...

  4. Redis之持久化

    Redis 持久化 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB方式的持久化是通过快照(snapshotting)完成的,当符合一定条件时Redis会自动将内存中的所有数据进 ...

  5. HDU 1712 ACboy needs your help(分组背包入门题)

    http://acm.hdu.edu.cn/showproblem.php?pid=1712 题意: 有个人学习n门课程,a[i][j]表示用j分钟学习第i门课程所能获得的价值,背包容量为一共有m时间 ...

  6. 51Nod 1503 猪和回文

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1503 思路: 没想到要用DP去解决. 题目是从起点出发走,我们可以从起点 ...

  7. MySQL返回影响行数的测试示例

    found_rows() : select row_count() : update delete insert 注:需要配合相应的操作一起使用,否则返回的值只是1和-1(都是不正确的值) 示例: d ...

  8. Java回顾之多线程

    在这篇文章里,我们关注多线程.多线程是一个复杂的话题,包含了很多内容,这篇文章主要关注线程的基本属性.如何创建线程.线程的状态切换以及线程通信,我们把线程同步的话题留到下一篇文章中. 线程是操作系统运 ...

  9. JavaScript--变量和运算符

    JavaScript--变量和运算符 一.心得 JavaScript语法:变量声明 var弱类型 var中可以是任何类型在JavaScript里面,单&单|是位运算符.变量没有值使用的话就是u ...

  10. 雷林鹏分享:Ruby 文件的输入与输出

    Ruby 文件的输入与输出 Ruby 提供了一整套 I/O 相关的方法,在内核(Kernel)模块中实现.所有的 I/O 方法派生自 IO 类. 类 IO 提供了所有基础的方法,比如 read. wr ...