I am just coming back to my project after a bit of a hiatus. Where I left off was working on incorporating graphics files (.BMP, .PNG mostly) into my game without having to rely on accessing the hard disk each and every time I call the graphics up. Someone here helped me out with this (Adeyblue) and I was able to get it functional.
What I ended up doing was to add my graphics files to the *.rc, then go into the *.rc file and change their types from BITMAP or PNG to RCDATA
///////////////////////////////////////////////////////////////////////////// // // RCDATA // IDB_BITMAP2 RCDATA "C:\\filepath"
And from here, I call up the resources in the main like so:
ID3D10Texture2D* texture2D=0; ID3D10Resource* pD3D10Resource=0; HRSRC hResource = FindResource(hInstance, MAKEINTRESOURCE(IDB_BITMAP2), RT_RCDATA); HGLOBAL hResourceData = LoadResource(hInstance, hResource); PVOID data = LockResource(hResourceData); DWORD dataSize = SizeofResource(hInstance, hResource); hResult = D3DX10CreateTextureFromMemory(pD3DDevice, data, dataSize, 0, 0, &pD3D10Resource, 0);
What I want to do now is incorporate tables of sprites, map tiles, etc. all into one or two files that I will be using. This makes the most sense for animations as all I would need to do is change the index to the next animation frame. Using this method, I would have to load an entire file into memory, then copy only the specific regions that I want to display.
My question is, does it make sense to load all of those graphics (sprites, tiles, etc.) into memory once and have them tie up system memory until the *.exe terminates? Or is there a different way to access the graphics so I can load only the parts I want into memory? Alternatively, do you have any suggestions as to a different approach altogether?