7f7edc98ca
Suppression d'une fonction non-utilisée Optimisation calcul des CONSTANTES principales
109 lines
2.8 KiB
C
109 lines
2.8 KiB
C
#include "chargement.h"
|
|
|
|
|
|
sfFont* loadFontFromFile(const char *const cheminFichier)
|
|
{
|
|
sfFont *font = sfFont_createFromFile(cheminFichier);
|
|
|
|
if(font == NULL)
|
|
{
|
|
fprintf(stderr, "Erreur lors du chargement de la fonte \"%s\".\n", cheminFichier);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
return font;
|
|
}
|
|
|
|
|
|
sfSprite* loadSpriteFromTexture(const sfVector2f position, const sfTexture *texture)
|
|
{
|
|
sfSprite *sprite = sfSprite_create();
|
|
|
|
if(sprite == NULL)
|
|
{
|
|
fprintf(stderr, "Erreur lors de la création d'un sprite.\n");
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
sfSprite_setTexture(sprite, texture, sfTrue);
|
|
sfSprite_setPosition(sprite, position);
|
|
|
|
return sprite;
|
|
}
|
|
|
|
|
|
sfSprite* loadSpriteFromRenderTexture(const sfRenderTexture *const renderTexture)
|
|
{
|
|
sfSprite *renderSprite = sfSprite_create();
|
|
|
|
if(renderSprite == NULL)
|
|
{
|
|
fprintf(stderr, "Erreur lors de la création d'un sprite.\n");
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
sfSprite_setTexture(renderSprite, sfRenderTexture_getTexture(renderTexture), sfTrue);
|
|
sfSprite_setPosition(renderSprite, (sfVector2f){0.f, 0.f});
|
|
|
|
return renderSprite;
|
|
}
|
|
|
|
|
|
sfTexture* loadTextureFromFile(const char *const cheminFichier)
|
|
{
|
|
sfTexture *texture = sfTexture_createFromFile(cheminFichier, NULL);
|
|
|
|
if(texture == NULL)
|
|
{
|
|
fprintf(stderr, "Erreur lors de la création d'une texture à partir du fichier \"%s\".\n", cheminFichier);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
sfTexture_setSmooth(texture, true);
|
|
|
|
return texture;
|
|
}
|
|
|
|
|
|
sfImage* loadImageFromFile(const char *const cheminFichier)
|
|
{
|
|
sfImage *image = sfImage_createFromFile(cheminFichier);
|
|
|
|
if(image == NULL)
|
|
{
|
|
fprintf(stderr, "Erreur lors de la création d'une image à partir du fichier \"%s\".\n", cheminFichier);
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
return image;
|
|
}
|
|
|
|
|
|
Bouton* loadButtonMenu(const Tool outil, const char *const nom, const char *const cheminImage)
|
|
{
|
|
Bouton *button = calloc(1, sizeof(*button));
|
|
|
|
if(button == NULL)
|
|
{
|
|
fprintf(stderr, "Erreur lors de l\'allocation d\'un nouveau bouton.\n");
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
button->outil = outil;
|
|
// Le champ `zone` sera initialisé durant l'appel à `ajouterEntreeMenu()`...
|
|
strncpy(button->nom, nom, BUTTONAMESIZE);
|
|
|
|
// On charge l'image du bouton dans une texture
|
|
sfTexture *texture = loadTextureFromFile(cheminImage);
|
|
|
|
// On transforme l'image en sprite et l'on stocke le pointeur dans la structure
|
|
button->spriteButton = loadSpriteFromTexture((sfVector2f){0.0, 0.0}, texture);
|
|
// ... mais il ne faut pas oublier de "rescale" le bouton à la taille d'une entrée du menu
|
|
sfSprite_setScale(button->spriteButton, (sfVector2f){MENUWIDTH / (float)sfTexture_getSize(texture).x, RATIOMENU / (float)sfTexture_getSize(texture).y});
|
|
|
|
// On n'oublie pas non plus de sauvegarder en mémoire l'adresse dela texture créée (histoire de la supprimer dans le futur)
|
|
button->textureButton = texture;
|
|
|
|
return button;
|
|
}
|