Рисование 2D-материалов с помощью SDL_Renderer и объектов OpenGL с помощью SDL_GLContextC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Рисование 2D-материалов с помощью SDL_Renderer и объектов OpenGL с помощью SDL_GLContext

Сообщение Anonymous »

Некоторое время я изучал 2D-программирование на SDL, и теперь мне захотелось создать программу, используя комбинацию SDL и OpenGL. Я настроил это так:

Код: Выделить всё

SDL_Init(SDL_INIT_VIDEO);

window = SDL_CreateWindow("SDL and OpenGL", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL);

context = SDL_GL_CreateContext(window);
Программа на данный момент представляет собой просто черное окно с белой линией, отображаемой с использованием OpenGL. Вот код рендеринга:

Код: Выделить всё

glClearColor(0, 0, 0, 0);
glClear(GL_COLOR_BUFFER_BIT);

glBegin(GL_LINES);
glVertex2d(1, 0);
glVertex2d(-1, 0);
glEnd();

SDL_GL_SwapWindow(window);
Дело в том, что я хотел бы дополнительно визуализировать текстуры, используя чистый SDL и объект SDL_Renderer, как я делал раньше без OpenGL. Я попробовал это, но это не сработало. Возможно ли это вообще сделать и как? Я создал SDL_Renderer, а затем после рисования OpenGL сделал следующее:

Код: Выделить всё

SDL_Rect fillRect;
fillRect.w = 50;
fillRect.h = 50;
fillRect.x = 0;
fillRect.y = 0;

SDL_SetRenderDrawColor(renderer, 100, 200, 100, 0);
SDL_RenderFillRect(renderer, &fillRect);

SDL_RenderPresent(renderer);
Но это не работает. Прямоугольник не отображается, хотя на несколько миллисекунд он слегка появляется. У меня такое ощущение, что рендеринг OpenGL перезаписывает его.

Подробнее здесь: https://stackoverflow.com/questions/283 ... -glcontext
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»