Die SDL Experimente gehen mit dem zweiten SDL Grafikfenster weiter…
Vorbemerkungen:
SDL Grafikfenster 02 erzeugt ein rotes, flackerndes Rechteck und lässt sich auch schließen
Der Compiler braucht für SDL Programme übrigens einen modifizierten Befehl:
- g++ -o dateiname.out dateiname.cpp -g -lSDL2
Quellcode für C++ und das SDL Grafikfenster 2:
#include <SDL2/SDL.h>
#include <iostream>
int main(int argc, char* argv[]) {
// Initialize SDL
if (SDL_Init(SDL_INIT_VIDEO) != 0) {
std::cerr << "Error initializing: " << SDL_GetError() << std::endl;
return 1;
}
// Create a window with the title "My first graphics program"
SDL_Window* window = SDL_CreateWindow("Mein zweites Grafikfenster 2026", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN);
if (window == nullptr) {
std::cerr << "Error creating window: " << SDL_GetError() << std::endl;
return 1;
}
// Create a renderer for the window
SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, 0);
if (renderer == nullptr) {
std::cerr << "Error creating renderer: " << SDL_GetError() << std::endl;
return 1;
}
// Set the drawing color to red
SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);
// Draw a rectangle at position (100, 100) with size 200x150
SDL_Rect rect = { 100, 100, 200, 150 };
SDL_RenderFillRect(renderer, &rect);
// Update the window and renderer
SDL_RenderPresent(renderer);
// Handle mouse events
bool quit = false;
while (!quit) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
quit = true;
}
}
// Update the window and renderer again to show any changes
SDL_RenderPresent(renderer);
}
// Clean up
SDL_DestroyRenderer(renderer);
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}