Using XNA, is it possible to access the GameTime object before Update is called for the first time?
Can it be used in the game constructor, Initialize or LoadContent methods?
Using XNA, is it possible to access the GameTime object before Update is called for the first time?
Can it be used in the game constructor, Initialize or LoadContent methods?
I don't believe this is possible:
The GameTime object received by Draw and Update isn't technically owned by anyone, but is instead re-created each Game.Tick and passed to Update and Draw from there.
Internally, Tick fills the value of the Total/ElapsedRealTime properties based off of the current high performance counter value as reported by Stopwatch.GetTimestamp(). If the PC the program is running on does not have a high performance counter, then it returns DateTime.Now.Ticks.
The Game Time properties (as opposed to real-time) also use the Stopwatch.GetTimestamp, however elapsed time since application launch and last frame are computed internally and then filled in before GameTime is passed to Draw or Update - so there's no external way to compute those values directly.
Source: http://forums.create.msdn.com/forums/t/10587.aspx, bold mine. Also included there are several work arounds, similar to what you've already outlined though.