C++ 什么';这是一个适用于Windows/C++;?
我一直在开发一个小应用程序,我一直在使用DirectX/3D在屏幕上绘制纹理(所有二维元素)。我发现,API非常易于使用,并且可以使用OOP原则进行合并,但我忍不住觉得,在这么小的东西上使用DirectX简直是过火了 不过,我似乎无法就一个好的替代方案达成共识。有什么建议吗 编辑:需要本地alpha混合和PNG文件支持 有了很多初恋,C++ 什么';这是一个适用于Windows/C++;?,c++,windows,api,directx,drawing2d,C++,Windows,Api,Directx,Drawing2d,我一直在开发一个小应用程序,我一直在使用DirectX/3D在屏幕上绘制纹理(所有二维元素)。我发现,API非常易于使用,并且可以使用OOP原则进行合并,但我忍不住觉得,在这么小的东西上使用DirectX简直是过火了 不过,我似乎无法就一个好的替代方案达成共识。有什么建议吗 编辑:需要本地alpha混合和PNG文件支持 有了很多初恋, Jenger如果您不需要XP支持,请使用。 否则,请使用 窗口包括一个开箱即用的窗口。(GDI32.DLL)。可以挂接WindowProc调用中的消息并使用它开始
Jenger如果您不需要XP支持,请使用。
否则,请使用 窗口包括一个开箱即用的窗口。(GDI32.DLL)。可以挂接WindowProc调用中的消息并使用它开始绘图。关于可以做什么的一个非常好的想法,上有一个基本教程。如果你需要alpha混合,你必须使用图形硬件;实现这一点的唯一好方法是使用类似于现在的3D API(DirectX或OpenGL)。任何替代方案(GDI/+或DirectDraw)都不会使用完整的图形硬件来加速混合,必须在CPU上执行,从而大大降低性能
如前所述,Direct2D也是一个选项——它在功能上是Direct3D之上的一个层,支持更多的2D特定功能以及出色的文本支持。我过去使用过,可以使用它。它被设计用于更多的露比,但它不是坏的C++。我们在一个快速侧滚游戏中使用了它,在那里我们搞乱了z顺序和alpha通道。这可能值得一看。就DirectX/OpenGL而言,您有什么建议?我知道这在编程界是一个相当热门的话题,但就性能和实用性而言,你认为哪一个是更好的选择?你特别抱怨DirectX感觉像是杀戮过度;OpenGL的API上市时间要快得多,可以让您顺利上市。然而,由于OpenGL是用C语言设计的,因此您将失去DirectX OO设计的良好封装,必须处理OpenGL状态机。这两个应用程序的性能几乎相同,所以请选择一个提供了清晰易懂的API的应用程序。我所说的“过度杀戮”是指在性能方面,它似乎比这样一个小型应用程序所使用的资源要多得多。我发现即使是最小的DirectX应用程序也有相当大的负载。谢谢你的回复,这真的很有帮助!考虑到你在demoscene中看到的大多数4K演示都使用D3D,我不会说对于一个简单的2D应用来说这是疯狂的过度杀戮。D3DX还支持
.bmp
,.dds
,.dib
,.hdr
,.jpg
,.pfm
,.png
,.ppm
和.tga
文件格式。