Library recommendation?
I'm looking for a simple graphics library that can be integrated with DirectX 9 and can do the following:
* Draw onto DirectX surfaces (i.e. at least IDirect3DSurface9 objects; preferably also IDirect3DTexture9) in all common 16 and 24 bit colour modes, with or without alpha channels
* When alpha channels are present, I should be able to set the surface to completely transparent, and then draw things onto it that are not transparent which modify the transparency of just the pixels they touch
* Draw at least the following primitives, with control over colour & alpha:
- Horizontal and vertical lines
- Solid filled rectangles
- Images, which I should be able to load easily from data in a common source format
- Text, preferably from a truetype font, preferably anti-aliased.
The library would have to be under either a BSD or LGPL style license. I'm happy to give acknowledgements, but not to pay for it, as this is a hobby and unlikely to make me much money. Nor can I release my code under the GPL, as I'm using a few proprietary libraries that won't let me do so.
Any suggestions? I've looked at allegro and SDL, but both seem overkill for what I need (they want to take control of the whole application's graphics, it seems, but I just want something to let me draw details onto textures that I'm going to render with standard Direct3D methods).
Wouldn't ID3DXSprite be sufficient? It's a fairly powerful system, and it comes built right in.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
July 27, 2004 01:37 PM
I might be mistaken, but doesn't ID3DXSprite only render directly onto a D3DDevice's current render target? I'm looking for ways of changing the contents of a texture (for 3D objects that update to show status) during the rendering of a scene, so that doesn't really seem -- nice. I'll do it that way if necessary, it'll mean restructuring so I do all of the texture updates before I call BeginScene(). But, I'd have thought that there was some way of doing it without. Basically, what I want is a library that'll call LockRect(), update the memory directly (I don't need hardware acceleration for this, the changes are infrequent and small) and unlock it ready for use.
Maybe I'll restructure it anyway. It'll work better if I do that way, I guess.
Thanks for pointing me in that direction, anyway. I'm new to DX9, and haven't used 8 either, so there's a lot of new stuff to look at. And MS's tutorial doesn't seem to touch most of it.
Maybe I'll restructure it anyway. It'll work better if I do that way, I guess.
Thanks for pointing me in that direction, anyway. I'm new to DX9, and haven't used 8 either, so there's a lot of new stuff to look at. And MS's tutorial doesn't seem to touch most of it.
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement