Finished Texture's txt.

This commit is contained in:
Relintai 2021-04-07 22:17:29 +02:00
parent 055adfbcd3
commit 8a732d2d68

View File

@ -1,4 +1,62 @@
Írjunk egy Textúra osztályt.
Ez fogja menedzselni az SDL_Texture osztályokat.
Ahogy a bevezetőben elhangzott, Ez egy kép adatait tartalmazza, viszont ez a
softwares rajzoláshoz optimalizált formában.
Kirajzolni a Renderer segédfüggvényeivel lehet, ezeket később menjetek vissza, és
implementáljátok be.
Fontos!
A renderer.h-t csak a texture.cpp fájlba include-oljátok be!
Ugyanis, a texture.h kelleni fog a renderer.h-nak is!
És nem lehet kör az inlcude gráfban.
Ebben az esetben a renderer csak a .cpp fájlban kell, így ez a legegyszerűbb megoldás.
------------
Megj.:
Ha a Renderer osztályt a .h fájlban is kellene használni valamiért, akkor előre kellene
definiálni, így:
---
texture.h:
class Renderer;
class Texture {
//...
};
texture.cpp:
#include "remderer.h"
---
És ugyanezt el lehetne játszani a Rendererbe is, sőt ha lenne több ilyen körkörös
függőség, azoknál is.
Nagy projektekben előfordul az ilyen, érdemes fejben tartani, hogy meg lehet
oldani, és hogy így.
Ez amúgy azért működik, mert a cpp fájlok külön fordítási egységekként vannak
lefordítva (alapból, akkor is, ha csak több cpp fájlt fodítunk egy paranccsal
programmá), és a végén egy utolsó lépésként vannak összelinkelve
(összeállítva) egy futtatható fájllá. És ez a hiba pont a fordítási
lépésben okoz gondot.
------------
És akkor a Texture osztály UML diagramja:
|---------------------------------------------------------------------------------------|
| class Texture |
@ -50,6 +108,10 @@ get_color_mod:
return Color(r, g, b, a)
Az sdl külön kezeli a színezés paramétert, és az átlátszóságot, de ezt itt egybe vettem,
mert így jobban illik a program felépítéséhez.
------------------------------------------------------------------------------------------
set_color_mod: