2016-08-09 3 views
0

J'avais des problèmes faisant mon programme aller avec plein écran:Comment utiliser le DisplayMode LWJGL correct en plein écran?

Display.setFullscreen(true); 

... mais la réponse suivante m'a aidé: LWJGL Fullscreen not working

Cette réponse a suggéré que j'itérer tous les DisplayModes disponibles et trouver la compatibilité ceux Voici le code que j'ai actuellement:

if (!fullscreen) 
    Display.setDisplayMode(new DisplayMode(width, height)); 
else { 
    DisplayMode displayMode = null; 
    DisplayMode[] modes = Display.getAvailableDisplayModes(); 
    ArrayList<String> compatibleModes = new ArrayList<String>(); 
    for (int i = 0; i < modes.length; i++) { 
     System.out.println("Mode "+i+": "+modes[i].toString()); 
     if (modes[i].getWidth() == width && modes[i].getHeight() == height 
       && modes[i].isFullscreenCapable()) { 
      displayMode = modes[i]; 
      compatibleModes.add(modes[i].toString()); 
     } 
    } 
    if(compatibleModes.isEmpty()){ 
     System.out.println("No compatible display modes!"); 
     System.exit(-1); 
    } 
    System.out.println("Display Modes :: "+modes.length+" Total :: "+compatibleModes.size()+" Compatible :: "+displayMode.toString()+" Selected"); 
    for (String string : compatibleModes) { 
     System.out.println("Compatible: "+string); 
    } 
    Display.setDisplayMode(displayMode); 
    Display.setFullscreen(true); 
} 
Display.create(new PixelFormat(), attribs); 

Mon journal de la console montre: (je l'ai omis certains modes non pertinents pour la clarté)

Mode 0: 1920 x 1080 x 32 @24Hz 
Mode 5: 1920 x 1080 x 32 @23Hz 
Mode 18: 1280 x 1024 x 32 @60Hz 
Mode 19: 1920 x 1080 x 32 @59Hz 
Mode 20: 1920 x 1080 x 32 @60Hz 
Mode 21: 1920 x 1080 x 32 @50Hz 
Mode 23: 1920 x 1200 x 32 @59Hz 
Mode 25: 1920 x 1200 x 32 @60Hz 
Mode 26: 1768 x 992 x 32 @24Hz 
Mode 28: 1920 x 1440 x 32 @59Hz 
Mode 29: 2560 x 1440 x 32 @59Hz <-- I have a 1440p monitor, why is this NOT compatible? 
Mode 30: 1280 x 800 x 32 @60Hz 
Mode 31: 1920 x 1440 x 32 @60Hz 
Mode 49: 1600 x 1200 x 32 @59Hz 
Mode 50: 1600 x 1200 x 32 @60Hz 
Display Modes :: 53 Total :: 3 Compatible :: 1280 x 720 x 32 @60Hz Selected 
Compatible: 1280 x 720 x 32 @50Hz 
Compatible: 1280 x 720 x 32 @59Hz 
Compatible: 1280 x 720 x 32 @60Hz 

jeux Plein écran fonctionnent bien sur mon ordinateur à 1440p, donc pourquoi le mode n'est pas disponible je ne suis pas sûr. Quand je lance le programme, l'écran est très flou.

Comment puis-je résoudre ce problème? Merci d'avance.

Répondre

1

Peut-être essayer en utilisant

Display.setDisplayModeAndFullscreen(Display.getDesktopDisplayMode()); 

Même si elle ne résout pas le problème de 1440p, il est encore une manière beaucoup plus propre d'obtenir un plein écran DisplayMode.