在论坛找了一个topic ,自己也来分析一下。

http://bbs.csdn.net/topics/350122995?page=1#post-392888121

——

100分:开帖讨论WINCE下24位色显示瓶颈

引用 39 楼 JNU_kinke 的回复:

你要在驱动中和初始化LCD为32bit颜色深度,然后在显示24bit图片时就不会做lz所说的转化了。

不错不错,这几天试试就知道了。嘿嘿。
我要做S5pv210 24 bit 。
楼主上面代码也有线索了。

C/C++ code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
源码GPE EmulatedBlt_Internal()函数中可以找到):
   while( height-- )
   for( x=0; x<width; x++ )
    {
        src.Value = ( *src.Ptr ) + ( *(src.Ptr+1) << 8 ) + ( *(src.Ptr+2) << 16 );
        src.Ptr += src.BytesPerAccess;
        if( pParms->pConvert )
        {
            src.Value= Parms->pColorConverter->*(pParms->pConvert))( src.Value );
        
        if( quickWrite )
        {
            switch(dst.Bpp)             {
                case 8:
                    *(unsigned char *)dst.Ptr = (unsigned char)src.Value;
                    break;
                case 16:
                     *(unsigned short *)dst.Ptr = (unsigned short)src.Value;                       break;
                case 32:
                     *(unsigned long *)dst.Ptr = (unsigned long)src.Value;
                     break;
                case 24:
                     *dst.Ptr = (unsigned char)(src.Value);
                     *(dst.Ptr+1) = (unsigned char)(src.Value>>8);
                     *(dst.Ptr+2) = (unsigned char)(src.Value>>16);
           }
           dst.Ptr += dst.BytesPerAccess;
       }
}

还有下面两个人的总结也非常有用

在EmulatedBlt_Internal()函数中加个Sleep(1000)的话,挺有意思,可以很清楚得看出WIN是如何显示界面的,包括像关闭的那个"X",是一个点一个点出来的),视频就不清楚了。

解决显示慢的问题,保证图片颜色深度和屏实际的一致,否则系统会做转换,这肯定是慢的,我们6410的CPU都是一样。
   解决显示时间不一致的问题,双缓冲,用GDI来做就是,先把所有内容绘制到内存DC,在一次性从内存DC拷贝到屏幕DC,这样的效果就是同时显示出来的。

本人就是遵循这2点,所以我做的每个界面,显示速度很快,基本上是一瞬间就出来,而且是同时显示,不会局部不一致,闪烁什么的

C/C++ code
1
2
3
case 32:
  *(unsigned long *)dst.Ptr = (unsigned long)src.Value;
把24 bit 的当做32 bit 就可以一次传输过去。嘿嘿,好办法!

——我的个人看法
关于wince RGB888 24 bit 为什么没什么人搞?
因为wince很多屏幕并不大的,大部分屏幕都是RGB565 的16 bit ,所以BSP都是默认的RGB565 16 bit
RGB888 24 bit 是可以搞的,ARM的 CPU也支持24 bit
但是为什么32 bit 没人搞?
因为ARM 没有出支持32bit 的LCD控制器。
所以没必要啊,估计以后ARM强大了会有。
现在很多手机都是RGB888  24 bit ,效果也相当的好了。
至于如果是VGA的,这种情况,用RGB888 24 bit 已经足够了。

