문제

I've been working on a small little application, and I've been using DirectX/3D to draw textures to the screen (all 2-dimensional elements). The API, I find, is pretty easy to use and to incorporate using OOP principles, but I can't help but feel that using DirectX on something this small is insanely over-kill.

I can't seem to find consensus on a good alternative, though. Any suggestions?

EDIT: Native alpha-blending and PNG file support is necessary.

With much first-post love, Jengerer

도움이 되었습니까?

해결책

If you need alpha blending you have to use the graphics hardware; the only good way to do that is to use a 3D API similar to how you're doing it now (DirectX or OpenGL). Any alternative (GDI/+ or say, DirectDraw) will not use the full graphics hardware for accelerating blending and will have to perform it on the CPU, greatly reducing performance.

As mentioned, Direct2D is an option also--it is functionally a layer on top of Direct3D that supports more 2D specific functionality as well as excellent text support.

다른 팁

If you don't need XP support, use Direct2D.
Otherwise, use GDI+.

Windows includes one out of the box. (GDI32.DLL). It's possible to hook into the WM_PAINT message in the WindowProc call and use BeginPaint() to start drawing. A really good idea of what can be done and a basic tutorial is available on Zetcode.

I have used Gosu in the past, and it has been alright to work with. It was designed to be used more with Ruby, but it is not bad for C++. We used it in a quick side scroller game, where we messed with z-order and the alpha channel. It might be worth checking out.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top