Serwis Edukacyjny Nauczycieli w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy
Wałaszek |
©2024 mgr Jerzy Wałaszek
|
SDL_CreateSoftwareRenderer
SPIS TREŚCI |
Rozdział jest tłumaczeniem oryginalnej instrukcji dla biblioteki SDL2.
Użyj tej funkcji, aby stworzyć programowy dwuwymiarowy kontekst graficzny dla powierzchni.
SDL_Renderer* SDL_CreateSoftwareRenderer(SDL_Surface* surface) |
surface | wskaźnik do struktury the SDL_Surface reprezentującej powierzchnię graficzną, na której będzie operował kontekst. |
#include "SDL.h" SDL_Window *window; SDL_Renderer *renderer; int done; void DrawChessBoard(SDL_Renderer * renderer) { int row = 0,column = 0,x = 0; SDL_Rect rect, darea; /* Pobierz rozmiar powierzchni rysunkowej */ SDL_RenderGetViewport(renderer, &darea); for ( ; row < 8; row++) { column = row%2; x = column; for ( ; column < 4+(row%2); column++) { SDL_SetRenderDrawColor(renderer, 0, 0, 0, 0xFF); rect.w = darea.w/8; rect.h = darea.h/8; rect.x = x * rect.w; rect.y = row * rect.h; x = x + 2; SDL_RenderFillRect(renderer, &rect); } } } void loop() { SDL_Event e; while (SDL_PollEvent(&e)) { if (e.type == SDL_QUIT) { done = 1; return; } if ((e.type == SDL_KEYDOWN) && (e.key.keysym.sym == SDLK_ESCAPE)) { done = 1; return; } } DrawChessBoard(renderer); /* Mamy wszystko na powierzchni kontekstu, teraz uaktualniamy rysunek w oknie ekranowym */ SDL_UpdateWindowSurface(window); } int main(int argc, char *argv[]) { SDL_Surface *surface; /* Włącz standardowy log aplikacji */ SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO); /* Inicjalizuj SDL */ if (SDL_Init(SDL_INIT_VIDEO) != 0) { SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "SDL_Init fail : %s\n", SDL_GetError()); return 1; } /* Utwórz okno i kontekst dla danej powierzchni */ window = SDL_CreateWindow("Szachownica", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, 0); if (!window) { SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Window creation fail : %s\n",SDL_GetError()); return 1; } surface = SDL_GetWindowSurface(window); renderer = SDL_CreateSoftwareRenderer(surface); if (!renderer) { SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Render creation for surface fail : %s\n",SDL_GetError()); return 1; } /* Wymaż powierzchnię kontekstu określonym kolorem */ SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF); SDL_RenderClear(renderer); /* Narysuj obrazek na powierzchni */ done = 0; while (!done) { loop(); } SDL_Quit(); return 0; } |
1) SDL_CreateRenderer()
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 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:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.