Serwis Edukacyjny
Nauczycieli
w I-LO w Tarnowie

obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek
Uaktualniono: 31.07.2022

©2023 mgr Jerzy Wałaszek
I LO w Tarnowie

Interfejs SDL2:

SDL_RenderPresent

SPIS TREŚCI

Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.

SDL_RenderPresent

Użyj tej funkcji, aby uaktualnić ekran zmianami wykonanymi od ostatniego jej wywołania.

Składnia

void SDL_RenderPresent(SDL_Renderer* renderer)

Parametry funkcji

renderer kontekst graficzny.

Przykładowy kod

#include "SDL.h"

int main(int argc, char* argv[])
{
        SDL_Window* window;
        SDL_Renderer* renderer;

        /* Inicjuj SDL. */
        if (SDL_Init(SDL_INIT_VIDEO) < 0)
                return 1;

        /* Otwórz okno do rysowania. */
        window = SDL_CreateWindow("SDL_RenderClear",
                        SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED,
                        512, 512,
                        0);

        /* Musimy wywołać SDL_CreateRenderer, aby funkcje rysunkowe dotyczyły tego okna. */
        renderer = SDL_CreateRenderer(window, -1, 0);

        /* Wybierz kolor rysowania. Tutaj będzie to czerwony. */
        SDL_SetRenderDrawColor(renderer, 255, 0, 0, 255);

        /* Wypełnij cały ekran wybranym kolorem. */
        SDL_RenderClear(renderer);

        /* To tej chwili wszystko rysowane było za sceną.
           To ukaże nową, czerwoną zawartość okna. */
        SDL_RenderPresent(renderer);

        /* Daj nam czas na oglądnięcie tego okna. */
        SDL_Delay(5000);

        /* Zawsze upewnij się, że posprzątałeś. */
        SDL_Quit();
        return 0;
}

Uwagi

Funkcje rysunkowe SDL działają na buforze w tle, tj. wywołując funkcję rysunkową taką jak SDL_RenderDrawLine() nie powodujemy narysowania odcinka bezpośrednio na ekranie, lecz raczej uaktualniamy zawartość tego bufora w tle. W ten sposób komponujesz cały swój ekran w buforze, a następnie prezentujesz zawartość tego bufora na ekranie jako kompletny obraz..

Stąd przy korzystaniu z funkcji rysunkowych SDL rysuje się wszystko, co ma się znaleźć w ramce obrazu, a następnie wywołuje się te funkcję jeden raz na ramkę, aby pokazać ostateczny rysunek użytkownikowi.

Bufor w tle powinien być uważany za nieważny po każdej prezentacji, nie zakładaj, że poprzednia zawartość wciąż będzie istnieć pomiędzy ramkami. Zaleca się mocno wywołanie SDL_RenderClear(), aby zainicjować bufor w tle przed rozpoczęciem rysowania każdej nowej ramki, nawet jeśli miałoby to oznaczać nadpisanie każdego piksela.

Powiązane funkcje

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2023 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone
pod warunkiem podania źródła oraz niepobierania za to pieniędzy.

Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl

Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.