zoukankan      html  css  js  c++  java
  • 兼容位图

    我对兼容位图的理解是:它是为解决绘图统一性而建立的一种机制,和位深无关,你在32位的程序里BITBLT()8位的图不也能行吗?

    所谓的绘图统一性是这样的。假设在一个界面有多个贴图,如果你不用兼容位图的话,那么你就要贴多次,比如有3幅图,你要贴3次,有5幅图你就要贴5次。

    如 果你仅仅只想画一幅话的话,这也没什么,但在游戏领域就会造成大麻烦,因为游戏是要不断刷新图象的,而且是一秒钟要刷新几十次之多,这就是所谓的帧频,也 就是说,在一秒钟内将屏幕上所有的图象绘几十次,如果屏幕上有5幅图,帧频是30次,那么你要在一秒钟内绘5*30=150次图,如果有10幅图,那就得 绘300次,这会给显示系统造成很大负担,最显著的表现就是屏幕闪烁。

    而兼容位图能解决这一问题,它先把各个位图绘制到内存里,然后再一 次性绘制到屏幕上,绘图次数就大大减少了,打个比喻,不用兼容位图绘图就好比是手动运货,你一次只搬一件货物过去,而兼容位图就是用集装箱运货,你先把所 有的货物放到集装箱里,再一次运过去,这样你的劳动量就大大减少了

     

    所谓的“兼容位图”其实就是“内存位图”。绘图过程中你要用到内存,而普通绘图不要用到内存。

    假设你要在窗口中绘制A,B,C三幅图,

    普通绘图过程是这样的:
    把A绘制到窗口中;
    把B绘制到窗口中;
    把C绘制到窗口中;

    而兼容位图是这样的:
    先在内存中开辟一块区域存放图片,
    把A绘制到内存中;
    把B绘制到内存中;
    把C绘制到内存中;
    然后把内存中绘好的图片绘制到窗口中。

    普通绘图要绘3次,而兼容位图只要绘一次。

  • 相关阅读:
    JAVA中循环删除list中元素的方法总结
    弹力设计总结
    CPU飚高问题排查基本步骤
    缓存数据库更新策略
    .Module高内聚低耦合的思考
    javascript回调函数及推论
    Laravel Autoloader模块分析
    Laravel Event模块分析
    数据操作分层设计
    Discuzx2开发标准流程
  • 原文地址:https://www.cnblogs.com/zhaoxinshanwei/p/4051438.html
Copyright © 2011-2022 走看看