2015-01-21 2 views
0

Я создал простую программу в lwjgl и создал простой gui. Пока у меня есть рамка и панель. Но есть проблема. Потому что (дисплей 800x600), когда я делаю панель на панели (x, y, w, h) (0,0,64,64), все работает нормально, но когда я создаю ее в другом положении (x, y, где точка 0, 0 находится в левом верхнем углу), он отображает перемещенную панель. Capture of rendering Белое пространство - это моя панель, которая должна меняться, когда я нажимаю на нее мышь. Он создан на (417,417,64,64), но он отображается как-то вроде (90,90). Я предоставил шрифты, чтобы показать все его позиции. Синий квадрат, который я рисую на этом изображении, - это то, где он должен быть, и похоже, что панель есть, потому что пустое пространство меняет цвет, когда я перетаскиваю мышь там, но это пустое пространство должно быть там. Мой код выглядит так: Я добавляю все компоненты в HashMap как панели.Перемещенный рендер в рендере lwjgl

glColor3f(backgroundColor.getRed(), backgroundColor.getGreen(), 
       backgroundColor.getBlue()); 
     if (hasFocus()) { 
      glColor3f(1f, 0f, 0f); 
     } 
     glPushMatrix(); 
     glRecti(getX(), getY(), getWidth(), getHeight()); 
     glPopMatrix(); 

И InitGL метод:

glMatrixMode(GL_PROJECTION); 
     glLoadIdentity(); 
     glScalef(1.0f, 1.0f, 1.0f); 
     glOrtho(0, 800, 600, 0, 1, -1); 
     glFrustum(-1, 1, -1, 1, 0.0, 40.0); 
     glViewport(0, 0, Display.getWidth(), Display.getHeight()); 
     glMatrixMode(GL_MODELVIEW); 
     glEnable(GL_BLEND); 
     glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
     glShadeModel(GL_SMOOTH); 
+0

ты sure 'Display.getWidth() == 800 && Display.getHeight() == 600'? –

+0

Да. Я подтвердил это с помощью sysout в цикле. Это 800x600. Также он правильно читает мою мышь, потому что координаты в порядке (также cheked путем вызова sysout) – Levvy

ответ

1

glRecti не работает так, как ожидает, что координаты углов

так вместо этого вы должны сделать:

glRecti(getX(), getY(), getX()+getWidth(), getY()+getHeight()); 
+0

Спасибо. Я действительно не знаю, как это работает, что он рисовал что-то еще – Levvy

Смежные вопросы