Код: Выделить всё
#include "SDL2/SDL.h"
#include "SDL2/SDL_gpu.h"
int main() {
if (SDL_Init(SDL_INIT_VIDEO) != 0)
return 1;
GPU_Target* window = GPU_Init(800, 600, GPU_DEFAULT_INIT_FLAGS);
GPU_Image* texture = GPU_CreateImage(800, 600, GPU_FORMAT_RGBA);
GPU_SetImageFilter(texture, GPU_FILTER_LINEAR);
GPU_Target* texture_target = GPU_LoadTarget(texture);
GPU_Clear(texture_target);
GPU_CircleFilled(texture_target, 200, 300, 100, { 255, 0, 0, 255 });
GPU_Flip(texture_target);
bool running = true;
SDL_Event event;
while (running) {
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
running = false;
}
}
GPU_Clear(window);
GPU_Blit(texture, nullptr, window, 400, 300);;
GPU_CircleFilled(window, 600, 300, 100, { 255, 0, 0, 255 });
GPU_Flip(window);
}
GPU_FreeImage(texture);
GPU_Quit();
SDL_Quit();
return 0;
}

Разница небольшая, но заметная.< /p>
Что может быть причиной этой проблемы?
Вот что я пробовал:
Фильтрация текстур установлено значение GPU_FILTER_LINEAR, поэтому я не думаю, что это проблема.
Я попробовал включить множественную выборку с помощью следующего кода (перед инициализацией SDL):
Код: Выделить всё
glEnable(GL_MULTISAMPLE);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1);
SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, 4);
Подробнее здесь: https://stackoverflow.com/questions/786 ... ough-edges