Skip to main content
gamedev.net
🔒 Locked

fullscreen switch

Started by killan 22 replies 4.1k views
Original Post
killan
killan
before, sorry for my poor english. hi everybody, i work with C# and directx9 and i want to make a function to switch from windowed mode to fullscreen mode and inverse i have this to start my device (and this work well) :

DevPresentParameters = new PresentParameters();

DevPresentParameters.PresentationInterval = PresentInterval.Immediate;
DevPresentParameters.BackBufferCount = 1;

if (setup.pleinecran == true)
{
	GRAP.logs.Ajout("Ecran init> "+GRAP.GetDonnee(TypesDonnee.Langage, "err22"));

	DevPresentParameters.Windowed = false;

	this.FormBorderstyle = FormBorderstyle.None;
	//this.Size = setup.primaire_res;					//On sais pas si cette ligne est utile
	this.ClientSize = setup.primaire_res;			//La résolution
	DevPresentParameters.BackBufferHeight = this.ClientRectangle.Bottom - this.ClientRectangle.Top; //this.Size.Height;
	DevPresentParameters.BackBufferWidth = this.ClientRectangle.Right - this.ClientRectangle.Left; //this.Size.Width;
	DevPresentParameters.BackBufferFormat = setup.primaire_format;
}
else
{
	GRAP.logs.Ajout("Ecran init> "+GRAP.GetDonnee(TypesDonnee.Langage, "err23"));

	DevPresentParameters.Windowed = true;

	this.FormBorderstyle = FormBorderstyle.FixedDialog;
	this.Size = setup.primaire_res; //Taille externe, formulaire compris
}

GRAP.logs.Ajout("Ecran init> Paramètre présentation");
DevPresentParameters.SwapEffect = SwapEffect.Discard;

//Z-buffer
DevPresentParameters.EnableAutoDepthStencil = true; 
DevPresentParameters.AutoDepthStencilFormat = DepthFormat.D16;

//Le Device
GRAP.logs.Ajout("Ecran init> "+GRAP.GetDonnee(TypesDonnee.Langage, "err24"));
try
{
	try
	{
		GRAP.logs.Ajout("Ecran init> CreateFlags.HardwareVertexProcessing");
		device = new Device(0, DeviceType.Hardware, this, CreateFlags.HardwareVertexProcessing, DevPresentParameters);
	}
	catch
	{
		GRAP.logs.Ajout("Ecran init> CreateFlags.SoftwareVertexProcessing");
		device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, DevPresentParameters);
	}

	device.DeviceLost += new EventHandler(GRAP.onDeviceLost);
	device.DeviceReset += new EventHandler(GRAP.onDeviceReset);
	device.DeviceResizing += new CancelEventHandler(GRAP.onDeviceResizing);
	device.Disposing += new EventHandler(GRAP.onDisposing);
}
catch (Exception e)
{
	GRAP.logs.Ajout("Ecran init> "+GRAP.GetDonnee(TypesDonnee.Langage, "err25")+" : "+e.Message);
	GRAP.Status = GRA_Status.exit;
	return;
}





and for the switch function :

public void SwitchWindowedMode()
{
	logs.Ajout("GRA> SwitchWindowedMode");
	PresentParameters pres = ecran_primaire.DevPresentParameters;
	GRA_Setup setup = (GRA_Setup)GetDonnee(TypesDonnee.Objets, "setup");

	pres.Windowed = !pres.Windowed;
	pres.BackBufferHeight = ecran_primaire.ClientRectangle.Bottom - ecran_primaire.ClientRectangle.Top; //this.Size.Height;
	pres.BackBufferWidth = ecran_primaire.ClientRectangle.Right - ecran_primaire.ClientRectangle.Left; //this.Size.Width;

	if (pres.Windowed == false)
	{
		ecran_primaire.ClientSize = setup.primaire_res;			//La résolution
	}
	else
	{
		ecran_primaire.ClientSize = new Size(320,240);
		ecran_primaire.Size = setup.primaire_res;
		ecran_primaire.FormBorderstyle = FormBorderstyle.FixedDialog;
	}

	pres.BackBufferFormat = setup.primaire_format;

	ecran_primaire.device.Reset(pres);
}





