Crax
Lt. Junior Grade
- Registriert
- Mai 2012
- Beiträge
- 260
Hallo Programmierfreunde!
Ich hätte da mal eine Frage bezüglich der SDL_Texture.
Zeile 5. könnte man auch hiermit ersetzen
Das funktioniert alles ohne Probleme, habe mit SDL(2) schon etwas Erfahrung sammeln können, nur eine Sache verstehe ich nicht ganz:
Eine SDL_Surface liegt ja im Hauptspeicher (RAM) und mit der kann ich keine Hardwarebeschleunigung nutzen. Nur wenn ich jetzt eine Texture durch eine Surface erstelle und diese Surface dann wieder lösche , dann sollte die Texture doch auch nur im VRAM liegen? (oder ich lade das Bild gleich als Texture in den VRAM mit IMG_LoadTexture, sollte nur zu Veranschaulichung dienen)
Wenn ich nun aber die Texture erstelle steigt der VRAM und der RAM Verbrauch. Bei einem 1920x1080 großem Bild steigt der VRAM um ca. 10MB und der RAM um ganze 16MB an.
Ist das normal oder habe ich die ganze Zeit etwas falsch gemacht? Sollte die Texture nicht nur den VRAM belasten? Konnte in der Dokumentation leider nichts darüber finden.
Danke schon mal im voraus.
Ich hätte da mal eine Frage bezüglich der SDL_Texture.
Code:
//Erstelle Texture
SDL_Texture *texture = NULL;
//Lade Bild in die Texture
texture = IMG_LoadTexture("texture.png");
//Zeichne die Texture auf den Bildschirm
SDL_RenderClear(renderer);
SDL_RenderCopy(renderer, texture, NULL, NULL);
SDL_RenderPresent(renderer);
Zeile 5. könnte man auch hiermit ersetzen
Code:
//Erstelle Surface
SDL_Surface *temp_surface = NULL;
//Lade Bild in die Surface
temp_surface = IMG_Load("texture.png");
//Lade Bild in die Texture mittels Surface
texture = SDL_CreateTextureFromSurface(temp_surface);
//Lösche Surface
SDL_FreeSurface(temp_surface);
Das funktioniert alles ohne Probleme, habe mit SDL(2) schon etwas Erfahrung sammeln können, nur eine Sache verstehe ich nicht ganz:
Eine SDL_Surface liegt ja im Hauptspeicher (RAM) und mit der kann ich keine Hardwarebeschleunigung nutzen. Nur wenn ich jetzt eine Texture durch eine Surface erstelle und diese Surface dann wieder lösche , dann sollte die Texture doch auch nur im VRAM liegen? (oder ich lade das Bild gleich als Texture in den VRAM mit IMG_LoadTexture, sollte nur zu Veranschaulichung dienen)
Wenn ich nun aber die Texture erstelle steigt der VRAM und der RAM Verbrauch. Bei einem 1920x1080 großem Bild steigt der VRAM um ca. 10MB und der RAM um ganze 16MB an.
Ist das normal oder habe ich die ganze Zeit etwas falsch gemacht? Sollte die Texture nicht nur den VRAM belasten? Konnte in der Dokumentation leider nichts darüber finden.
Danke schon mal im voraus.