Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/09/2008, à 14:32

Pico51

Problème de Splash screen

Bonjour,
J'ai voulu créer mon propre thème usplash en suivant le tuto du site mais il ne marche pas.
Je n'ai aucune idée de ce qui peut poser un problème car le fichier .so a bien été créer et que j'ai réglé mon usplash dans startupmanager. Maintenant, quand je démarre, j'ai un fond noir et du texte. Ce n'est pas trop ce que je voulais.

Voici mon le code du fichier C:

// usplash-simpson par Pico

#include <usplash-theme.h>
/* Needed for the custom drawing functions */
#include <usplash_backend.h>
extern struct usplash_pixmap pixmap_usplash_1024_768;
extern struct usplash_pixmap pixmap_throbber_back_1024_768;
extern struct usplash_pixmap pixmap_throbber_fore_1024_768;

void t_init(struct usplash_theme* theme);
void t_clear_progressbar(struct usplash_theme* theme);
void t_draw_progressbar(struct usplash_theme* theme, int percentage);
void t_animate_step(struct usplash_theme* theme, int pulsating);

struct usplash_theme usplash_theme_1024_768;

struct usplash_theme usplash_theme_1024_768 = {
	.version = THEME_VERSION,
    .next = NULL,
    .ratio = USPLASH_4_3,

	/* Background and font */
	.pixmap = &pixmap_usplash_1024_768,

	/* Palette indexes */
	.background             = 0,
  	.progressbar_background = 32,
  	.progressbar_foreground = 131,
	.text_background        = 0,
	.text_foreground        = 117,
	.text_success           = 189,
	.text_failure           = 55,

	/* Progress bar position and size in pixels */
  	.progressbar_x      = 0,
  	.progressbar_y      = 0,
  	.progressbar_width  = 1024,
  	.progressbar_height = 768,

	/* Text box position and size in pixels */
  	.text_x      = 322,
  	.text_y      = 475,
  	.text_width  = 380,
  	.text_height = 200,

	/* Text details */
  	.line_height  = 15,
  	.line_length  = 32,
  	.status_width = 35,

    /* Functions */
    .init = t_init,
    .clear_progressbar = t_clear_progressbar,
    .draw_progressbar = t_draw_progressbar,
    .animate_step = t_animate_step,
};

void t_init(struct usplash_theme *theme) {
    int x, y;
    usplash_getdimensions(&x, &y);
    theme->progressbar_x = (x - theme->pixmap->width)/2 + theme->progressbar_x;
    theme->progressbar_y = (y - theme->pixmap->height)/2 + theme->progressbar_y;
}

void t_clear_progressbar(struct usplash_theme *theme) {
    t_draw_progressbar(theme, 0);
}

void t_draw_progressbar(struct usplash_theme *theme, int percentage) {
    int w = (pixmap_throbber_back_1024_768.width * percentage / 100);
    usplash_put(theme->progressbar_x, theme->progressbar_y, &pixmap_throbber_back_1024_768);
    if(percentage == 0)
        return;
    if(percentage < 0)
        usplash_put_part(theme->progressbar_x - w, theme->progressbar_y, pixmap_throbber_back_1024_768.width + w,
                         pixmap_throbber_back_1024_768.height, &pixmap_throbber_fore_1024_768, -w, 0);
    else
        usplash_put_part(theme->progressbar_x, theme->progressbar_y, w, pixmap_throbber_back_1024_768.height, 
                         &pixmap_throbber_fore_1024_768, 0, 0);
}

void t_animate_step(struct usplash_theme* theme, int pulsating) {

    static int pulsate_step = 0;
    static int pulse_width = 56;
    static int step_width = 2;
    static int num_steps = 0;
    int x1;
    num_steps = (pixmap_throbber_fore_1024_768.width - pulse_width)/2;

    if (pulsating) {
        t_draw_progressbar(theme, 0);
    
        if(pulsate_step < num_steps/2+1)
	        x1 = 2 * step_width * pulsate_step;
        else
	        x1 = pixmap_throbber_fore_1024_768.width - pulse_width - 2 * step_width * (pulsate_step - num_steps/2+1);

        usplash_put_part(theme->progressbar_x + x1, theme->progressbar_y, pulse_width,
                         pixmap_throbber_fore_1024_768.height, &pixmap_throbber_fore_1024_768, x1, 0);

        pulsate_step = (pulsate_step + 1) % num_steps;
    }
}

Est-ce qu'il y a un problème dans ce code ? Cela vient du Makefile ? Ou de la configuration lors du checkinstall ?

Merci de votre aide.

Dernière modification par Pico51 (Le 11/09/2008, à 14:32)

Hors ligne

#2 Le 11/09/2008, à 15:47

rniamo

Re : Problème de Splash screen

tu as des codes qui marchent ici (avec leur makefile et les images qui vont bien) :
http://archive.ubuntu.com/ubuntu/pool/m … me-ubuntu/
essaye les et si ça marche compare a ton code.


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#3 Le 11/09/2008, à 17:42

Pico51

Re : Problème de Splash screen

Maintenant, j'ai un problème en ce qui concerne la barre d'avancement. En fait, c'est une flèche rouge sur un fond vert et lorsque je démarre mon ordi, à la place de la barre, j'ai un rectangle noir et on voit en bleu foncé la flèche. Comment faire pour que ce soit les couleurs correctes qui soient affichées ?
Merci de votre aide.

Edit : Je pense que cela vient des couleurs indexées mais je ne sais pas comment cela fonctionne.

Dernière modification par Pico51 (Le 11/09/2008, à 18:01)

Hors ligne

#4 Le 11/09/2008, à 18:27

rniamo

Re : Problème de Splash screen

gimp smile


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#5 Le 11/09/2008, à 19:15

Pico51

Re : Problème de Splash screen

Oui, il a fallu que j'utilise Gimp pour modifier les palettes de couleur.
Il faut que les palettes de toutes les images correspondent et configurer correctement le fichier C de manière à ce que les lignes suivantes correspondent avec les index de couleurs :

/* Palette indexes */
    .background             = 0,
      .progressbar_background = 32,
      .progressbar_foreground = 131,
    .text_background        = 0,
    .text_foreground        = 117,
    .text_success           = 189,
    .text_failure           = 55,

Merci de ton aide.

Hors ligne