Ajout de la librairie whereami pour la position de l'exécutable
This commit is contained in:
parent
fd0b73154f
commit
214cc173fc
|
@ -3,7 +3,7 @@ project(ptf)
|
||||||
|
|
||||||
# Inclusion des fichiers d'en-tête et de source
|
# Inclusion des fichiers d'en-tête et de source
|
||||||
include_directories(include)
|
include_directories(include)
|
||||||
file(GLOB SOURCES "src/*.cpp")
|
file(GLOB SOURCES "src/*.cpp" "src/*.c")
|
||||||
|
|
||||||
# Affichage de tous les avertisements
|
# Affichage de tous les avertisements
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
|
|
|
@ -1,15 +1,10 @@
|
||||||
#include "resource_manager.hpp"
|
#include "resource_manager.hpp"
|
||||||
|
#include "whereami.h"
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
// fonctionnalités cross-platform pour les fichiers
|
|
||||||
// source: http://stackoverflow.com/a/145309/3452708
|
|
||||||
#include <stdio.h>
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include <direct.h>
|
|
||||||
#define getcwd _getcwd
|
|
||||||
#define FILE_SEP '\\'
|
#define FILE_SEP '\\'
|
||||||
#else
|
#else
|
||||||
#include <unistd.h>
|
|
||||||
#define FILE_SEP '/'
|
#define FILE_SEP '/'
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -18,17 +13,20 @@ ResourceManager::~ResourceManager() {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Récupère le chemin actuel de l'exécutable
|
* Récupère le chemin actuel de l'exécutable sous la forme
|
||||||
* sous la forme d'une chaîne de caractères
|
* d'une chaîne de caractères grâce à la librairie whereami
|
||||||
*/
|
*/
|
||||||
std::string getCurrentDirectory() {
|
std::string getCurrentDirectory() {
|
||||||
char buffer[FILENAME_MAX];
|
int length = wai_getExecutablePath(NULL, 0, NULL), dirname_length;
|
||||||
|
char* buffer = new char[length + 1];
|
||||||
|
wai_getExecutablePath(buffer, length, &dirname_length);
|
||||||
|
|
||||||
if (getcwd(buffer, sizeof(buffer)) != NULL) {
|
if (dirname_length == 0) {
|
||||||
return std::string(buffer);
|
throw std::runtime_error("Impossible de déterminer le chemin actuel");
|
||||||
}
|
}
|
||||||
|
|
||||||
throw std::runtime_error("Impossible de déterminer le chemin actuel");
|
buffer[length] = '\0';
|
||||||
|
return std::string(buffer).substr(0, dirname_length);
|
||||||
}
|
}
|
||||||
|
|
||||||
sf::Texture& ResourceManager::getTexture(std::string name) {
|
sf::Texture& ResourceManager::getTexture(std::string name) {
|
||||||
|
|
Loading…
Reference in New Issue