[Fixé] – [AOS4 & MOS] Datatypes : Crash

6 sujets de 1 à 6 (sur un total de 6)

  • AmiDARK

      #10036

      Salut,

      Dans l’AmiDARK Engine, pour les images & textures, j’utilise les datatypes.

      Sous AmigaOS 4.1 j’utilise ceci et tout fonctionne niquel :

      AvailMethod = IDataTypes->GetDTMethods( dto );

      if ( IDataTypes->FindMethod( AvailMethod, PDTM_READPIXELARRAY ) != 0 ){

      bpa.MethodID = PDTM_READPIXELARRAY;

      resread = IIntuition->IDoMethodA( dto, bpaptr );

      }else{

      printf( « Method PDTM_READPIXELARRAY not compatible with object » );

      }

      J’ai essayé d’adapter la méthode pour MorphOS mais cela crash:

      AvailMethod = GetDTMethods( dto );

      if ( FindMethod( AvailMethod, PDTM_READPIXELARRAY ) != 0 ){

      bpa.MethodID = PDTM_READPIXELARRAY;

      resread = DoDTMethodA( dto, NULL, NULL, bpaptr );

      }else{

      printf( « Method PDTM_READPIXELARRAY not compatible with object » );

      }

      Tout fonctionne sous MiniGL(AOS4) & TinyGL(MOS)

      Je pense que ce la a à voir avec win & Req ou alors le msg …

      Normalement, cette fonction décompresse simplement une imagé chargé via un objet datatype, dans un buffer mémoire dont les infos sont dant la structure bpa. :

      bpa.pbpa_PixelData = pt->Pixels;

      bpa.pbpa_PixelFormat = PBPAFMT_RGBA;

      bpa.pbpa_PixelArrayMod = bmh->bmh_Width * 4;

      bpa.pbpa_Left = 0;

      bpa.pbpa_Top = 0;

      bpa.pbpa_Width = bmh->bmh_Width;

      bpa.pbpa_Height = bmh->bmh_Height;

      Mais je ne suis pas sûr que cela soit compatible MorphOS.

      PS : Le crash est localisé sur la fonction suivante :

      resread = DoDTMethodA( dto, NULL, NULL, bpaptr );

      Car, si je la mets en commentaires (ou la supprime), il n’y a plus de crash à ce niveau là.

      Quelqu’un aurait une idée ?

      Merci par avance.

      @ +

      AmiDARK

      Anonyme

        #153436

        coucou,

        j’arrive pas à lancé les appli darkbasic avec mon codebench, c’est normal, pourtant j’ai tous installé dans le le répertoire sdk?! :sweat:

        T’a pas une doc en francais au faite? ;-)

        henes

          #153437

          Comme expliqué sur morphzone, amiga.lib/DoMethodA() et datatypes.library/DoDTMethodA() ne sont pas interchangeables.

          #include

          resread = DoMethodA( dto, bpaptr );

          Et on verra si ça marche déjà mieux…

          centaurz

            #153438

            @AmiDark

            Utilise DoMethodA() de la libamiga sur les 2 OS, ça te fera moins de boulot (cette fonction a été intégrée à Intuition dans OS4 en la renommant IDoMethodA()).

            Sous OS4, linke avec -lamiga, ce n’est pas automatique.

            AmiDARK

              #153439

              @Tous :

              Merci pour vos réponses :)

              Je vais testouiller cela au plus tôt .

              J’ai testé : C’est OK :)

              Merci à tous :p

              PS : Ce qui est zarb c’est que sous AOS4 c’est une fonction de l’Intuition que j’utilisai pour faire le job :p

              @ +

              AmiDARK

              thellier

                #153440

                Hello AmiDark

                Ce serait sympa de nous poster le listing final qui marche

                MERCI

                Alain Thellier

              6 sujets de 1 à 6 (sur un total de 6)

              • Vous devez être connecté pour répondre à ce sujet.

              Forums AmigaOS, MorphOS et AROS Développement [Fixé] – [AOS4 & MOS] Datatypes : Crash

              Amiga Impact