Jump to content
  • Advertisement
Sign in to follow this  
RLS0812

Dynamically Load Entire Folder Of Textures At One Time

This topic is 2188 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I have recently started playing around with XNA and have run into a problem.
In all the tutorials / help guides I have read, they tell you to "hard code" every texture / image your going to use.

My project has hundreds of textures, which change all the time - Is there a way to load an entire file at once, and can you provide a working example of how to do this in XNA 4.0 ?

Thanks.

Share this post


Link to post
Share on other sites
Advertisement
The ContentManager in XNA is the main route from disk contents to game memory for every asset you want to use. There are a couple options:

1) Write your own importer for the ContentManager that takes a folder name and processes all the internal contents
2) Don't mess with the ContentManager classes, but write utility classes/methods that do dynamic loading/unloading of content and simplify the work for you a bit (these will still have to call ContentManager functions at some level)

The XNA Framework provides high-level but simple and straightforward utilities. Tutorials are only going to target the basic cases for these utilities to show how they're used. It's the difference between "how to swing a hammer" and "how to use a hammer to build a victorian-era gazebo". It's up to the programmer to use those basic tools to build something more complex and fitting to their particular requirements. You could potentially google around for open source XNA projects and see how they set up any kind of abstract asset manager pipeline. I would expect asset I/O to be coupled with game state management (for example, on level switching).

When you say "hundreds of textures which change all the time" are you referring to changing the individual textures' contents, or swapping out textures currently in use?

Edit: Spoke from experience, looks like there are some utility methods that let you deal with filestreams directly, see later post. Edited by BCullis

Share this post


Link to post
Share on other sites
I am referring to a 2D level editor, that accepts custom .png textures from the user.
As it is written right now, each user has 6 private resource files ( unlimited textures in each one), and can have unlimited shared resource files ( downloaded from server ).

ContentManager and pipeline searches in Google isn't turning up anything useful as far as dynamic loading / unloading

Share this post


Link to post
Share on other sites
Found a link to someone suggesting Texture2D.FromStream, that would let you avoid the need for knowing the asset's "friendly name" at compile time

Note: This won't work on the XBox. Edited by BCullis

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!