Code & graphics

Debug full-screen sul monitor secondario

by on Nov.08, 2011, under 2D, 3D, Tutorials, XNA

PoorOkayGoodGreatAwesome (No Ratings Yet)
Loading ... Loading ...

Per meglio rendersi conto della reale ottimizzazione del codice scritto alcune volte è necessario eseguire l’applicazione XNA in modalità full-screen, tuttavia se si è in fase di debug e se si possiede un secondo monitor è ottimale avere l’applicazione che occupa il monitor secondario in modo da lasciare quello principale libero per la visulizzazione dell’interfaccia di Visual Studio nel caso siano impostati dei breakpoints.

Con poche riche di codice ed un event handler che controlla quando viene inizializzato il device di rendering è possibile scegliere su quale schermo indirizzare l’output di XNA.

// Controlla se esiste uno schermo secondario.
if (GraphicsAdapter.Adapters.Count > 1)
{
	graphics.IsFullScreen = true;
	graphics.PreparingDeviceSettings += new EventHandler(graphics_PreparingDeviceSettings);
}

Il codice precedente va aggiunto nel costruttore della classe principale di un gioco XNA (quella derivata da Microsoft.Xna.Framework.Game); quello successivo deve essere inserito come metodo all’interno della stessa classe.

///<summary>
/// Modifica i parametri per inizializzare il secondo display.
/// </summary>
///The sender.
///Parameters to modify.
private void graphics_PreparingDeviceSettings(object sender, PreparingDeviceSettingsEventArgs e)
{
	e.GraphicsDeviceInformation.Adapter = GraphicsAdapter.Adapters[1];
	DisplayMode dm = GraphicsAdapter.Adapters[1].CurrentDisplayMode;

	e.GraphicsDeviceInformation.PresentationParameters.BackBufferWidth = dm.Width;
	e.GraphicsDeviceInformation.PresentationParameters.BackBufferHeight = dm.Height;

	//e.GraphicsDeviceInformation.PresentationParameters.FullScreenRefreshRateInHz = dm.RefreshRate;
}

Nel metodo precedente la linea di codice commentata deve essere utilizzata nelle versioni di XNA precedenti la 4.0.

:, ,

1 Comment for this entry

Leave a Reply

Captcha Captcha Reload