[c++/SFML] Bitmapa nie wyświetla się...
Ostatnio zmodyfikowano 2012-04-21 15:50
Admixior Temat założony przez niniejszego użytkownika |
[c++/SFML] Bitmapa nie wyświetla się... » 2012-04-21 15:50:04 Witam. Próbuję wyświetlić bitmapę ładując ją z pixelów w pamięci. Ale nie chce się ona rysować w ogóle na ekranie. cv::Mat image_cam; char * rgba_data = new char[ 1024 * 768 * 4 ]; for( int i = 255, x = 230; i >- 1; i -= 5, x++ ) { while( wnd.GetEvent( zdarzenie ) ) { if( zdarzenie.Type == sf::Event::Closed ) { wnd.Close(); } } cap.read( image_cam ); conv_rgb2rgba(( uchar * ) image_cam.data, rgba_data, 1024 * 768 ); bmp.LoadFromPixels( 1024, 768,( Uint8 * ) rgba_data ); alfa2.SetImage( bmp ); wnd.Clear(); wnd.Draw( alfa2 ); wnd.Display(); }
Usuwając "wnd.Clear();" pokazują się na przemian 2 ostatnie klatki czyli nawet sfml nie kwapi się rysować sprita alfa2. Funkcje cap.read( image_cam ); conv_rgb2rgba(( uchar * ) image_cam.data, rgba_data, 1024 * 768 ); na pewno są dobre. LoadFromPixel() powinna być dobra bo pojawia się odpowiedni rozmiar i pixele są pokolorowane w zmiennej bmp. //edit: przed chwilą dodałem 2 instrukcje. bmp.SaveToFile( "file_cam.jpg" ); bmp.LoadFromFile( "file_cam.jpg" ); i ooo działa. Ale wydajność jest wiadomo jaka:( Jeśli wiecie macie pomysł co może być źle to mówcie. //edit: Problem rozwiązany. W funkcji conv_rgb2rgba(...) jako 4 kanał alfa dodawałem 0 zamiast 0xff. Czyli było zupełnie przeźroczyste xD. Mam nadzieję że nigdy więcej nie popełnię takiej wpadki. |
|
« 1 » |