this failed at the last line but the error message is just "error in the application" without more explanations can you help me ? thank you [Edited by - killan on May 18, 2006 5:14:28 AM]
Killan - www.daaboo.net
remigius
remigius
To get some decent error messages from DirectX, you have to switch to the Debug Runtime in the control panel (more info). To see the output that's generated by this debug runtime, you have to check the Enable Unmanaged Debugging on the Debug tab of your project's property sheet (right-click on project name, select properties). If you're using the Visual Studio 2005 Express Edition though, this option isn't available (at least it wasn't a month ago), so you're out of luck if that's the case.

Please put your code between [ source lang=c# ] ... [ /source ] tags (without the spaces). That way it should be a bit easier to read and the problem might be easier for us to find. At first glance, I'd say the fullscreen backbuffer size you specifiy isn't supported by your device, since the client rectangle excludes the region of the task bar iirc, giving you resolutions like 1024*738. You could try using System.Windows.Forms.Screen.Primary.Bounds to obtain a supported size for the fullscreen backbuffer.

Hope this helps :)
Orcy
Orcy
I think u have to dispose the device and create it new with the PresentParamters for the mode u wish. I guess Device.Reset() only works on a 'lost' device.
LowRad
LowRad
Quote:
Original post by Orcy
I think u have to dispose the device and create it new with the PresentParamters for the mode u wish. I guess Device.Reset() only works on a 'lost' device.


No, Reset can be used to changed the PresentParameters... its not necessary that the device is in LostState. If the call to Reset failed, the device is going to be in a lost state (check with CheckCooperativeLevel).

So, no need to dispose the device and recreate it.

Reset is the fastest way of switching between fullscreen and windowed mode.

Jonathan
LeGreg
LeGreg
Quote:
Original post by killan
this failed at the last line but the error message is just "error in the application" without more explanations


Bonjour,

before calling Reset you have to release all objects that are not created with the POOL_MANAGED, (that includes potentially textures, Surfaces, VB, stateblocks etc)

Make sure this is the case

LeGreg
killan
killan
Quote:
Original post by remigius
To get some decent error messages from DirectX, you have to switch to the Debug Runtime in the control panel (more info). To see the output that's generated by this debug runtime, you have to check the Enable Unmanaged Debugging on the Debug tab of your project's property sheet (right-click on project name, select properties).


i have test this but i haven't more detail about the error

but i will try this

Quote:
Original post by LeGreg
before calling Reset you have to release all objects that are not created with the POOL_MANAGED, (that includes potentially textures, Surfaces, VB, stateblocks etc)
Killan - www.daaboo.net
remigius
remigius
Quote:
i have test this but i haven't more detail about the error


If you have enabled unmanaged debugging, the additional information will be shown in the Visual Studio output window when debugging. I missed that myself for some time, so I thought I'd point it out [smile]
LowRad
LowRad
Salut toi moi tit cousin!

I had this problem once before. Even after going in the control panel, directx and cranking up the debug level to max And enabling the debug unmanaged code in the project, DirectX wasnt reporting any informations/error to my VS console.

If i remember right, it was a problem with my SDK installation. But this is only a guess, it makes so long.

If i remember for sure i'll confirm you what i did.

Humm... are you using MDX 2.0? (this is the only other thing i can think of, i'm not using it anymore, until they fix the bugs in it)

Jonathan
killan
killan
I use .net framework 1.1 and a code in C# language, DX 9.0c

thanks for help
Killan - www.daaboo.net
LowRad
LowRad
The .NET framework or the Managed DirectX?

I was talking about the Manager DirectX! If you got LoaderLock warning when starting your application in debug mode, you are using the MDX2.0!

Beside of that, you fix your problem?

Jonathan
killan
killan
sorry but i'm not understanding you.

i use both, my application use the framework .net 1.1 and i use too the DirectX api to write my graphic application, i supose that the managed directx

i haven't a message in debug mode at starting
Killan - www.daaboo.net
LowRad
LowRad
Bon...

Je disais il existe 2 version de la librairie DirectX pour C#.

La version 1.1 et la nouvelle version 2.0.

Moi quand javais ce problem (les erreurs/informations de directx qui ne s'affichent pas dans la console) ben c'est que j'utilisais la version 2.0 de la librairie de DirectX.

C'est pour ca que je te demandais si maintenant quand tu demarres ton application tu vois, dans la fenetre de sortie de Visual Studio "Output" toutes les informations comme ceci ...

Direct3D9: :====> ENTER: DLLMAIN(00ebd6e0): Process Attach: 0000129c, tid=00001270Direct3D9: :====> EXIT: DLLMAIN(00ebd6e0): Process Attach: 0000129cDirect3D9: (INFO) :Direct3D9 Debug Runtime selected.'XeonTestBed.exe': Loaded 'C:\WINDOWS\system32\uxtheme.dll', No symbols loaded.Direct3D9: (INFO) :======================= Hal HWVP device selectedDirect3D9: (INFO) :HalDevice Driver style 9Direct3D9: :DoneExclusiveModeDirect3D9: (INFO) :Failed to create driver indexbufferD3D9 Helper: Warning: Default value for D3DRS_POINTSIZE_MAX is 2.19902e+012f, not 1.44115e+017f.  This is ok.Direct3D9: (WARN) :Ignoring redundant SetRenderState - 7


Jonathan
killan
killan
évidemment en français c'est + simple lol

donc comme je disais moi j'utilise la 1.1 et non je ne vois pas ces lignes là, meme si j'ai suivis les instructions de remigius

merci à toi
Killan - www.daaboo.net
LowRad
LowRad
Wow... tu as alors vraiment un gros probleme ;)

Ce pas si grave en tant que tel, mais lorsque tu eprouves des difficultes (comme la, si ils ne sont pas encore regler) c'est beaucoup plus dur de trouver et identifier la source de celui ci.

Je te conseille fortement de trouver une solution a ce probleme. Puisque lorsque tu seras rendu plus loin dans le developpement de ton jeu/moteur cet outil va grandement t'aider. Mais, desole, je n'ai pas vraiment plus de conseils a ce niveau.

Ce que je peux te dire, c'est que j'ai deja eprouver ces problemes, mais maintenant ils sont regler et tant mieu pour moi ;). Mais, ca fait tellement longtemps de cela, j'ai reinstaller mon ordinateur depuis.

Donc, bonne chance a toi,
Jonathan
killan
killan
After try some modification with you help i have these messages :

Direct3D9: :Subclassing window 0013067aDirect3D9: :StartExclusiveModeDirect3D9: (ERROR) :The specified mode is unsupported. CreateDevice/Reset FailsDirect3D9: (ERROR) :Unable to set the new mode. CreateDevice/Reset FailsDirect3D9: (ERROR) :Reset failed and Reset/TestCooperativeLevel/Release are the only legal APIs to be called subsequentlyDirect3D9: :DoneExclusiveModeDirect3D9: :INACTIVE: 00000c54: Restoring original mode (1600x1200x22x75) at adapter index 0Direct3D9: :Unsubclassing window 0013067aDirect3D9: :Subclassing window 0013067aDirect3D9: :StartExclusiveModeDirect3D9: (ERROR) :The specified mode is unsupported. CreateDevice/Reset FailsDirect3D9: (ERROR) :Unable to set the new mode. CreateDevice/Reset FailsDirect3D9: (ERROR) :Reset failed and Reset/TestCooperativeLevel/Release are the only legal APIs to be called subsequentlyDirect3D9: :DoneExclusiveModeDirect3D9: :INACTIVE: 00000c54: Restoring original mode (1600x1200x22x75) at adapter index 0Direct3D9: :Unsubclassing window 0013067a


for more comprehention, here is the creation device code :

public Device device = null;public PresentParameters DevPresentParameters;public void InitializeGraphics(GRA_Setup setup){	//Paramètres du Device	GRAP.logs.Ajout("Ecran init> "+GRAP.GetDonnee(TypesDonnee.Langage, "err21")+"...");	DevPresentParameters = new PresentParameters();	DevPresentParameters.PresentationInterval = PresentInterval.Immediate;	DevPresentParameters.BackBufferCount = 1;	if (setup.pleinecran == true)	{		GRAP.logs.Ajout("Ecran init> "+GRAP.GetDonnee(TypesDonnee.Langage, "err22"));		DevPresentParameters.Windowed = false;		this.FormBorderStyle = FormBorderStyle.None;		//this.Size = setup.primaire_res;					//On sais pas si cette ligne est utile		this.ClientSize = setup.primaire_res;			//La résolution		DevPresentParameters.BackBufferHeight = this.ClientRectangle.Bottom - this.ClientRectangle.Top; //this.Size.Height;		DevPresentParameters.BackBufferWidth = this.ClientRectangle.Right - this.ClientRectangle.Left; //this.Size.Width;		DevPresentParameters.BackBufferFormat = setup.primaire_format;	}	else	{		GRAP.logs.Ajout("Ecran init> "+GRAP.GetDonnee(TypesDonnee.Langage, "err23"));		DevPresentParameters.Windowed = true;		this.FormBorderStyle = FormBorderStyle.FixedDialog;		this.Size = setup.primaire_res; //Taille externe, formulaire compris	}	GRAP.logs.Ajout("Ecran init> Paramètre présentation");	DevPresentParameters.SwapEffect = SwapEffect.Discard;	//Z-buffer	DevPresentParameters.EnableAutoDepthStencil = true; 	DevPresentParameters.AutoDepthStencilFormat = DepthFormat.D16;	//Le Device	GRAP.logs.Ajout("Ecran init> "+GRAP.GetDonnee(TypesDonnee.Langage, "err24"));	try	{		try		{			GRAP.logs.Ajout("Ecran init> CreateFlags.HardwareVertexProcessing");			device = new Device(0, DeviceType.Hardware, this, CreateFlags.HardwareVertexProcessing, DevPresentParameters);		}		catch		{			GRAP.logs.Ajout("Ecran init> CreateFlags.SoftwareVertexProcessing");			device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, DevPresentParameters);		}		device.DeviceLost += new EventHandler(GRAP.onDeviceLost);		device.DeviceReset += new EventHandler(GRAP.onDeviceReset);		device.DeviceResizing += new CancelEventHandler(GRAP.onDeviceResizing);		device.Disposing += new EventHandler(GRAP.onDisposing);	}	catch (Exception e)	{		GRAP.logs.Ajout("Ecran init> "+GRAP.GetDonnee(TypesDonnee.Langage, "err25")+" : "+e.Message);		GRAP.Status = GRA_Status.exit;		return;	}	//Paramètres généraux (à ajouter dans GRAK Setup)	device.SamplerState[0].MinFilter = TextureFilter.Linear;	device.SamplerState[0].MagFilter = TextureFilter.Linear;	device.SamplerState[0].MipFilter = TextureFilter.Linear;	GRAP.logs.Ajout("Ecran init> "+GRAP.GetDonnee(TypesDonnee.Langage, "err26"));}


here is the switch code :

public void SwitchWindowedMode(){	logs.Ajout("GRA> SwitchWindowedMode");	PresentParameters pres = ecran_primaire.DevPresentParameters;	logs.Ajout("GRA> SwitchWindowedMode actuel : "+pres.ToString());	GRA_Setup setup = (GRA_Setup)GetDonnee(TypesDonnee.Objets, "setup");	pres.Windowed = !pres.Windowed;	pres.BackBufferHeight = ecran_primaire.ClientRectangle.Bottom - ecran_primaire.ClientRectangle.Top; //this.Size.Height;	pres.BackBufferWidth = ecran_primaire.ClientRectangle.Right - ecran_primaire.ClientRectangle.Left; //this.Size.Width;	if (pres.Windowed == false)	{		ecran_primaire.ClientSize = setup.primaire_res;			//La résolution	}	else	{		ecran_primaire.ClientSize = new Size(320,240);		ecran_primaire.Size = setup.primaire_res;		ecran_primaire.FormBorderStyle = FormBorderStyle.FixedDialog;	}	logs.Ajout("GRA> SwitchWindowedMode modifié : "+pres.ToString());	pres.BackBufferFormat = setup.primaire_format;	try	{		ecran_primaire.device.Reset(pres);	}	catch (Exception e)	{		//Retour arrière		logs.Ajout("GRA> SwitchWindowedMode échoué : "+e.Message);		pres = ecran_primaire.DevPresentParameters;		try		{			ecran_primaire.device.Reset(pres);		}		catch (Exception e2)		{			logs.Ajout("GRA> SwitchWindowedMode restauration échouée");			//fin du programme			Status = GRA_Status.exit;		}	}}



have you an idea about the probleme ? i understand that the mode is unsuported but why

here is return of my proper log fil about this code : logs.Ajout("GRA> SwitchWindowedMode actuel : "+pres.ToString());

GRA> SwitchWindowedModeGRA> SwitchWindowedMode actuel : MultiSampleQuality: 0PresentationInterval: ImmediateFullScreenRefreshRateInHz: 0PresentFlag: NoneAutoDepthStencilFormat: D16EnableAutoDepthStencil: TrueWindowed: TrueDeviceWindowHandle: 0DeviceWindow: SwapEffect: DiscardMultiSample: NoneBackBufferCount: 1BackBufferFormat: X8R8G8B8BackBufferHeight: 743BackBufferWidth: 1018ForceNoMultiThreadedFlag: FalseGRA> OnDeviceResizingGRA> OnDeviceResizing : cancelGRA> OnDeviceResizingGRA> OnDeviceResizing : cancelGRA> SwitchWindowedMode modifié : MultiSampleQuality: 0PresentationInterval: ImmediateFullScreenRefreshRateInHz: 0PresentFlag: NoneAutoDepthStencilFormat: D16EnableAutoDepthStencil: TrueWindowed: FalseDeviceWindowHandle: 0DeviceWindow: SwapEffect: DiscardMultiSample: NoneBackBufferCount: 1BackBufferFormat: X8R8G8B8BackBufferHeight: 743BackBufferWidth: 1018ForceNoMultiThreadedFlag: FalseGRA> OnDeviceLostGRA> SwitchWindowedMode échoué : Erreur de l'application.GRA> OnDeviceLostGRA> SwitchWindowedMode restauration échouée


[Edited by - killan on May 18, 2006 4:55:49 AM]
Killan - www.daaboo.net
remigius
remigius
Ok, I have two new guesses for you :)

Quote:
Direct3D9: (ERROR) :Reset failed and Reset/TestCooperativeLevel/Release are the only legal APIs to be called subsequently


Going from this line, it seems you are doing some unsupported things during device reset. Are you perhaps calling SwitchWindowedMode() from another thread (ie through a .NET event, like the KeyEvent) while you are still rendering in your main loop?

Quote:
ERROR) :The specified mode is unsupported. CreateDevice/Reset Fails


And this seems to confirm what I suggested earlier, that the backbuffer size (1018x743) is not support in fullscreen (non-windowed) mode. I'd have to check to make sure if D3D is indeed this picky when it comes to fullscreen resolutions, but if I recall correctly, it is. Try using the width and height from the from System.Windows.Forms.Screen.Primary.Bounds rectangle as the size for your backbuffer, this should always be supported.

Hope this helps :)
killan
killan
so i execute the switchmode only before/after the draw main loop to be sur ?

