Контекст, отрисовка, glfw
У меня есть класс кнопок, и обработка их нажатия происходит в отдельном потоке, в бесконечном цикле. Если я попытаюсь из этого потока отправлять каждый кадр кнопки на рисовку, то он мне выдаст ошибку, поскольку контекст в основном, как мне правильнее всего будет рисовать эти самые кнопки? Наработки кода кнопок
public class Button extends Thread {
public static int nameCount = 0;
public static String[] names = new String[512];
public static Hashtable<String, ButtonsObjects> buttons = new Hashtable<>();
public static Button btn = new Button();
public static void DeleteButton(String buttonName) {
buttons.remove(buttonName);
}
public static void CreateButton(int x, int y, String path, String name, Boolean visible) {
if (buttons.isEmpty() == true) {
btn.setDaemon(true);
btn.start();
}
ButtonsObjects button = new ButtonsObjects(false, visible, x, y, name, path);
buttons.put(name, button);
names[nameCount] = name;
nameCount++;
}
@Override
public void run() {
while (true) {
try {
for (int i = 0; i < nameCount; i++) {
// тут запросы на рисовку кнопок (?)
if (EventHandler.getRectangleClick(buttons.get(names[i]).x, buttons.get(names[i]).y, 0, 0, names[i]) == true) {
// тут должна быть смена состояния
}
}
}
catch(Exception e){
System.err.println(e);
}
}
}
}
Думаю, что постоянно передавать контекст не лучшая идея, и только ухудшит работу Доп вопрос: как правильно менять состояние переменной у объекта из hashtable? Спасибо!
Источник: Stack Overflow на русском