Skip to content

Курс по компьютерной графике

Notifications You must be signed in to change notification settings

alexey-malov/cg-course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cg-course

Курс по компьютерной графике

Как отправлять Pull Request с обновлённым примером:

  1. Пример должен собираться на компьютере преподавателя в Visual Studio 2022.
  2. Пример должен собираться без ошибок и предупреждений на 3 (а еще лучше, на 4) уровне warning-ов. В Debug/Release, Win32 и x64.
  3. Он должен быть самодостаточным. Для его использования не должна требоваться предварительная установка библиотек (отличных от устанавливающихся с visual studio). Сторонние библиотеки, если они нужны, должны поставляться одним из следующих способов:

a) Через встроенный в Visual Studio менеджер пакетов nuget. Это работает, например, с boost или WTL. Можно посмотреть как сделано в примере labs\01\samples\sample08_handling-wm_paint-wtl (репозиторий cg-course)

б) Через менеджер пакетов conan и систему сборки cmake. Для этого вам надо будет поколдовать. Возможно, я в выходные успею сделать пример. А возможно, нет.

в) Через git submodule (т.е. когда в какой-то из папочек вытягивается сторонний репозиторий на гитхабе)

г) Через копию библиотеки. Можно посмотреть пример labs\06\samples\01_simple_vertex_shader в репозитории cg-course. Там библиотека GLEW с необходимыми файлами содержится прямо в каталоге libs.

Вариант г) подходит для сравнительно небольших библиотек (не более 10 МБ). То есть boost таким образом затаскивать не надо (либо через nuget, либо через conan+cmake).

  1. Портируемый пример на C++ желательно поместить в существующий solution в папке примеров к лабораторной, а не создавать для него новую подпапку с примером. Так их будет легче найти, и будет более эффективно использоваться место на диске, если для зависимостей используется nuget (каждый solution использует свой кэш)

  2. Важно: Если пример требует для своей работы файлы изображений, шейдеров или иных ресурсов, нужно в Post Build Event прописать их копирование в $(OutDir) (или его подкаталог). Внимание, по умолчанию все EXE-файлы внутри Solution помещаются в одну папку назначения, поэтому ресурсы нескольких проектов тоже могут попасть в одну и ту же папку. Если в нескольких проектах есть файлы с одним и тем же именем, то при копировании может оказаться так, что файлы одного проекта перезапишут файлы другого, либо вызовут ошибку при параллельном копировании нескольких файлов. В этом случае нужно сделать что-то одно из:

а) Сложный вариант. Переименовать файлы ресурсов или шейдеров (не забыть внести соответствующие изменения и в код)

б) Простой вариант. Изменить выходную папку в настройках проектов, чтобы выходные файлы каждого проекта клались в разные папки. Output Directory для платформы Win32 установить равной $(SolutionDir)$(Configuration)\$(ProjectName)\, а для x64 - $(SolutionDir)$(Platform)\$(Configuration)\$(ProjectName)\. Обратная косая черта в конце обязательна. Посмотреть можно в примерах к 5 лабораторной работе (1, 2, 4 пример). image image image

Важно: исходники в старых примерах имеют кодировку Windows-1251, поэтому тексты в них отображаются кракозябрами, если смотреть код на гитхабе. Пересохраните исходники в кодировке UTF-8 Without signature: image image

  1. В примере должна быть включена мультипроцессорная компиляция для ускорения сборки: image

About

Курс по компьютерной графике

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published