I notice that the TextureCollection ‘Textures‘ of GraphicsDevice has a private field _maxTextures which appears to have a value 16 when inspected in the debugger (at least in HiDef profile on my current machine), but I can’t find any place where this is either documented or queryable.
Is there a safe way of knowing which indices of this object can be accessed, or under what circumstances this is liable to change?
Not sure why you need that. Usually there is no specific limit to how many textures you use. But “have” can mean different things. You can use as many textures as you have memory.
My guess is, that this property somehow referes to the amount of textures bound at the same time. For example in your active shader for multtexturing. Before XNA 4.0 you coud access this via
now the caps are completely removed and its assured depending on the profile you use. Reach or HiDef. Afaik in these profiles the limits are somewhat hardcoded or predefined and can’t be changed.