If said engine doesn't come up with some state saving of its own (or some reset functionality), you can grab any state with the corresponding Get function (in this case OMGetDepthStencilState
(read the remarks: getter function usually AddRef()
the object in question so don't forget to Release()
when you reset it).
For your second question: When using a depth comparison of less (or less equal) it makes sense to start with a depth value at 1.0f (third parameter of ID3D11DeviceContext::ClearDepthStencilView
). Depth buffer values go from 0 to 1 (inclusive) so 1 is the maximum. If your depth buffer is cleared to 0, and you use a less comparison, nothing gets drawn, since no value can be less than 0
But of course other stuff has to be setup properly, too, e.g. a sensible projection.