Я создал простую программу в lwjgl и создал простой gui. Пока у меня есть рамка и панель. Но есть проблема. Потому что (дисплей 800x600), когда я делаю панель на панели (x, y, w, h) (0,0,64,64), все работает нормально, но когда я создаю ее в другом положении (x, y, где точка 0, 0 находится в левом верхнем углу), он отображает перемещенную панель. Белое пространство - это моя панель, которая должна меняться, когда я нажимаю на нее мышь. Он создан на (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);
ты sure 'Display.getWidth() == 800 && Display.getHeight() == 600'? –
Да. Я подтвердил это с помощью sysout в цикле. Это 800x600. Также он правильно читает мою мышь, потому что координаты в порядке (также cheked путем вызова sysout) – Levvy