polymorphism napisał(a):Czyszczenie to skrót myślowy, chodzi o zamalowanie rysunku tłem. Więc w tym kontekście FillRect czyści bitmapę.
racja, przynajmniej jeśli chodzi o "czyszczenie" w tym sensie, że jest to zamalowanie powierzchni kolorem (255,255,255).
Cyfrowy Baron napisał(a):Przejrzałem te twoje programy i mogę stwierdzić jedno. Wystarczy tutaj zastosować styl pędzla pmNotXor
być może w tym konkretnym przykładzie klocków - tak. jednak to tylko przykład, gdyż docelowo elementy te miały wyglądać inaczej. prawdopodobnie wykorzystam sporą część kodu, który zaprezentowałeś, ale w tej chwili ważniejsze jest dla mnie obranie właściwej koncepcji całości. wygląda na to, że lepiej unikać rzeźbienia na własną rękę. ewentualnie zmienię koncepcję i faktycznie wykorzystam ten styl.
polymorphism napisał(a):Wiesz, odnoszę wrażenie, że starasz się wyciągnąć jak najwięcej fps-ów, co w przypadku statycznej kontrolki jest nieporozumieniem.
w zasadzie masz rację. staram się wyciągnąć max fps'ów = jak najmniej obciążający sposób rysowania. w końcu nie po to siedziałem nad skryptami i pluginami do przetwarzania obrazu, żeby mi teraz jakieś kopiowanie bitmap zżerało większość mocy procesora, potrzebnej w tym czasie gdzie indziej.
Cyfrowy Baron napisał(a):Troszkę zresztą zaszalałem, bo do wyczyszczenia bitmapy w
Image wystarczy:
no z tym to zwolnił u mnie maksymalnie...
Cyfrowy Baron napisał(a):Moim zdaniem najskuteczniejszą metodą jest przechowywanie oryginalnej bitmapy w buforze i przekopiowywanie całej bitmapy lub wybranego jej fragmentu co zaproponowałem we wcześniejszym poście.
zgadza się, jednak te metody już
wypróbowałem zanim rozpocząłem ten wątek, i przyrost wydajności był pomijalny w stosunku do wyłączenia buforowania.
rozumiem teraz, że to przez kartę graficzną, prawda?dzięki za testy, spróbuję u siebie z GetTickCount i zobaczę jak to wychodzi. potem skoczę po kartę i sprawdzę z nią, bo przyznam szczerze, że wyniki tego testu mnie zdziwiły. z drugiej strony samo "czyszczenie" nie jest tak istotne jeśli zastosuję inny algorytm przywracania tła tylko pod klockiem. jednak sposób z tworzeniem nowej bitmapy, o ile faktycznie będzie szybsze, przyda się w innym miejscu, np. przy zmianie wielkości albo przesuwaniu (tutaj sposób z drugą bitmapą zmniejszył wydajność).
korci mnie jednak ten DirectDraw. samo wyświetlanie bitmapy powinno mi wystarczyć. tylko jak to zrobić w okienku?!