В настоящее время я настраиваю код пиксельного шейдера, написанный на C ++ для компьютерной игры. Мне нужен способ сохранить глобальное значение (целое число или число с плавающей запятой) таким образом, чтобы его можно было получить позже (в том же процессе). Поскольку во время выполнения кажется, что все выполняется «без сохранения состояния», простое объявление и использование статической переменной (переменной класса) не поможет, как я обычно поступал бы в этой ситуации.
Таким образом, я натолкнулся на идею сохранить свое глобальное значение по определенному адресу памяти и получить его оттуда позже. Моя проблема в том, что я не знаю, возможно ли это вообще и как это сделать. Я прочитал эти вопросы, но пока не нашел ответа:
Создать новый объект C ++ по определенному адресу памяти?
Указатель на определенный фиксированный адрес
Назначение определенного адреса памяти из другой программы , и изменив его значение
Присвойте значение определенному адресу
Возможно ли это даже в Windows Vista или 7, и если да, то как? У меня нет возможности включать какую-либо библиотеку, но мне нужно добиться чего-либо с помощью встроенных функций C ++.
Если это не (или нелегко) достижимо, существуют ли альтернативные способы хранения некоторого значения действительно глобально (не как переменная класса), чтобы к нему могли получить доступ другие классы / экземпляры в том же процессе? Может быть, какой-то кеш сеанса или приложения, как в .NET или Java?
Любая помощь будет оценена по достоинству.