[非MFC]GDI+的DrawImage()函数效率太低了,
只画一张1024x768的png,1帧就要消耗8毫秒的时间,如果设置一下颜色矩阵,1帧将消耗16毫秒!
8毫秒有点无法忍受,
有个优化的方法是,把整个窗口以64×32的尺寸切分成N个Block,然后构建一个脏矩形模型,哪个Block脏了,就渲染哪一个。
甚至还可以优化UpdateLayeredWindow()函数,只把脏的Block提交到屏幕。(只是这个貌似有个问题,就是它会改变窗口的位置,比如你设了100,100的屏幕位置,函数调用完后,你用GetWindowRect()获取一下窗口位置,就会发现,已经被改成100,100了。不知道有什么方法能够避免)
如果速度实在够慢,那就只能拿它用来渲染窗口背景,其他部分需要高速渲染的地方可以用D3D去渲染
PS:我要拿它做半透明界面,UI系统是自己写的,完全不用什么MFC那套东西。