x11modesd.inc 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. Type
  2. TX11Modes = Class(TObject)
  3. Private
  4. FDisplay : PDisplay;
  5. FScreen : cint;
  6. Protected
  7. Function GetWidth : Integer; Virtual; Abstract;
  8. Function GetHeight : Integer; Virtual; Abstract;
  9. Public
  10. Constructor Create(ADisplay : PDisplay; AScreen : cint); Virtual;
  11. Procedure GetModes(Var AModes : TPTCModeDynArray; ACurrentDesktopFormat : TPTCFormat); Virtual; Abstract;
  12. Procedure SetBestMode(AWidth, AHeight : Integer); Virtual; Abstract;
  13. Procedure RestorePreviousMode; Virtual; Abstract;
  14. Property Width : Integer Read GetWidth;
  15. Property Height : Integer Read GetHeight;
  16. End;
  17. TX11ModesNoModeSwitching = Class(TX11Modes)
  18. Private
  19. FWidth, FHeight : Integer;
  20. Protected
  21. Function GetWidth : Integer; Override;
  22. Function GetHeight : Integer; Override;
  23. Public
  24. Constructor Create(ADisplay : PDisplay; AScreen : cint); Override;
  25. Procedure GetModes(Var AModes : TPTCModeDynArray; ACurrentDesktopFormat : TPTCFormat); Override;
  26. Procedure SetBestMode(AWidth, AHeight : Integer); Override;
  27. Procedure RestorePreviousMode; Override;
  28. End;
  29. {$IFDEF ENABLE_X11_EXTENSION_XRANDR}
  30. TX11ModesXrandr = Class(TX11Modes)
  31. Private
  32. FRoot : TWindow;
  33. FXRRConfig : PXRRScreenConfiguration;
  34. Protected
  35. Function GetWidth : Integer; Override;
  36. Function GetHeight : Integer; Override;
  37. Public
  38. Constructor Create(ADisplay : PDisplay; AScreen : cint); Override;
  39. Destructor Destroy; Override;
  40. Procedure GetModes(Var AModes : TPTCModeDynArray; ACurrentDesktopFormat : TPTCFormat); Override;
  41. Procedure SetBestMode(AWidth, AHeight : Integer); Override;
  42. Procedure RestorePreviousMode; Override;
  43. End;
  44. {$ENDIF ENABLE_X11_EXTENSION_XRANDR}
  45. {$IFDEF ENABLE_X11_EXTENSION_XF86VIDMODE}
  46. TX11ModesXF86VidMode = Class(TX11Modes)
  47. Private
  48. FModeList : PPXF86VidModeModeInfo;
  49. FModeListCount : cint;
  50. FSavedMode : PXF86VidModeModeLine;
  51. FSavedDotClock : cint;
  52. FWidth, FHeight : Integer;
  53. Procedure RetrieveModeList;
  54. Function FindNumberOfBestMode(AWidth, AHeight : Integer) : Integer;
  55. Protected
  56. Function GetWidth : Integer; Override;
  57. Function GetHeight : Integer; Override;
  58. Public
  59. Constructor Create(ADisplay : PDisplay; AScreen : cint); Override;
  60. Destructor Destroy; Override;
  61. Procedure GetModes(Var AModes : TPTCModeDynArray; ACurrentDesktopFormat : TPTCFormat); Override;
  62. Procedure SetBestMode(AWidth, AHeight : Integer); Override;
  63. Procedure RestorePreviousMode; Override;
  64. End;
  65. {$ENDIF ENABLE_X11_EXTENSION_XF86VIDMODE}