Ich versuche gerade in SDL eine kleine GUI für einen Touschscreen zu
Programmieren und möchte dabei Dinge, die immer gleich bleiben und das
was sich verändert in zwei Surfaces legen und die beiden danach
gemeinsam anzeigen.
Meine Idee:
1 | SDL_Surface *screen = init...
|
2 | SDL_Surface *fest, *beweglich;
|
3 |
|
4 | ... code um *fest und *beweglich zu "füllen" ...
|
5 | hlineRGBA(fest, 15, WIDTH-1, 15, 0xff, 0x8c, 0, 255); // orange border h
|
6 | hlineRGBA(fest, 15, WIDTH-1, 16, 0xff, 0x8c, 0, 255);
|
7 | vlineRGBA(beweglich, WIDTH-1-70, 0, 16, 0xff, 0x8c, 0, 255); // orange border v
|
8 | ...
|
9 |
|
10 | for(;;) {
|
11 | SDL_BlitSurface(fest, NULL, screen, NULL);
|
12 | SDL_BlitSurface(beweglich, NULL, screen, NULL);
|
13 | SDL_UpdateRect(screen, 0, 0, WIDTH, HEIGHT);
|
14 | }
|
Nun sollte er ja dauerhauft in der For-Schleife den Inhalt
zusammenpacken und auf screen anzeigen. Allerdings steigt er immer beim
ersten Zugriff auf *fest oder *beweglich aus.
Wenn ich einfach alles auf screen gehen lasse und die zwei BlitSurface
rauslasse, funktioniert es, allerdings ist es nich das was ich will.
Ich hoffe mir kann da ja jemand weiterhelfen.