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. postman 做接口测试

    Postman 之前是作为Chrome 的一个插件,现在要下载应用才能使用. 以下是postman 的界面: 各个功能区的使用如下: 快捷区: 快捷区提供常用的操作入口,包括运行收藏夹的一组测试数据, ...

  2. Django加载静态网页模板

    Django加载静态网页模板 步骤: 第一步:在子系统blog根目录下新建模版目录templates,里面新建一个login.html <!DOCTYPE html> <html l ...

  3. 【javascript】数据结构-队列

    <!DOCTYPE html> <html> <head> <title>queue</title> <meta charset=&q ...

  4. Python3基础 print 自带换行

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  5. Mininet 跑一个简单的ping测试

    安装地址:https://github.com/mininet/mininet/wiki/Mininet-VM-Images 登录用户:mininet 密码:mininet 执行命令:sudo mn ...

  6. Codeforces Round #417 (Div. 2) D. Sagheer and Kindergarten(树中判祖先)

    http://codeforces.com/contest/812/problem/D 题意: 现在有n个孩子,m个玩具,每次输入x y,表示x孩子想要y玩具,如果y玩具没人玩,那么x就可以去玩,如果 ...

  7. UVa 10943 全加和

    https://vjudge.net/problem/UVA-10943 题意: 把K个不超过N的非负整数加起来,使得它们的和为N,有多少种方法? 思路: d[i][j]表示用i个数加起来为j的方法数 ...

  8. python assert 断言详细用法格式

    使用assert断言是学习python一个非常好的习惯,python assert 断言句语格式及用法很简单.在没完善一个程序之前,我们不知道程序在哪里会出错,与其让它在运行最崩溃,不如在出现错误条件 ...

  9. 上海仪电Azure Stack技术深入浅出系列2:Azure Stack与Azure的有QoS保证的网络联通实现方法和对比测试

    本篇文章作为<Azure Stack技术深入浅出系列>的第二篇,将描述我们目前在构建基于Azure Stack混合云业务解决方案方面所面临的网络连通困难,以及相关技术人员为解决这一问题所做 ...

  10. TinyURL

    2018-03-09 15:19:04 TinyURL,短地址,或者叫短链接,指的是一种互联网上的技术与服务.此服务可以提供一个非常短小的URL以代替原来的可能较长的URL,将长的URL地址缩短. 用 ...