получение текстурной картинки для opengl через файл ресурсов (c ++ / visual studio 2008) - PullRequest
1 голос
/ 17 ноября 2010

при создании нового проекта opengl в Visual Studio 2008 вы получаете три папки: одну для заголовочных файлов, одну для исходных файлов и одну для файлов ресурсов.

Можно ли поместить изображение jpg в файлы ресурсов, а затем создать ссылку на него, чтобы загрузить его в качестве текстуры? я хочу загрузить изображения jpg в качестве текстур, но я хочу сделать это через файлы ресурсов, чтобы exe-файл отладки содержал эти файлы.

как я могу ссылаться на картинки, которые я помещаю в файлы ресурсов?

Ответы [ 2 ]

1 голос
/ 17 ноября 2010

В resource view проекта щелкните правой кнопкой мыши yourproject.rc.Нажмите кнопку Import....Выберите файлы JPEG, которые вы хотите вставить.Когда он попросит вас назвать тип, назовите его что-то вроде «JPEG».Оттуда JPEG будет скомпилирован в ваш исполняемый файл.

Чтобы загрузить его, вы используете FindResource, чтобы получить дескриптор ресурса, затем LoadResource чтобы загрузить его в память, затем LockResource, чтобы получить его адрес.Оттуда вы можете использовать обычный JPEG-декодер, чтобы получить его в форме, которую вы можете использовать в качестве текстуры.Кроме того, вы можете скачать DevIL , чтобы справиться почти со всем этим для вас.

0 голосов
/ 17 ноября 2010

Полагаю, если вы связываете текстуру как ресурс, она будет храниться в вашем .exe файле .Это не часто используемое решение - обычно вы хотите хранить ресурсы в отдельной папке (или файле архива / VFS) рядом с .exe - тогда текстура будет загружена из этого файла после запуска вашей программы.Это также означает, что вам не придется перекомпилировать большой файл .exe при замене или изменении текстуры.Итак, мой ответ на ваш первый вопрос - нет, это не реально, если вам не нужно иметь все приложение с ресурсами в одном .exe.

Если вам нравится последнийОпция с файлами (которую я рекомендую), то самый простой способ использовать текстуру из файла - это использовать библиотеку загрузчика, такую ​​как SOIL , которая упрощает загрузку текстуры OpenGL из любого формата в одну строку кода.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...