关于wince 下LCD 控制器设置成RGB888 24bit 的相关问题相关推荐

  1. linux下的外接显示器设置成竖屏

    linux下的外接显示器设置成竖屏 用到的软件 系统设置里的Display xrandr 用到的命令 $: xrandr -o left\right 步骤 1.在Display里选择设置的显示器为主显 ...

  2. CentOS下KVM网卡设置成网桥时获取镜像端口的流量

    首先,网桥配置好之后就能实现一个简单的交换机,而交换机的特点就是MAC地址学习,那么KVM的网卡设置成网桥之后,也就是相当于连接到了交换机上. 此时如果要实现在二层交换机或三层交换机做端口镜像,并把这 ...

  3. 如何让电脑不进入黑屏状态,教程在这里,WIN10系统下电脑怎么设置成不黑屏

    电脑如何才能不黑屏即不进入休眠模式呢,小编今天来教大家如何关闭电脑上的休眠模式设置: 第一步.小编电脑装的是WIN10系统,这里就以WIN10系统为例,首先点击电脑屏幕左下角的WINDOWS图标即&q ...

  4. Win7下用MSN设置成右下角小图标的方法

    在Win7下安装MSN后直接启动MSN,运行MSN后直接显示在任务栏,最小化时也在任务栏,感觉不太方便,还是习惯于最小化到右下角状态栏中.方法如下:右击MSN启动方式,选属性,然后在兼容性选项卡里选择 ...

  5. oracle11g memory_target,oracle11g MEMORY_MAX_TARGET设置成0 问题处理

    linux 下 oracle11g MEMORY_MAX_TARGET设置成0 问题处理 yope(2017_08_08) 问题起因: 数据库服务器由于业务原有内存不能够满足,所以增加了内存.CUP和 ...

  6. linux设置网口物理地址吗,centos下网口vlan设置

    如果要使vlan之间进行通信,我们通常会使用三层交换机或者路由器子接口模式来做.Linux上关于VLAN与Cisco交换机中继连接,也是可以实现其互相之间的通信的. 环境:RHEL 5.2 最小化安装 ...

  7. rk3288 设置imx6ull的lcd控制器的寄存器

    使用参数设置LCD控制器 根据芯片手册,一个一个设置寄存器: Framebuffer地址设置(基地址) Framebuffer中数据格式设置 LCD时序参数设置 LCD引脚极性设置 主要是根据imx6 ...

  8. html 下拉框字体,怎么把select下拉菜单里的文字设置成左右滚动效果

    原标题:怎么把select下拉菜单里的文字设置成左右滚动效果 希望用marquee标签来设置字体滚动,代码是下面这样写的,但是没有效果,字体还是不会滚动,应该怎么来写,才会实现这个效果呢? " ...

  9. 嵌入式 linux 屏 翻转,linux下如何把屏幕设置成竖屏

    23 个回复 spindrift C'est La Vie 2013-12-20 LinuxApp版的回帖也看了,你们用 DirectFB?图形是有 DFB 直接画么?还是用 Qt/GTK? CLI  ...

最新文章

  1. mongodb主从设置,capped collections等常用命令集合
  2. C++ 之 string
  3. 从0搭建一个Springboot+vue前后端分离项目(八)把数据从后台传到前端进行展示渲染,完善增删改查
  4. OpenCV实现最大最小距离聚类算法
  5. 最高的奖励 51Nod - 1163(贪心+并查集)
  6. GitHub Trending第一之后,PaddleOCR再发大招:百度自研顶会SOTA算法正式开源!
  7. 女生可不可以进入IT行业做Linux运维工程师?
  8. 【安卓8】文件的读写
  9. hyper-v redhat使用新网卡
  10. laravel 社会化(联合)登录扩展包(QQ、微信、微博等)
  11. MIDI入门: 用简谱轻松自定义midi音乐 [圣诞贺卡+铃儿响叮当]
  12. autocad java api,autocad接口api
  13. 自从硬派网倒闭后,就没有什么好看的IT硬件网站了
  14. java山地车 故障,山地车骑行常见的10大问题及解决方案
  15. java那块最难_Java哪块最难学?
  16. ICEM 准备工作-常用操作
  17. python getcwd_Python os.getcwd() 方法
  18. c语言中 if(x) 、if(0) 、if(1)
  19. Photoshop如何使用图像调色之实例演示?
  20. Vue中components几个组件

热门文章

  1. 给兰姐姐的苹果爱思下载和使用教程
  2. 使用win10画图3D进行图片拼接
  3. SpringSocial之微信登录
  4. 百度搜索打不开第二页_百度快速排名的最新方法篇
  5. 用PowerBuilder制作指示灯
  6. 网站被同行恶意攻击了怎么办
  7. 授人以渔-在 SAP MM 物料显示界面上看到一个字段,如何查找哪张数据库表的哪个字段进行的存储
  8. A_Star 康托展开 八数码问题
  9. Cocos2d-x单机游戏防八门神器修改数据
  10. mipi csi丢帧