Контекст, отрисовка, glfw

Рейтинг: 0Ответов: 0Опубликовано: 26.02.2023

У меня есть класс кнопок, и обработка их нажатия происходит в отдельном потоке, в бесконечном цикле. Если я попытаюсь из этого потока отправлять каждый кадр кнопки на рисовку, то он мне выдаст ошибку, поскольку контекст в основном, как мне правильнее всего будет рисовать эти самые кнопки? Наработки кода кнопок

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? Спасибо!

Ответы

Ответов пока нет.