-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Здравствуйте, форумчане. Проблема в том, что когда я нахожусь в оконном режиме, растянутым на весь экран, ножницы из opengl правильно обрезают зону рендера кнопок, и скролл работает правильно. Но стоит мне изменить разрешение (перейти в полноэкранный режим, изменить размер самого окна), то зона обрезания сдвигается (особенно вверх), хоть я учитываю GuiScaledHeight в расчёте координат.
Код для обрезки:
private void applyScissor(int x, int y, int width, int height) {
int scaleFactor = (int) window.getGuiScale();
int scaledX = x * scaleFactor;
int scaledY = (window.getGuiScaledHeight() - y - height) * scaleFactor;
int scaledWidth = width * scaleFactor;
int scaledHeight = height * scaleFactor;
GL11.glEnable(GL11.GL_SCISSOR_TEST);
GL11.glScissor(scaledX, scaledY, scaledWidth, scaledHeight);
}
Рендер категорий и кнопок с обрезанием:
public void render(MatrixStack ms, int x, int y, float ticks) {
// ... отрисовка ректов категорий
applyScissor(this.x, this.y + 16, this.width, this.height);
for(Button button : buttonList) {
button.render(ms, x, y, ticks);
}
GL11.glDisable(GL11.GL_SCISSOR_TEST);
}