Discussion: Avancement du projet

  1. #1
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    juin 2004
    Messages
    5 842
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : juin 2004
    Messages : 5 842
    Points : 11 314
    Points
    11 314

    Par défaut Avancement du projet

    Bonjour,

    Pour information, le projet n'est pas à l'abandon. J'attendais juste la stabilisation du compilateur Vala pour ceux qui ne connaissent pas ce langage : http://live.gnome.org/Vala).

    Parmi les avantages de ce langage, j'en retiendrai deux :
    • Compatibilité totale avec le C (puisque le code est transformé en C), donc utilisation de bibliothèques C et le projet sera toujours utilisable en C,
    • Facilité d'écriture du code, puisque la syntaxe et les fonctionnalités sont proches du C#.


    S'ajoute à ça, le système de construction waf, pour remplacer les autotools (trop obscure à mon gout).

    J'ai donc repris le code existant, voici un aperçu du résultat :



    Voici le code du programme :
    Code vala : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    public class Test : Gtk.Window
    {
      private double zoom = 1.0;
      private double angle = 0.0;
      private SDL.Surface bmp;
      private GtkSdl gtk_sdl;
    
      construct
      {
        this.destroy += Gtk.main_quit;
        this.maximize ();
    
        Gtk.VBox vbox = new Gtk.VBox (false, 0);
        this.add (vbox);
    
        this.gtk_sdl = GtkSdl.get_instance ();
        SDL.Key.set_repeat (SDL.DefaultRepeat.DELAY, SDL.DefaultRepeat.INTERVAL);
        vbox.pack_start (this.gtk_sdl, true, true, 0);
    
        Gtk.HBox hbox = new Gtk.HBox (false, 0);
        vbox.pack_start (hbox, false, true, 0);
    
        Gtk.HScale scale = new Gtk.HScale.with_range (-180.0, 180.0, 1.0);
        scale.set_value (0.0);
        hbox.pack_start (scale, true, true, 0);
        scale.value_changed += (s) => {
          this.angle = s.get_value ();
          this.gtk_sdl.draw ();
        };
    
        Gtk.Button button = new Gtk.Button.from_stock (Gtk.STOCK_ZOOM_IN);
        hbox.pack_start (button, false, true, 0);
        button.clicked += () => {
          this.zoom += 0.1;
          this.gtk_sdl.draw ();
        };
    
        button = new Gtk.Button.from_stock (Gtk.STOCK_ZOOM_OUT);
        hbox.pack_start (button, false, true, 0);
        button.clicked += () => {
          this.zoom -= 0.1;
          this.gtk_sdl.draw ();
        };
    
        bmp = SDL.Surface.load_bmp ("./src/gtksdl.bmp");
        if (bmp != null)
        {
          gtk_sdl.draw += (s) => {
            s.screen.fill (null, s.screen.format.map_rgb (0, 0, 0));
    
            SDL.Surface tmp = SDLGraphics.RotoZoom.rotozoom (this.bmp, this.angle,
                                                             this.zoom, 1);
    
            SDL.Rect dstrect;
            dstrect.x = (int16)(s.screen.w - tmp.w) / 2;
            dstrect.y = (int16)(s.screen.h - tmp.h) / 2;
    
            tmp.blit_surface (null, s.screen, dstrect);
    
            s.screen.flip ();
          };
        }
        else
        {
          print ("Unable to load bitmap: %s\n", SDL.get_error ());
        }
      }
    
      public void run ()
      {
        this.show_all ();
      }
    
      public static int main (string[] args)
      {
        Gtk.init (ref args);
        new Test ().run ();
        Gtk.main ();
        return 0;
      }
    }

  2. #2
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    mai 2005
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : mai 2005
    Messages : 3 487
    Points : 5 332
    Points
    5 332

    Par défaut

    Le projet va donc continuer avec Vala ?

    Sinon, quel avantage de Waf par rapport à SCons ?

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  3. #3
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    juin 2004
    Messages
    5 842
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : juin 2004
    Messages : 5 842
    Points : 11 314
    Points
    11 314

    Par défaut

    Citation Envoyé par Thierry Chappuis Voir le message
    Le projet va donc continuer avec Vala ?
    Oui, sauf que j'ai un problème de superposition de widgets : la surface recouvre la barre de bouton.

    Citation Envoyé par Thierry Chappuis Voir le message
    Sinon, quel avantage de Waf par rapport à SCons ?
    http://code.google.com/p/waf/wiki/Wa...._Waf_vs_Scons

    Et je rajouterai qu'il supporte la langage Vala

  4. #4
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    mai 2005
    Messages
    3 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : mai 2005
    Messages : 3 487
    Points : 5 332
    Points
    5 332

    Par défaut

    Citation Envoyé par gege2061 Voir le message
    Oui, sauf que j'ai un problème de superposition de widgets : la surface recouvre la barre de bouton.


    http://code.google.com/p/waf/wiki/Wa...._Waf_vs_Scons

    Et je rajouterai qu'il supporte la langage Vala
    Je suis un utilisateur de Scons et je ne connaissait pas waf. Je vais voir ça de plus près. Le projet m'a l'air intéressant. Sinon, je ne connais pas Vala. Ca me limite un peu pour contribuer.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

Discussions similaires

  1. Avancement du projet
    Par dragonjoker59 dans le forum ProceduralGenerator
    Réponses: 4
    Dernier message: 31/03/2015, 12h08
  2. Avancement du projet
    Par ram-0000 dans le forum Farfelue
    Réponses: 38
    Dernier message: 22/10/2012, 17h46
  3. [Mono] Quelles sont les avancées du projet ?
    Par Louis-Guillaume Morand dans le forum Mono
    Réponses: 50
    Dernier message: 26/05/2008, 10h06
  4. WebUbuntu : une équipe pour faire avancer mon projet
    Par firefrogz dans le forum Autres
    Réponses: 2
    Dernier message: 18/07/2007, 18h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo