OpenGL (4.) - FullScreen

V tomto článku vám ukážu, jak se lze v OpenGL jednoduče přepnout do FullScreen modu. Stačí jen jedna procedura, kterou zavoláte s parametrem požadovaného rozlišení a počtem bitů na pixel.

Do FullScreen modu se přepnete pomocí této procedury,

procedure TForm1.SetFullScreen(SizeX,SizeY,Bits:longint);
var dmScreenSettings: DEVMODE;
begin
  ZeroMemory( @dmScreenSettings, sizeof( DEVMODE ) );
  dmScreenSettings.dmSize := sizeof( DEVMODE );
  dmScreenSettings.dmPelsWidth  := SizeX; // Width
  dmScreenSettings.dmPelsHeight := SizeY; // Height
  dmScreenSettings.dmFields     := DM_PELSWIDTH or DM_PELSHEIGHT;
  dmScreenSettings.dmBitsPerPel := Bits;

  // Switch To Fullscreen Mode  
  ChangeDisplaySettings(dmScreenSettings, CDS_FULLSCREEN); 

  Form1.WindowState := wsMaximized;
end;

kterou stačí zavolat s parametrem (šířka obrazovky, výška obrazovky, barevná hloubka). např SetFullScreen(640, 480, 16) přepne aplikaci do rozličení 640*480 v 16 bitech na pixel.

procedure TForm1.FormDestroy(Sender: TObject);
begin
  wglDeleteContext(hRC);
  RestoreMode;
end;

Před ukončením nezapomeňte zavolat proceduru RestoreMode, která vrátí původní nastavení obrazovky.

procedure TForm1.RestoreMode;
begin
  ChangeDisplaySettings(DEVMODE(nil^), 0);
end;

Za samozřejmost považuji, že budete mít všechny procedury nadefinovány:

type
  TForm1 = class(TForm)
    procedure FormDestroy(Sender: TObject);  
  private
    procedure SetFullScreen(SizeX,SizeY,Bits:longint);
    procedure RestoreMode;
  end;

Vyšlo 09.12.2001, v blogu: 0 1 2 3 4 5 6 7 8

Děkuji, že jste se rozhodl(a) přečíst tento článek. Budu rád i za komentář. Pokud Vás tento článek zaujal a rádi byste jej doporučili ostatním, podpořte mně prosím tím, že věnujete minutku svého času a uděláte mi reklamu na linkuj.cz, vybrali.sme.sk či jagg.cz. Přeji příjemné čtení

Poslední články

Diskuse k blogu

Zatím nikdo nevložil komentář. Chcete být první? Přidání příspěvku
©PC-guru.cz 2000-2008 | Optimalizováno pro 1024*768