Skip to content

Instantly share code, notes, and snippets.

@Jakz
Created November 30, 2019 14:39
Show Gist options
  • Save Jakz/ab294e52bffa12f8e9daeb365e868ea5 to your computer and use it in GitHub Desktop.
Save Jakz/ab294e52bffa12f8e9daeb365e868ea5 to your computer and use it in GitHub Desktop.
SDL2 bug test on RG-350
#include "SDL.h"
#include <cstdio>
#include <cstdlib>
#include <cassert>
#include <array>
int main(int argc, const char* argv[])
{
SDL_Window* window = nullptr;
SDL_Renderer* renderer = nullptr;
SDL_Init(SDL_INIT_EVERYTHING);
window = SDL_CreateWindow("SDL2-bug-test", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 320, 240, SDL_WINDOW_OPENGL);
renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_TARGETTEXTURE | SDL_RENDERER_ACCELERATED);
assert(window && renderer);
std::array<uint32_t, 6> formats = {
SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ARGB8888,
SDL_PIXELFORMAT_RGB888, SDL_PIXELFORMAT_BGR888,
SDL_PIXELFORMAT_RGB565, SDL_PIXELFORMAT_BGR565
};
std::array<SDL_Texture*, 6> textures;
for (size_t i = 0; i < formats.size(); ++i)
{
textures[i] = SDL_CreateTexture(renderer, formats[i], SDL_TEXTUREACCESS_TARGET, 16, 16);
assert(textures[i]);
SDL_SetRenderTarget(renderer, textures[i]);
SDL_SetRenderDrawColor(renderer, 0, 255, 0, 255);
SDL_RenderClear(renderer);
SDL_RenderPresent(renderer);
}
SDL_SetRenderTarget(renderer, nullptr);
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
bool quit = false;
while (!quit)
{
SDL_Event event;
SDL_PollEvent(&event);
if (event.type == SDL_KEYDOWN && event.key.keysym.sym == SDLK_ESCAPE)
quit = true;
else if (event.type == SDL_QUIT)
quit = true;
SDL_RenderClear(renderer);
for (size_t i = 0; i < textures.size(); ++i)
{
SDL_Rect dest = { 64 * (int)i, 32, 32, 32 };
SDL_RenderCopy(renderer, textures[i], nullptr, &dest);
}
SDL_RenderPresent(renderer);
}
for (SDL_Texture* texture : textures)
SDL_DestroyTexture(texture);
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment