Ho sistemato le cose in modo che premendo un tasto si attiva il PhotoMode e si ha un "click" sul file frame.bmp.
codice:
protected override void Draw(GameTime gametime)
{
if (PhotoMode)
GraphicsDevice.SetRenderTarget(renderTarget);
............
if (PhotoMode)
{
GraphicsDevice.SetRenderTarget(null);
shadowMap = (Texture2D)renderTarget;
shadowMap.SaveAsJpeg(stream, RisX, RisY);
System.Drawing.Bitmap b = new System.Drawing.Bitmap(stream);
b.Save(@"C:\frame.bmp");
PhotoMode = false;
}
}
Mi sono accorto, però, che posso fare una sola foto nel corso di ogni esecuzione del programma. Nel runtime ogni click successivo non modifica la prima frame.bmp ottenuta! Se voglio una foto diversa devo rieseguire il programma. Ho tentato 1000 soluzioni, compresi array di shadowMap, array di renderTarget, array di frame.bmp....ho pure provato a spostare le costruzioni di renderTarget in Draw() anzichè in Initialize() o LoadContent() ma niente....