[#161]
Re: Nowa, szybka konwersja chunky-to-planar
Hejka, opracowałem nową, zgrabną i przejrzystą procedurę konwersji chunky-to-planar. Zajęło mi to kilka dobrych dni.
Konwertuje liniowe 32 piksele 1:1 używając tylko i wyłącznie rejestrów procesora (również wszystkie maski)! Brak pośrednich buforów.
Jeszcze gruntownie nie testowałem prędkości, ale na pewno jest poprawna (sprawdzałem pod Asm-One). Wygląda jednak na to, że jest szybka.
Zawsze można też zrobić szybszą wersję na pikselach 2:1.
Nota: Procedura może być używana do prostej konwersji 32 pikseli w rejestrach, lub w pętli. W przypadku pętli do dyspozycji pozostaje jeden wolny rejestr - A6, pod który można podpiąć dowolne dane/adresy itp. oraz stos - A7, gdzie można np. odkładać rejestry.
Na końcu pętli są wolne dwa rejestry danych: D0 i D1.
Wynik obliczeń jest w tych rejestrach:
A2: plan 0
A0: plan 1
A3: plan 2
A1: plan 3
D2: plan 4
D4: plan 5
D5: plan 6
D3: plan 7
Rozlokowaniem uzyskanych danych mógłby zajmować się np. Blitter, ale też procesor.
Oto kod źródłowy. Postaram się za jakiś czas porobić gruntowne testy (teraz jestem zajęty).
Kod jest freeware, proszę używać tylko w całości i nadmienić autora.
Jeśli ktoś dysponuje teraz jakimś testem, proszę śmiało go zrobić.
http://coreprogramming.pl/chunky/c2p.txt
Ostatnia aktualizacja: 15.09.2017 09:39:37 przez Hexmage960