在我的应用程序中,我绘制了一些线条(如垂直图形),刷新率将在一秒钟左右。我已经计算了性能并且绘制完整的线需要400毫秒,但这不够快,因为我们必须每34毫秒刷新一次屏幕。
我正在吸取CDC。
我们将使用400 MHz处理器的Windows CE设备。绘图涉及视图DC上的MoveTo
,LineTo
,FillRect
等简单的MFC API:
CDC* pDC = GetDC(); //draw vertical line from one end of screen to the other
pDC->MoveTo(some xy Cordinates);
pDC->LineTo(some xy Points);
我们如何优化绘图程序?请提出任何建议。
答案 0 :(得分:1)
自Windows Vista起,GDI操作(BitBlt除外)不再是硬件加速,而是用软件完成。
要获得所需的性能,您可能需要使用Direct3D或OpenGl。
尽管this msdn document意味着,自从NT 6.1以来,GDI的hw加速回到了桌面上。我仍然期望OpenGL和D3D提供的基于矢量的API应该更加可靠--GDI线条绘制不是驱动程序编写者努力优化的。
作为目标,在回应更新时,Windows CE显然已经在Windows CE上提供了Direct X,因为至少CE 2.1
我仍然认为GDI在CE上没有特别加速;如果有任何hw支持,DirectX将是访问它的方式。