and i correct the size to the back buffer, off course it's not a standard size i understand it.

i will try this and post the result tomorrow

thanks a lot
Killan - www.daaboo.net
killan
killan
this is the result with modification :

i have made the switch mode after the main loop of draw
i have correct the size of the back buffer with standard size

Direct3D9: :Subclassing window 00050284Direct3D9: :StartExclusiveModeDirect3D9: :WM_DISPLAYCHANGE: 1024x768x32Direct3D9: (INFO) :Failed to create driver indexbufferDirect3D9: :DoneExclusiveModeDirect3D9: :INACTIVE: 00000648: Restoring original mode (1600x1200x22x75) at adapter index 0Direct3D9: :Window 0003003c is on top of us!!Direct3D9: :WM_DISPLAYCHANGE: 1600x1200x32Direct3D9: :Unsubclassing window 00050284Direct3D9: (INFO) :Failed to create driver indexbuffer


but i'm not understand : Direct3D9: (INFO) :Failed to create driver indexbuffer

and Direct3D9: :Window 0003003c is on top of us!! in restoration ? :s

the last code of switch mode method is :

public void SwitchWindowedModeReady(){	logs.Ajout("GRA> SwitchWindowedMode");	PresentParameters pres = ecran_primaire.DevPresentParameters;	PresentParameters pressave = (PresentParameters)pres.Clone();	logs.Ajout("GRA> SwitchWindowedMode actuel : "+pres.ToString());	GRA_Setup setup = (GRA_Setup)GetDonnee(TypesDonnee.Objets, "setup");	pres.Windowed = !pres.Windowed;		if (pres.Windowed == false)	{		ecran_primaire.FormBorderStyle = FormBorderStyle.None;		ecran_primaire.Size = setup.primaire_res;			//La résolution		pres.BackBufferHeight = setup.primaire_res.Height;		pres.BackBufferWidth = setup.primaire_res.Width;	}	else	{		ecran_primaire.ClientSize = new Size(320,240);		ecran_primaire.FormBorderStyle = FormBorderStyle.FixedDialog;		ecran_primaire.Size = setup.primaire_res;		pres.BackBufferHeight = ecran_primaire.ClientRectangle.Bottom - ecran_primaire.ClientRectangle.Top; //this.Size.Height;		pres.BackBufferWidth = ecran_primaire.ClientRectangle.Right - ecran_primaire.ClientRectangle.Left; //this.Size.Width;	}	logs.Ajout("GRA> SwitchWindowedMode modifié : "+pres.ToString());	pres.BackBufferFormat = setup.primaire_format;	try	{		ecran_primaire.device.Reset(pres);		ecran_primaire.DevPresentParameters = pres; //On accepte la solution	}	catch (Exception e)	{		//Retour arrière		logs.Ajout("GRA> SwitchWindowedMode échoué : "+e.Message);		logs.Ajout("GRA> SwitchWindowedMode restauré : "+pressave.ToString());		try		{			ecran_primaire.device.Reset(pressave);		}		catch //(Exception e2)		{			logs.Ajout("GRA> SwitchWindowedMode restauration échouée");			//fin du programme			Status = GRA_Status.exit;		}	}	CanSwitchMode = false;}


my log file say :

GRA> SwitchWindowedModeGRA> SwitchWindowedMode actuel : MultiSampleQuality: 0PresentationInterval: ImmediateFullScreenRefreshRateInHz: 0PresentFlag: NoneAutoDepthStencilFormat: D16EnableAutoDepthStencil: TrueWindowed: TrueDeviceWindowHandle: 0DeviceWindow: SwapEffect: DiscardMultiSample: NoneBackBufferCount: 1BackBufferFormat: X8R8G8B8BackBufferHeight: 743BackBufferWidth: 1018ForceNoMultiThreadedFlag: FalseGRA> OnDeviceResizingGRA> OnDeviceResizing : cancelGRA> OnDeviceResizingGRA> OnDeviceResizing : cancelGRA> OnDeviceResizingGRA> OnDeviceResizing : cancelGRA> OnDeviceResizingGRA> OnDeviceResizing : cancelGRA> OnDeviceResizingGRA> OnDeviceResizing : cancelGRA> OnDeviceResizingGRA> OnDeviceResizing : cancelGRA> SwitchWindowedMode modifié : MultiSampleQuality: 0PresentationInterval: ImmediateFullScreenRefreshRateInHz: 0PresentFlag: NoneAutoDepthStencilFormat: D16EnableAutoDepthStencil: TrueWindowed: FalseDeviceWindowHandle: 0DeviceWindow: SwapEffect: DiscardMultiSample: NoneBackBufferCount: 1BackBufferFormat: X8R8G8B8BackBufferHeight: 768BackBufferWidth: 1024ForceNoMultiThreadedFlag: FalseGRA> OnDeviceLostGRA> SwitchWindowedMode échoué : La référence d'objet n'est pas définie à une instance d'un objet.GRA> SwitchWindowedMode restauré : MultiSampleQuality: 0PresentationInterval: ImmediateFullScreenRefreshRateInHz: 0PresentFlag: NoneAutoDepthStencilFormat: D16EnableAutoDepthStencil: TrueWindowed: TrueDeviceWindowHandle: 0DeviceWindow: SwapEffect: DiscardMultiSample: NoneBackBufferCount: 1BackBufferFormat: X8R8G8B8BackBufferHeight: 743BackBufferWidth: 1018ForceNoMultiThreadedFlag: FalseGRA> OnDeviceLostGRA> SwitchWindowedMode restauration échouée
Killan - www.daaboo.net
killan
killan
Hi,

abnormally if i start my application before in fullscreen mode i can switch in windowed mode AND return in fullscreen mode

the output say again Direct3D9: (INFO) :Failed to create driver indexbuffer but it seem is not important ?

an idea ?
Killan - www.daaboo.net
killan
killan
It seem it's ok now after move these line :

DevPresentParameters.BackBufferHeight = setup.primaire_res.Height; //this.ClientRectangle.Bottom - this.ClientRectangle.Top; //this.Size.Height;
DevPresentParameters.BackBufferWidth = setup.primaire_res.Width; //this.ClientRectangle.Right - this.ClientRectangle.Left; //this.Size.Width;
DevPresentParameters.BackBufferFormat = setup.primaire_format;

for general construction of deviceparameters and not for only fullscreen mode

i hope this continue to run correctly in the futur (backup time lol)

thank all for your help
Killan - www.daaboo.net

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.