Задать вопрос
@Maarv

Почему не работает передача контекста между приложениями?

Здравствуйте!
Нужно из одного приложения в другое передать контекст. Окно создаëтся при помощи функции:
w = glfwCreateWindow(width, height, "name", NULL, NULL).
При попытке во втором приложении вызвать glfwMakeContextCurrent(w) возникает исключение (указатель w передаëтся через файл).
Подскажите, пожалуйста, что я не так понимаю.
  • Вопрос задан
  • 21 просмотр
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++: Профессия + специализация + нейросети
    12 месяцев
    Далее
  • Skillbox
    Разработчик на C++
    7 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
wataru
@wataru Куратор тега C++
Разработчик на С++, экс-олимпиадник.
Указатель - это адрес, который работает только в адресном пространстве одного приложения. Все приложения независимы, у них у каждого свое адресное пространство и один и тот же адрес может хранить совершенно разные вещи в разных приложениях (есть исключения, но не будем в эти детали залезать).
Нельзя просто передать указатель (адрес) в другое приложение и там с ним работать.

В документации указано, что можно использовать OpenGL контекст другого окна, но возможно это относится только к окнам внутри одного приложения и тогда вашу задумку вообще нельзя осуществить как вы хотите.

Чтобы что-то делать с ресурсами другого приложения вам надо эти ресурсы передать средствами операционной системы, через хэндлы (на винде).
Попробуйте получить хендл окно с контекстом, потом как-то из него создать GLFWwindow (тут я не нашел, возможно ли это), и его уже использовать в качестве параметра для создания нового контекста, который окажется расшарен с предыдущим. Хендл искомого окна получайте через EnumWindows.

Но скорее всего ваша задумка невозможна.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы