Ik ben voor een nieuw experimentje aan het kijken naar SDL 2.0 of SFML, na vroeger wel eens gewerkt te hebben met SDL 1.2. Hier moet even bijgezegd worden dat ik nog wel een beetje een leek ben op grafisch gebied..
Bladerend door de wijzigingen in SDL 2.0 kom ik tegen dat hardware en software surfaces qua datatypes gesplitst zijn, waar vroeger een surface een hardwarebitje (SDL_HWSURFACE) meekreeg is het nu een SDL_Texture type geworden. Echter; deze zijn niet te blitten. In mijn oude SDL-projecten gebruik ik echter overal hardware surfaces (immers veel sneller) en die waren toen nog wel gewoon te blitten.
Als ik zoek op internet is de verklaring dat textures in video memory staan en daardoor razendsnel te kopiëren zijn naar het scherm maar daardoor niet te blitten en dat ze vooral "statisch" moeten zijn of je moet ze als streaming texture definiëren (maar dan kan je nog steeds niet blitten), maar waarom kon dit in SDL 1.2 dan wel?
Tevens; als ik in SDL 2.0 met textures zou gaan werken in een 2D-omgeving, hoe kan ik dit dan het beste aanpakken? Alle sprites en dergelijke als textures laden en die rechtstreeks kopiëren naar het scherm of toch eerst paneeltjes van losse venstertjes in surfaces en die vervolgens converteren naar een texture en die kopieren? Dat eerste doe ik liever niet, want het is een stuk simpeler als je je losse elementen kan opbouwen in losse surfaces en die vervolgens op de goede plek op het scherm gooien (met name met versleepbare vensters enzo). Als ik dat doe kan ik toch net zo goed gewoon volledig in software renderen, of begrijp ik dat verkeerd?
Bladerend door de wijzigingen in SDL 2.0 kom ik tegen dat hardware en software surfaces qua datatypes gesplitst zijn, waar vroeger een surface een hardwarebitje (SDL_HWSURFACE) meekreeg is het nu een SDL_Texture type geworden. Echter; deze zijn niet te blitten. In mijn oude SDL-projecten gebruik ik echter overal hardware surfaces (immers veel sneller) en die waren toen nog wel gewoon te blitten.
Als ik zoek op internet is de verklaring dat textures in video memory staan en daardoor razendsnel te kopiëren zijn naar het scherm maar daardoor niet te blitten en dat ze vooral "statisch" moeten zijn of je moet ze als streaming texture definiëren (maar dan kan je nog steeds niet blitten), maar waarom kon dit in SDL 1.2 dan wel?
Tevens; als ik in SDL 2.0 met textures zou gaan werken in een 2D-omgeving, hoe kan ik dit dan het beste aanpakken? Alle sprites en dergelijke als textures laden en die rechtstreeks kopiëren naar het scherm of toch eerst paneeltjes van losse venstertjes in surfaces en die vervolgens converteren naar een texture en die kopieren? Dat eerste doe ik liever niet, want het is een stuk simpeler als je je losse elementen kan opbouwen in losse surfaces en die vervolgens op de goede plek op het scherm gooien (met name met versleepbare vensters enzo). Als ik dat doe kan ik toch net zo goed gewoon volledig in software renderen, of begrijp ik dat verkeerd?