2013-06-28 7 views
0

Я пытаюсь изменить размер моего дисплея при изменении размера окна. Вот мой код:Изменение размера содержимого окна с помощью lwjgl

 if (Display.wasResized()) { 
      this.width = Display.getWidth(); 
      this.height = Display.getHeight(); 

      GL11.glViewport(0, 0, this.width, this.height); 
      GL11.glLoadIdentity(); 
      GL11.glMatrixMode(GL11.GL_PROJECTION); 
      GL11.glLoadIdentity(); 
      GL11.glOrtho(0.0f, this.width, 0.0f, this.height, 1.0f, -1.0f); 
      GL11.glMatrixMode(GL11.GL_MODELVIEW); 
      GL11.glLoadIdentity(); 
     } 

Когда я использую это, содержимое окна не изменить размер, он просто движется в направлении начала координат. Есть ли способ изменить размер содержимого?

ответ

1

Переделать сцену. OpenGL - это не граф сцены. Это «просто» карандаш, на который вы рисуете бумагу, предоставленную ОС. Когда вы что-то нарисовали, OpenGL не помнит об этом.

BTW: Вы не должны устанавливать размер видового экрана или матрицу проекции в обработчике изменения размера окна. Вы делаете это как подготовку в функции рисования, так же, как очистка фреймбуфера.

+0

Итак, какой код мне нужно поместить в обработчик изменения размера окна? –

+0

@JakeSumrican: Обычно вы просто устанавливаете несколько переменных, таких как ширина и высота. Также, если какая-то полная постобработка окон выполняется в конвейере рендеринга, вы изменяете размер промежуточных текстур. Короче говоря, вы готовите все, что зависит от размера окна. Но вы не делаете никаких вызовов, которые рисуют или оказывают прямое влияние на операции рисования. – datenwolf