Всякий раз, когда я пытаюсь отладить шейдер в nvidia nsight, я получаю следующую несовместимость в файле nvcompatlog
.
glDisable (cap = 0x00008620)
glMatrixMode
glPushMatrix
glLoadIdentity
glOrtho
glBegin
glColor4f
glVertex2f
glEnd
glPopMatrix
Это сбивает с толку, поскольку я использую профиль ядра 4.2 и не использую устаревшие или фиксированные вызовы функций. На данном этапе я просто рисую на экране простой 2D-квадрат и могу гарантировать, что ни одна из перечисленных выше функций не используется.
Меня действительно беспокоит то, что я новичок в SDL и GLEW. Я не уверен, какие функции они используют за кулисами. Я искал в Интернете и нашел других, которые используют SDL, GLEW и Nvidia nsight. Это приводит меня к мысли, что я что-то упускаю из виду. Ниже приведена сокращенная версия того, как я инициализирую SDL и GLW.
SDL_Init(SDL_INIT_EVERYTHING);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1);
SDL_Window *_window;
_window = SDL_CreateWindow("Red Square", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED , 200, 200, SDL_WINDOW_OPENGL);
SDL_GLContext glContext = SDL_GL_CreateContext(_window);
glewExperimental = GL_TRUE;
GLenum status = glewInit();
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
В реализации у меня есть проверка ошибок почти после каждого вызова. Я исключил его из примера, чтобы уменьшить количество беспорядка. Все вышеперечисленное не приводит к ошибкам и возвращает допустимые объекты.
После инициализации glewGetString(GLEW_VERSION)
возвращает 4.2.0 NVIDIA 344.75, glewGetString(GLEW_VERSION)
возвращает 1.11.0, а GLEW_VERSION_4_2
возвращает true.
Любая идея о том, как я могу использовать SDL и GLEW и не использовать ни одну из этих платформ для вызова устаревших функций?
** Изменить ** Я экспериментировал с Dependency Walker здесь. Глядя на вызовы через Opengl32.dll, ничего из перечисленного не отображается как вызываемый модуль.