Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Allegro 5 problem przy FULLSCREEN

Ostatnio zmodyfikowano 2013-09-22 14:33
Autor Wiadomość
Nekronomik
Temat założony przez niniejszego użytkownika
» 2013-06-17 22:06:25
W swoim projekcie używałem DIRECT3D lecz teraz zmieniałem na OPENGL i pojawiły się inne problemy tzn.
program podczas zmiany rozdzielczości wyłącza się lub przestaje odpowiadać(czasami wszystko działa) i znika kursor myszy, w testach Gabesa z OPENGL też znika kursor.
P-85758
Gabes
» 2013-06-17 22:38:45
W niektórych testach jest bitmapa bmp.png a w innych bmp.jpg nie sprawdzałem wczytywania jeśli nie będzie ich obok pliku .exe to program się zakończy bez ostrzeżenia.Nic innego mi nie przychodzi do głowy.Korzystałem z allegro-5.0.9-mingw-4.7.0 kompilacja Code::Blocks 12.11 z MinGW 4.7.1.

To raczej wiesz ale do linkera należy wpisać opengl32 no i dodać nagłówek.
P-85763
Nekronomik
Temat założony przez niniejszego użytkownika
» 2013-06-17 23:14:27
Przyznam się że nie dodałem opengl32 do linkera.Po dodaniu go program przy zmianie rozdzielczości od razu się zawiesza i za każdym razem.Z flagą ALLEGRO_FULLSCREEN_WINDOW wszystko dobrze działa tylko jej minus jest taki że nie zmienia rozdzielczośći.
P-85766
DejaVu
» 2013-06-21 15:21:38
Doszedłeś już do jakiegoś rozwiązania? Temat wisi otwarty i nie wiadomo co z nim robić dalej :)
P-85912
Nekronomik
Temat założony przez niniejszego użytkownika
» 2013-06-21 21:16:18
Niestety nie,i dobrze by było jak by temat był otwarty. Być może w końcu ktoś wpadnie na pomysł co jest nie tak albo mi się to uda.
P-85922
DejaVu
» 2013-06-22 11:59:47
Moim zdaniem problem sprowadza się tylko i wyłącznie do zainstalowania poprawnej wersji biblioteki dla posiadanego kompilatora. Weź po prostu możliwie prosty kod źródłowy Allegro, który będzie miał nie więcej jak 15 linijek kodu, a następnie doprowadź do sytuacji, w której aplikacja uruchomi się w trybie pełnoekranowym i wyświetli teksturę poprawnie.
P-85942
Nekronomik
Temat założony przez niniejszego użytkownika
» 2013-09-22 14:33:10
W końcu udało mi się zmieniać rozdzielczość na fullscreen'ie bez spadku fps.Jedyny dziwny błąd jaki mam to jest brak kawałka bitmapy (np:wyświetlam koło a ono na górze jest trochę ścięte) przy zmianie trybu fullscreen na windowed.
Po niżej zamieszczam kod;
C/C++
#include <allegro5/allegro.h>
#include <allegro5/allegro_image.h>
#include<iostream>
using namespace std;
int x = 0;
ALLEGRO_BITMAP * OB1 = 0;
void obrazek()
{
    al_draw_bitmap( OB1, x, 200, 0 );
}
int main()
{
    ALLEGRO_DISPLAY * display = NULL;
    ALLEGRO_DISPLAY * display1 = NULL;
   
    al_init();
    //al_set_new_display_flags(ALLEGRO_FULLSCREEN | ALLEGRO_WINDOWED);
    al_set_new_display_flags( ALLEGRO_FULLSCREEN );
    //al_set_new_display_flags(ALLEGRO_WINDOWED);
    //al_toggle_display_flag(display, ALLEGRO_WINDOWED, 0);
    display = al_create_display( 640, 480 );
    al_init_image_addon();
    al_install_keyboard();
    ALLEGRO_KEYBOARD_STATE Key;
    al_get_time();
    OB1 = al_load_bitmap( "p.png" );
    double time1 = 0;
    bool xw = false;
    bool wcisniety = false;
    double czas_fps = 0;
    int fps = 0;
    for(;; )
    {
        al_get_keyboard_state( & Key );
        if( al_get_time() > time1 + 0.01 )
        {
            time1 = al_get_time();
            obrazek(); ///////////////////////////
            if( x < 600 && xw == false ) x++;
           
            if( x >= 600 ) xw = true;
           
            if( xw == true ) x--;
           
            if( x <= 0 ) xw = false;
           
            al_flip_display();
            al_clear_to_color( al_map_rgb( 255, 255, 255 ) ); ////////////////////////
        }
        if( al_key_down( & Key, ALLEGRO_KEY_Q ) && wcisniety == false )
        {
            //al_set_new_display_flags(ALLEGRO_FULLSCREEN | ALLEGRO_WINDOWED);
            //al_toggle_display_flag(display1, ALLEGRO_FULLSCREEN, 0);
            //al_toggle_display_flag(display, ALLEGRO_WINDOWED, 1);
            al_destroy_display( display );
            al_set_new_display_flags( ALLEGRO_WINDOWED );
            //al_set_new_window_position(1280, 1024);
            display1 = al_create_display( 1280, 1024 );
            al_init_image_addon();
            OB1 = al_load_bitmap( "p.png" );
            wcisniety = true;
        }
        if( al_key_down( & Key, ALLEGRO_KEY_Q ) == false ) wcisniety = false;
       
        if( al_get_time() > czas_fps )
        {
            czas_fps = czas_fps + 1;
            cout << fps << endl;
            fps = 0;
        }
        fps++;
        if( al_key_down( & Key, ALLEGRO_KEY_ESCAPE ) ) break;
       
    }
    al_destroy_bitmap( OB1 );
    al_destroy_display( display );
    return 0;
}
P-92483
1 2 « 3 »
Poprzednia strona Strona 3 z 3