> > So, the first thing I want to make sure is that we redirect the function > > calls correctly in order > > to reduce double coding. > > This means on the one hand that we should call the Extended versions of > > each function > > from inside of the simpler ones (most default parameters for the Ex > > functions are > > on MSDN) and on the other hand that we unify all D3DXCreateTextureFromXXEx > > functions somehow. I don't know how Resources are stored internally, but I > > guess > > the simplest would be to redirect all of them to > > D3DXCreateTextureFromFileInMemory, i.e. > > when D3DXCreateTextureFromFile is called we read the file into memory and > > call the > > InMemory function. I hope this shouldn't be too hard to be applied to the > > resource function > > either. Of course, this should also be done at the corresponding Surface, > > Volume and > > cube texture functions. > > Also, I haven't looked too much into it yet, but I guess we could go even a > > step further > > and define the CreateTextuteFromXX calls like this: > > 1. Redirect to the corresponding D3DXCreateXFromFileInMemoryEx call > > 2. Call D3DXCheckXRequirements > > 3. Call IDirect3DDevice9::CreateTexture > > 4. Lock its surface > > 5. Call LoadSurfaceFromFileEx with it > > > > This would reduce most of our coding work on LoadSurfaceFromFileEx. > > However, there are still plenty of formats supported by the texturing > > functions > > and thus, plenty of work for us to do. IIRC we once came to the decision to > > use libraries like libpng or so to reduce that work, too, so we'd just need > > to implement formats like .dds. > > I can't remember what the differences are between the CreateTexture and > LoadSurface functions, but this is what I'd do for the LoadSurface functions: > > LoadSurfaceFromMemory (read data with the specified pixel format) > LoadSurfaceFromFileInMemory (parse image format, read actual data into > memory) > LoadSurfaceFromFile (open file, read contents into memory) > LoadSurfaceFromResource (open resource, read contents into memory) > LoadSurfaceFromSurface (read image data from a surface) > > This would mean two huge chunks of code: One which parses image formats > (LoadSurfaceFromFileInMemory), and one which handles all the resizing, > conversion, filtering and stuff (LoadSurfaceFromMemory).
Sorry that I'm replying that late, I was a bit busy when you wrote the reply and then nearly forgot about it. I'd agree with that design and I'll soon prepare a stub-layout for texture.c for after-code-freeze. However, have you finished the D3DXCheckTextureRequirements code meanwhile so we can start implementing the other functions? Best regards, Tony Unbegrenzter Speicher, Top-Spamschutz, 120 SMS und eigene E-MailDomain inkl. http://office.freenet.de/dienste/emailoffice/produktuebersicht/power/mail/index.html