Sign in to follow this  
  • entries
    455
  • comments
    639
  • views
    422027

I have a problem...

Sign in to follow this  
_the_phantom_

280 views

Well, I have many, but this one is specific to programming and gamedev [grin]

Now, I like reusing code, I really do, because frankly I'm lazy and I've always viewed a certain degree of lazyness in a programmer as a Good Thing(tm), as while you'll want todo things you wont want to go around writing your own containers or something all the time.

However, I'm also a bit picky about things and I happen to like C++ interfaces.

The first thing this has causes has been the, multiply pimped, windowing framework, which basically got me past my problems with current 'solutions' out there.

So, a few posts back I mentioned making a 'framework' so I wouldnt have to write so much boiler plate code when doing things. One of the chunks of code I often end up writing is stuff to load, upload and setup textures, so I figured "I know, I'll write a texture manager type thing to handle that"

I admit, its only 6 lines of code per load/upload pair thanks to my useage of the corona and boost libraries, however swapping between runtimes for corona is annoying at best and if I can get it down to less than that I'll be happy.

So, I've set about doing some design work, listing what I want it todo and possibly interaction issues (having read a great deal about 'loose coupling' of late and keeping modules seperate this is pretty much on my mind).

Having got a page down I went off to look at what I could use as the loading backend, as frankly I dont fancy re-writing everything myself.
So, my current choices as they atand are;

  • Corona

    Now, I like Corona over all, the switching of run time types and the copying of libs around is slightly bothersome but I like its simple interface and its C++ way of doing things.
    However, its a bit restrictive on file formats and it doesnt always work when saving images out.

  • DevIL

    I used DevIL for a while a long time back when it was OpenIL, at the time I was glad to get my hands on some decent loading/saving code.
    However, the interface bothers me and I'm not the greatest of fans of the LGPL at the best of times

  • FreeImage

    I'd ment to look at free image before now and it certainly seems very comprehensive however I'm not a great fan of the interface it has.
    It does have a C++ interface, but it does too much for my needs.
    Also, FreeImage appears to reduce everything down to a bitmap.
    Now, bitmaps are great when it comes to loading stuff into OpenGL however FreeImage supports DDS, DDS files are compressed, OpenGL can directly load DDS compressed files into memory, FreeImage looks to decompress them [flaming] not overly usefull



So, from all of that I dont have a backend I'd be happy with.
Corona is closest, I like the interface and it really does only try to do image loading and a tiny bit of manipulation (flipping for example, which is handy) but the apprently broken functionality and lack of some file formats puts me off a bit.

Part of the issue is cubemaps. DDS can hold compressed cube maps, which is nice and cubemaps are pretty handy things. However, no ones concept of an image really supports a cubemap, which is part of whats stopping me from just kicking corona into shape (I've already played with it a bit, I coded its JPG saving routine and while I can work with the code base I'm not overly happy with it).

So, its slowly looking like I'm going to have todo something I dont really like doing, making my own image loader backend *sigh*
What I'll probably do is carve up these libraries and rebuild them into something I like the look of, because not even I'm fussy enuff to try and recode all the image decoding stuff [wink]

So, its looking like tomorrow I start digging into the source code and ripping out the guts I need to produce what I want, listen out for the screams about 3pm BST [wink]
Sign in to follow this  


0 Comments


Recommended Comments

There are no comments to display.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now