Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <stdio.h>
- #include <SDL2/SDL.h>
- /**
- * I finally find out how this SDL should work on my machine.
- * In the past, I just so dumb to not initialize its renderer.
- *
- * On this case, I create renderer and let it render the black screen with `SDL_SetRenderDrawColor`.
- *
- * Important notes for me:
- * 1. The window would show nothing if it has no renderer.
- * 2. We MUST use one (at least) infinite loop on main thread, which is also handling triggered event.
- * 3. RenderClear here is only for debugging purpose, this help me to see the black screen that i've declared before.
- * 4. RenderPresent helps to updating the screen.
- * 5. DestroyWindow && Quit at the end.
- * 6. SDL Blocking the KDE's compositor, don't be panic if your GUI being messed up (sacrifice the appearance to the performance).
- */
- int main(int argc, char **argv)
- {
- int init_status = SDL_Init(SDL_INIT_EVERYTHING);
- if (init_status != 0) {
- fprintf(stderr, "Error on initialize the SDL.\n==> Error message: %s\n==> Error code: %d\n", SDL_GetError(), init_status);
- return EXIT_FAILURE;
- }
- SDL_Window *window = SDL_CreateWindow(
- "ChaerEngine - A Simple game engine written by @KennFatt",
- 100, 100,
- 640, 480,
- SDL_WINDOW_SHOWN | SDL_WINDOW_ALLOW_HIGHDPI | SDL_WINDOW_RESIZABLE
- );
- if (window == NULL) {
- fprintf(stderr, "Error on create window. Error message: %s\n", SDL_GetError());
- return EXIT_FAILURE;
- }
- SDL_Renderer *renderer = SDL_CreateRenderer(
- window,
- -1,
- SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC
- );
- if (renderer == NULL) {
- SDL_DestroyWindow(window);
- fprintf(stderr, "Error on create renderer. Error message: %s\n", SDL_GetError());
- return EXIT_FAILURE;
- }
- SDL_Event ev;
- int err = 0;
- while (!err) {
- while (SDL_PollEvent(&ev)) {
- switch (ev.type) {
- case SDL_QUIT:
- err = 1;
- break;
- default:
- fprintf(stdout, "[Debug] Event type: %d\n", ev.type);
- break;
- }
- }
- SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255);
- SDL_RenderClear(renderer);
- SDL_RenderPresent(renderer);
- }
- SDL_DestroyWindow(window);
- SDL_Quit();
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement