General refactoring and minor optimizations throughout the codebase.

This commit is contained in:
Leon Styhre 2021-11-09 22:40:08 +01:00
parent c4b574f571
commit 3e12fcb420
20 changed files with 254 additions and 248 deletions

View file

@ -516,7 +516,8 @@ void CollectionSystemsManager::deleteCollectionFiles(FileData* file)
}
}
bool CollectionSystemsManager::isThemeGenericCollectionCompatible(bool genericCustomCollections)
const bool CollectionSystemsManager::isThemeGenericCollectionCompatible(
bool genericCustomCollections)
{
std::vector<std::string> cfgSys = getCollectionThemeFolders(genericCustomCollections);
for (auto sysIt = cfgSys.cbegin(); sysIt != cfgSys.cend(); sysIt++) {
@ -526,8 +527,8 @@ bool CollectionSystemsManager::isThemeGenericCollectionCompatible(bool genericCu
return true;
}
bool CollectionSystemsManager::isThemeCustomCollectionCompatible(
std::vector<std::string> stringVector)
const bool CollectionSystemsManager::isThemeCustomCollectionCompatible(
const std::vector<std::string>& stringVector)
{
if (isThemeGenericCollectionCompatible(true))
return true;
@ -548,7 +549,8 @@ bool CollectionSystemsManager::isThemeCustomCollectionCompatible(
return true;
}
std::string CollectionSystemsManager::getValidNewCollectionName(std::string inName, int index)
std::string CollectionSystemsManager::getValidNewCollectionName(const std::string& inName,
int index)
{
std::string name = inName;
@ -602,7 +604,7 @@ std::string CollectionSystemsManager::getValidNewCollectionName(std::string inNa
return name;
}
void CollectionSystemsManager::setEditMode(std::string collectionName, bool showPopup)
void CollectionSystemsManager::setEditMode(const std::string& collectionName, bool showPopup)
{
if (mCustomCollectionSystemsData.find(collectionName) == mCustomCollectionSystemsData.cend()) {
LOG(LogError) << "Tried to edit a non-existing collection: " << collectionName;
@ -645,8 +647,8 @@ void CollectionSystemsManager::exitEditMode(bool showPopup)
mEditingCollectionSystemData->system->onMetaDataSavePoint();
}
bool CollectionSystemsManager::inCustomCollection(const std::string& collectionName,
FileData* gameFile)
const bool CollectionSystemsManager::inCustomCollection(const std::string& collectionName,
FileData* gameFile)
{
auto collectionEntry = mCustomCollectionSystemsData.find(collectionName);
@ -658,7 +660,7 @@ bool CollectionSystemsManager::inCustomCollection(const std::string& collectionN
return false;
}
bool CollectionSystemsManager::toggleGameInCollection(FileData* file)
const bool CollectionSystemsManager::toggleGameInCollection(FileData* file)
{
if (file->getType() == GAME) {
bool adding = true;
@ -903,7 +905,7 @@ std::vector<std::string> CollectionSystemsManager::getUnusedSystemsFromTheme()
return themeSys;
}
SystemData* CollectionSystemsManager::addNewCustomCollection(std::string name)
SystemData* CollectionSystemsManager::addNewCustomCollection(const std::string& name)
{
CollectionSystemDecl decl = mCollectionSystemDeclsIndex[myCollectionsName];
decl.themeFolder = name;
@ -913,7 +915,7 @@ SystemData* CollectionSystemsManager::addNewCustomCollection(std::string name)
return createNewCollectionEntry(name, decl, true, true);
}
void CollectionSystemsManager::deleteCustomCollection(std::string collectionName)
void CollectionSystemsManager::deleteCustomCollection(const std::string& collectionName)
{
auto collectionEntry = mCustomCollectionSystemsData.find(collectionName);
@ -1090,7 +1092,7 @@ SystemData* CollectionSystemsManager::getAllGamesCollection()
return allSysData->system;
}
SystemData* CollectionSystemsManager::createNewCollectionEntry(std::string name,
SystemData* CollectionSystemsManager::createNewCollectionEntry(const std::string& name,
CollectionSystemDecl sysDecl,
bool index,
bool custom)
@ -1456,13 +1458,13 @@ void CollectionSystemsManager::trimCollectionCount(FileData* rootFolder, int lim
}
}
bool CollectionSystemsManager::themeFolderExists(std::string folder)
const bool CollectionSystemsManager::themeFolderExists(const std::string& folder)
{
std::vector<std::string> themeSys = getSystemsFromTheme();
return std::find(themeSys.cbegin(), themeSys.cend(), folder) != themeSys.cend();
}
bool CollectionSystemsManager::includeFileInAutoCollections(FileData* file)
const bool CollectionSystemsManager::includeFileInAutoCollections(FileData* file)
{
// We exclude non-game files from collections (i.e. "kodi", entries from non-game systems).
// If/when there are more in the future, maybe this can be a more complex method, with a
@ -1470,7 +1472,8 @@ bool CollectionSystemsManager::includeFileInAutoCollections(FileData* file)
return file->getName() != "kodi" && file->getSystem()->isGameSystem();
}
std::string CollectionSystemsManager::getCustomCollectionConfigPath(std::string collectionName)
std::string CollectionSystemsManager::getCustomCollectionConfigPath(
const std::string& collectionName)
{
return getCollectionsFolder() + "/custom-" + collectionName + ".cfg";
}

View file

@ -90,15 +90,15 @@ public:
void deleteCollectionFiles(FileData* file);
// Return whether the current theme is compatible with Automatic or Custom Collections.
bool isThemeGenericCollectionCompatible(bool genericCustomCollections);
bool isThemeCustomCollectionCompatible(std::vector<std::string> stringVector);
std::string getValidNewCollectionName(std::string name, int index = 0);
const bool isThemeGenericCollectionCompatible(bool genericCustomCollections);
const bool isThemeCustomCollectionCompatible(const std::vector<std::string>& stringVector);
std::string getValidNewCollectionName(const std::string& name, int index = 0);
void setEditMode(std::string collectionName, bool showPopup = true);
void setEditMode(const std::string& collectionName, bool showPopup = true);
void exitEditMode(bool showPopup = true);
bool inCustomCollection(const std::string& collectionName, FileData* gameFile);
const bool inCustomCollection(const std::string& collectionName, FileData* gameFile);
// Add or remove a game from a specific collection.
bool toggleGameInCollection(FileData* file);
const bool toggleGameInCollection(FileData* file);
SystemData* getSystemToView(SystemData* sys);
// Used to generate a description of the collection (all other metadata fields are hidden).
@ -106,8 +106,8 @@ public:
// Return the unused folders from current theme path.
std::vector<std::string> getUnusedSystemsFromTheme();
SystemData* addNewCustomCollection(std::string name);
void deleteCustomCollection(std::string collectionName);
SystemData* addNewCustomCollection(const std::string& name);
void deleteCustomCollection(const std::string& collectionName);
// Reactivate a game in all custom collections where it has an entry in the configuration file.
void reactivateCustomCollectionEntry(FileData* game);
@ -115,17 +115,19 @@ public:
// Repopulate the collection, which is basically a forced update of its complete content.
void repopulateCollection(SystemData* sysData);
std::map<std::string, CollectionSystemData, stringComparator> getAutoCollectionSystems()
const std::map<std::string, CollectionSystemData, stringComparator>& // Line break.
getAutoCollectionSystems() const
{
return mAutoCollectionSystemsData;
}
std::map<std::string, CollectionSystemData, stringComparator> getCustomCollectionSystems()
const std::map<std::string, CollectionSystemData, stringComparator>&
getCustomCollectionSystems()
{
return mCustomCollectionSystemsData;
}
SystemData* getCustomCollectionsBundle() { return mCustomCollectionsBundle; }
bool isEditing() { return mIsEditingCustom; }
std::string getEditingCollection() { return mEditingCollection; }
SystemData* getCustomCollectionsBundle() const { return mCustomCollectionsBundle; }
const bool isEditing() const { return mIsEditingCustom; }
const std::string& getEditingCollection() const { return mEditingCollection; }
private:
static CollectionSystemsManager* sInstance;
@ -146,7 +148,7 @@ private:
void initCustomCollectionSystems();
SystemData* getAllGamesCollection();
// Create a new empty collection system based on the name and declaration.
SystemData* createNewCollectionEntry(std::string name,
SystemData* createNewCollectionEntry(const std::string& name,
CollectionSystemDecl sysDecl,
bool index = true,
bool custom = false);
@ -172,10 +174,10 @@ private:
std::vector<std::string> getUserCollectionThemeFolders();
void trimCollectionCount(FileData* rootFolder, int limit);
// Return whether a specific folder exists in the theme.
bool themeFolderExists(std::string folder);
bool includeFileInAutoCollections(FileData* file);
const bool themeFolderExists(const std::string& folder);
const bool includeFileInAutoCollections(FileData* file);
std::string getCustomCollectionConfigPath(std::string collectionName);
std::string getCustomCollectionConfigPath(const std::string& collectionName);
std::string getCollectionsFolder();
};

View file

@ -142,7 +142,7 @@ const std::vector<FileData*> FileData::getChildrenRecursive() const
std::vector<FileData*> childrenRecursive;
for (auto it = mChildrenByFilename.cbegin(); it != mChildrenByFilename.cend(); it++) {
childrenRecursive.push_back((*it).second);
childrenRecursive.emplace_back((*it).second);
// Recurse through any subdirectories.
if ((*it).second->getType() == FOLDER) {
std::vector<FileData*> childrenSubdirectory = (*it).second->getChildrenRecursive();
@ -208,7 +208,7 @@ const std::string FileData::getMediaDirectory()
return mediaDirPath;
}
const std::string FileData::getMediafilePath(std::string subdirectory) const
const std::string FileData::getMediafilePath(const std::string& subdirectory) const
{
const std::vector<std::string> extList = {".png", ".jpg"};
std::string subFolders;
@ -336,7 +336,7 @@ const std::vector<FileData*>& FileData::getChildrenListToDisplay()
mFilteredChildren.clear();
for (auto it = mChildren.cbegin(); it != mChildren.cend(); it++) {
if (idx->showFile((*it))) {
mFilteredChildren.push_back(*it);
mFilteredChildren.emplace_back(*it);
}
}
return mFilteredChildren;
@ -357,9 +357,9 @@ std::vector<FileData*> FileData::getFilesRecursive(unsigned int typeMask,
if ((*it)->getType() & typeMask) {
if (!displayedOnly || !idx->isFiltered() || idx->showFile(*it)) {
if (countAllGames)
out.push_back(*it);
out.emplace_back(*it);
else if ((*it)->getCountAsGame())
out.push_back(*it);
out.emplace_back(*it);
}
}
if ((*it)->getChildren().size() > 0) {
@ -370,7 +370,7 @@ std::vector<FileData*> FileData::getFilesRecursive(unsigned int typeMask,
else {
for (auto it2 = subChildren.cbegin(); it2 != subChildren.cend(); it2++) {
if ((*it2)->getCountAsGame())
out.push_back(*it2);
out.emplace_back(*it2);
}
}
}
@ -388,11 +388,11 @@ std::vector<FileData*> FileData::getScrapeFilesRecursive(bool includeFolders,
for (auto it = mChildren.cbegin(); it != mChildren.cend(); it++) {
if (includeFolders && (*it)->getType() == FOLDER) {
if (!(respectExclusions && (*it)->getExcludeFromScraper()))
out.push_back(*it);
out.emplace_back(*it);
}
else if ((*it)->getType() == GAME) {
if (!(respectExclusions && (*it)->getExcludeFromScraper()))
out.push_back(*it);
out.emplace_back(*it);
}
// If the flag has been passed to exclude directories recursively, then skip the entire
@ -410,9 +410,7 @@ std::vector<FileData*> FileData::getScrapeFilesRecursive(bool includeFolders,
return out;
}
std::string FileData::getKey() { return getFileName(); }
const bool FileData::isArcadeAsset()
const bool FileData::isArcadeAsset() const
{
const std::string stem = Utils::FileSystem::getStem(mPath);
return ((mSystem && (mSystem->hasPlatformId(PlatformIds::ARCADE) ||
@ -420,7 +418,7 @@ const bool FileData::isArcadeAsset()
(MameNames::getInstance()->isBios(stem) || MameNames::getInstance()->isDevice(stem)));
}
const bool FileData::isArcadeGame()
const bool FileData::isArcadeGame() const
{
const std::string stem = Utils::FileSystem::getStem(mPath);
return ((mSystem && (mSystem->hasPlatformId(PlatformIds::ARCADE) ||
@ -428,8 +426,6 @@ const bool FileData::isArcadeGame()
(!MameNames::getInstance()->isBios(stem) && !MameNames::getInstance()->isDevice(stem)));
}
FileData* FileData::getSourceFileData() { return this; }
void FileData::addChild(FileData* file)
{
assert(mType == FOLDER);
@ -438,7 +434,7 @@ void FileData::addChild(FileData* file)
const std::string key = file->getKey();
if (mChildrenByFilename.find(key) == mChildrenByFilename.cend()) {
mChildrenByFilename[key] = file;
mChildren.push_back(file);
mChildren.emplace_back(file);
file->mParent = this;
}
}
@ -511,10 +507,10 @@ void FileData::sort(ComparisonFunction& comparator,
if (foldersOnTop) {
for (unsigned int i = 0; i < mChildren.size(); i++) {
if (mChildren[i]->getType() == FOLDER) {
mChildrenFolders.push_back(mChildren[i]);
mChildrenFolders.emplace_back(mChildren[i]);
}
else {
mChildrenOthers.push_back(mChildren[i]);
mChildrenOthers.emplace_back(mChildren[i]);
mOnlyFolders = false;
}
}
@ -628,15 +624,15 @@ void FileData::sortFavoritesOnTop(ComparisonFunction& comparator,
if (foldersOnTop && mChildren[i]->getType() == FOLDER) {
if (!mChildren[i]->getFavorite())
mChildrenFolders.push_back(mChildren[i]);
mChildrenFolders.emplace_back(mChildren[i]);
else
mChildrenFavoritesFolders.push_back(mChildren[i]);
mChildrenFavoritesFolders.emplace_back(mChildren[i]);
}
else if (mChildren[i]->getFavorite()) {
mChildrenFavorites.push_back(mChildren[i]);
mChildrenFavorites.emplace_back(mChildren[i]);
}
else {
mChildrenOthers.push_back(mChildren[i]);
mChildrenOthers.emplace_back(mChildren[i]);
}
if (mChildren[i]->getType() != FOLDER)
@ -751,7 +747,7 @@ void FileData::countGames(std::pair<unsigned int, unsigned int>& gameCount)
mGameCount = gameCount;
}
FileData::SortType FileData::getSortTypeFromString(std::string desc)
const FileData::SortType& FileData::getSortTypeFromString(const std::string& desc) const
{
std::vector<FileData::SortType> SortTypes = FileSorts::SortTypes;
@ -1149,7 +1145,7 @@ void FileData::launchGame(Window* window)
gameToUpdate->mSystem->onMetaDataSavePoint();
}
std::string FileData::findEmulatorPath(std::string& command)
const std::string FileData::findEmulatorPath(std::string& command)
{
// Extract the emulator executable from the launch command string. There are two ways
// that the emulator can be defined in es_systems.xml, either using the find rules in

View file

@ -43,7 +43,7 @@ public:
const bool getKidgame();
const bool getHidden();
const bool getCountAsGame();
const std::pair<unsigned int, unsigned int> getGameCount() { return mGameCount; }
const std::pair<unsigned int, unsigned int>& getGameCount() const { return mGameCount; }
const bool getExcludeFromScraper();
const std::vector<FileData*> getChildrenRecursive() const;
FileType getType() const { return mType; }
@ -56,11 +56,11 @@ public:
const std::vector<FileData*>& getChildren() const { return mChildren; }
SystemData* getSystem() const { return mSystem; }
SystemEnvironmentData* getSystemEnvData() const { return mEnvData; }
const bool getOnlyFoldersFlag() { return mOnlyFolders; }
const bool getHasFoldersFlag() { return mHasFolders; }
const bool getOnlyFoldersFlag() const { return mOnlyFolders; }
const bool getHasFoldersFlag() const { return mHasFolders; }
static const std::string getROMDirectory();
static const std::string getMediaDirectory();
const std::string getMediafilePath(std::string subdirectory) const;
const std::string getMediafilePath(const std::string& subdirectory) const;
const std::string getImagePath() const;
const std::string get3DBoxPath() const;
const std::string getBackCoverPath() const;
@ -73,7 +73,7 @@ public:
const std::string getThumbnailPath() const;
const std::string getVideoPath() const;
bool getDeletionFlag() { return mDeletionFlag; }
const bool getDeletionFlag() const { return mDeletionFlag; }
void setDeletionFlag(bool setting) { mDeletionFlag = setting; }
const std::vector<FileData*>& getChildrenListToDisplay();
@ -87,17 +87,17 @@ public:
void addChild(FileData* file); // Error if mType != FOLDER
void removeChild(FileData* file); // Error if mType != FOLDER
bool isPlaceHolder() { return mType == PLACEHOLDER; }
const bool isPlaceHolder() const { return mType == PLACEHOLDER; }
virtual void refreshMetadata() { return; }
virtual std::string getKey();
const bool isArcadeAsset();
const bool isArcadeGame();
std::string getFullPath() { return getPath(); }
virtual std::string getKey() { return getFileName(); }
const bool isArcadeAsset() const;
const bool isArcadeGame() const;
const std::string& getFullPath() const { return getPath(); }
std::string getFileName() { return Utils::FileSystem::getFileName(getPath()); }
virtual FileData* getSourceFileData();
std::string getSystemName() const { return mSystemName; }
virtual FileData* getSourceFileData() { return this; }
const std::string& getSystemName() const { return mSystemName; }
// Returns our best guess at the "real" name for this file.
std::string getDisplayName() const;
@ -106,7 +106,7 @@ public:
std::string getCleanName() const;
void launchGame(Window* window);
std::string findEmulatorPath(std::string& command);
const std::string findEmulatorPath(std::string& command);
typedef bool ComparisonFunction(const FileData* a, const FileData* b);
struct SortType {
@ -128,8 +128,8 @@ public:
void countGames(std::pair<unsigned int, unsigned int>& gameCount);
void setSortTypeString(std::string typestring) { mSortTypeString = typestring; }
std::string getSortTypeString() { return mSortTypeString; }
FileData::SortType getSortTypeFromString(std::string desc);
const std::string& getSortTypeString() const { return mSortTypeString; }
const FileData::SortType& getSortTypeFromString(const std::string& desc) const;
protected:
FileData* mSourceFileData;

View file

@ -14,61 +14,64 @@
#include <pugixml.hpp>
// clang-format off
// The statistic entries must be placed at the bottom or otherwise there will be problems with
// saving the values in GuiMetaDataEd.
MetaDataDecl gameDecls[] = {
// key, type, default, statistic, name in GuiMetaDataEd, prompt in GuiMetaDataEd, shouldScrape
{"name", MD_STRING, "", false, "name", "enter name", true},
{"sortname", MD_STRING, "", false, "sortname", "enter sortname", false},
{"desc", MD_MULTILINE_STRING, "", false, "description", "enter description", true},
{"rating", MD_RATING, "0", false, "rating", "enter rating", true},
{"releasedate", MD_DATE, "19700101T010000", false, "release date", "enter release date", true},
{"developer", MD_STRING, "unknown", false, "developer", "enter developer", true},
{"publisher", MD_STRING, "unknown", false, "publisher", "enter publisher", true},
{"genre", MD_STRING, "unknown", false, "genre", "enter genre", true},
{"players", MD_STRING, "unknown", false, "players", "enter number of players", true},
{"favorite", MD_BOOL, "false", false, "favorite", "enter favorite off/on", false},
{"completed", MD_BOOL, "false", false, "completed", "enter completed off/on", false},
{"kidgame", MD_BOOL, "false", false, "kidgame", "enter kidgame off/on", false},
{"hidden", MD_BOOL, "false", false, "hidden", "enter hidden off/on", false},
{"broken", MD_BOOL, "false", false, "broken/not working", "enter broken off/on", false},
{"nogamecount", MD_BOOL, "false", false, "exclude from game counter", "enter don't count as game off/on", false},
{"nomultiscrape", MD_BOOL, "false", false, "exclude from multi-scraper", "enter no multi-scrape off/on", false},
{"hidemetadata", MD_BOOL, "false", false, "hide metadata fields", "enter hide metadata off/on", false},
{"playcount", MD_INT, "0", false, "times played", "enter number of times played", false},
{"controller", MD_CONTROLLER, "", false, "controller", "select controller", true},
{"altemulator", MD_ALT_EMULATOR, "", false, "alternative emulator", "select alternative emulator", false},
{"lastplayed", MD_TIME, "0", true, "last played", "enter last played date", false}
};
namespace
{
// clang-format off
// The statistic entries must be placed at the bottom or otherwise there will be problems with
// saving the values in GuiMetaDataEd.
MetaDataDecl gameDecls[] = {
// key, type, default, statistic, name in GuiMetaDataEd, prompt in GuiMetaDataEd, shouldScrape
{"name", MD_STRING, "", false, "name", "enter name", true},
{"sortname", MD_STRING, "", false, "sortname", "enter sortname", false},
{"desc", MD_MULTILINE_STRING, "", false, "description", "enter description", true},
{"rating", MD_RATING, "0", false, "rating", "enter rating", true},
{"releasedate", MD_DATE, "19700101T010000", false, "release date", "enter release date", true},
{"developer", MD_STRING, "unknown", false, "developer", "enter developer", true},
{"publisher", MD_STRING, "unknown", false, "publisher", "enter publisher", true},
{"genre", MD_STRING, "unknown", false, "genre", "enter genre", true},
{"players", MD_STRING, "unknown", false, "players", "enter number of players", true},
{"favorite", MD_BOOL, "false", false, "favorite", "enter favorite off/on", false},
{"completed", MD_BOOL, "false", false, "completed", "enter completed off/on", false},
{"kidgame", MD_BOOL, "false", false, "kidgame", "enter kidgame off/on", false},
{"hidden", MD_BOOL, "false", false, "hidden", "enter hidden off/on", false},
{"broken", MD_BOOL, "false", false, "broken/not working", "enter broken off/on", false},
{"nogamecount", MD_BOOL, "false", false, "exclude from game counter", "enter don't count as game off/on", false},
{"nomultiscrape", MD_BOOL, "false", false, "exclude from multi-scraper", "enter no multi-scrape off/on", false},
{"hidemetadata", MD_BOOL, "false", false, "hide metadata fields", "enter hide metadata off/on", false},
{"playcount", MD_INT, "0", false, "times played", "enter number of times played", false},
{"controller", MD_CONTROLLER, "", false, "controller", "select controller", true},
{"altemulator", MD_ALT_EMULATOR, "", false, "alternative emulator", "select alternative emulator", false},
{"lastplayed", MD_TIME, "0", true, "last played", "enter last played date", false}
};
MetaDataDecl folderDecls[] = {
{"name", MD_STRING, "", false, "name", "enter name", true},
{"desc", MD_MULTILINE_STRING, "", false, "description", "enter description", true},
{"rating", MD_RATING, "0", false, "rating", "enter rating", true},
{"releasedate", MD_DATE, "19700101T010000", false, "release date", "enter release date", true},
{"developer", MD_STRING, "unknown", false, "developer", "enter developer", true},
{"publisher", MD_STRING, "unknown", false, "publisher", "enter publisher", true},
{"genre", MD_STRING, "unknown", false, "genre", "enter genre", true},
{"players", MD_STRING, "unknown", false, "players", "enter number of players", true},
{"favorite", MD_BOOL, "false", false, "favorite", "enter favorite off/on", false},
{"completed", MD_BOOL, "false", false, "completed", "enter completed off/on", false},
{"kidgame", MD_BOOL, "false", false, "kidgame (only affects badges)", "enter kidgame off/on", false},
{"hidden", MD_BOOL, "false", false, "hidden", "enter hidden off/on", false},
{"broken", MD_BOOL, "false", false, "broken/not working", "enter broken off/on", false},
{"nomultiscrape", MD_BOOL, "false", false, "exclude from multi-scraper", "enter no multi-scrape off/on", false},
{"hidemetadata", MD_BOOL, "false", false, "hide metadata fields", "enter hide metadata off/on", false},
{"controller", MD_CONTROLLER, "", false, "controller", "select controller", true},
{"lastplayed", MD_TIME, "0", true, "last played", "enter last played date", false}
};
// clang-format on
MetaDataDecl folderDecls[] = {
{"name", MD_STRING, "", false, "name", "enter name", true},
{"desc", MD_MULTILINE_STRING, "", false, "description", "enter description", true},
{"rating", MD_RATING, "0", false, "rating", "enter rating", true},
{"releasedate", MD_DATE, "19700101T010000", false, "release date", "enter release date", true},
{"developer", MD_STRING, "unknown", false, "developer", "enter developer", true},
{"publisher", MD_STRING, "unknown", false, "publisher", "enter publisher", true},
{"genre", MD_STRING, "unknown", false, "genre", "enter genre", true},
{"players", MD_STRING, "unknown", false, "players", "enter number of players", true},
{"favorite", MD_BOOL, "false", false, "favorite", "enter favorite off/on", false},
{"completed", MD_BOOL, "false", false, "completed", "enter completed off/on", false},
{"kidgame", MD_BOOL, "false", false, "kidgame (only affects badges)", "enter kidgame off/on", false},
{"hidden", MD_BOOL, "false", false, "hidden", "enter hidden off/on", false},
{"broken", MD_BOOL, "false", false, "broken/not working", "enter broken off/on", false},
{"nomultiscrape", MD_BOOL, "false", false, "exclude from multi-scraper", "enter no multi-scrape off/on", false},
{"hidemetadata", MD_BOOL, "false", false, "hide metadata fields", "enter hide metadata off/on", false},
{"controller", MD_CONTROLLER, "", false, "controller", "select controller", true},
{"lastplayed", MD_TIME, "0", true, "last played", "enter last played date", false}
};
// clang-format on
const std::vector<MetaDataDecl> gameMDD(gameDecls,
gameDecls + sizeof(gameDecls) / sizeof(gameDecls[0]));
const std::vector<MetaDataDecl> gameMDD(gameDecls,
gameDecls + sizeof(gameDecls) / sizeof(gameDecls[0]));
const std::vector<MetaDataDecl> folderMDD(folderDecls,
folderDecls +
sizeof(folderDecls) / sizeof(folderDecls[0]));
const std::vector<MetaDataDecl> folderMDD(folderDecls,
folderDecls +
sizeof(folderDecls) / sizeof(folderDecls[0]));
} // namespace
const std::vector<MetaDataDecl>& getMDDByType(MetaDataListType type)
{

View file

@ -973,7 +973,7 @@ bool SystemData::createSystemDirectories()
return false;
}
bool SystemData::isVisible()
const bool SystemData::isVisible() const
{
// This function doesn't make much sense at the moment; if a system does not have any
// games available, it will not be processed during startup and will as such not exist.

View file

@ -96,10 +96,10 @@ public:
std::string getThemePath() const;
std::pair<unsigned int, unsigned int> getDisplayedGameCount() const;
bool getScrapeFlag() { return mScrapeFlag; }
const bool getScrapeFlag() const { return mScrapeFlag; }
void setScrapeFlag(bool scrapeflag) { mScrapeFlag = scrapeflag; }
std::string getAlternativeEmulator() { return mAlternativeEmulator; }
const std::string& getAlternativeEmulator() const { return mAlternativeEmulator; }
void setAlternativeEmulator(const std::string& command) { mAlternativeEmulator = command; }
std::string getLaunchCommandFromLabel(const std::string& label);
@ -122,16 +122,16 @@ public:
{
return std::find(sSystemVector.crbegin(), sSystemVector.crend(), this);
}
bool isCollection() { return mIsCollectionSystem; }
bool isCustomCollection() { return mIsCustomCollectionSystem; }
bool isGroupedCustomCollection() { return mIsGroupedCustomCollectionSystem; }
const bool isCollection() const { return mIsCollectionSystem; }
const bool isCustomCollection() const { return mIsCustomCollectionSystem; }
const bool isGroupedCustomCollection() const { return mIsGroupedCustomCollectionSystem; }
void setIsGroupedCustomCollection(bool isGroupedCustom)
{
mIsGroupedCustomCollectionSystem = isGroupedCustom;
};
bool isGameSystem() { return mIsGameSystem; }
const bool isGameSystem() const { return mIsGameSystem; }
bool isVisible();
const bool isVisible() const;
static SystemData* getSystemByName(const std::string& systemName);
SystemData* getNext() const;

View file

@ -111,7 +111,7 @@ void GuiComponent::setOrigin(float x, float y)
onOriginChanged();
}
void GuiComponent::setSize(float w, float h)
void GuiComponent::setSize(const float w, const float h)
{
if (mSize.x == w && mSize.y == h)
return;

View file

@ -88,7 +88,7 @@ public:
virtual glm::vec2 getSize() const { return mSize; }
void setSize(const glm::vec2& size) { setSize(size.x, size.y); }
void setSize(float w, float h);
void setSize(const float w, const float h);
virtual void setResize(float width, float height) {}
virtual void onSizeChanged() {}

View file

@ -22,45 +22,46 @@
std::vector<GameControllers> BadgeComponent::sGameControllers;
// clang-format off
// The "unknown" controller entry has to be placed last.
GameControllers sControllerDefinitions [] = {
// shortName displayName fileName
{"gamepad_generic", "Gamepad (Generic)", ":/graphics/controllers/gamepad_generic.svg"},
{"gamepad_nintendo_nes", "Gamepad (Nintendo NES)", ":/graphics/controllers/gamepad_nintendo_nes.svg"},
{"gamepad_nintendo_snes", "Gamepad (Nintendo SNES)", ":/graphics/controllers/gamepad_nintendo_snes.svg"},
{"gamepad_nintendo_64", "Gamepad (Nintendo 64)", ":/graphics/controllers/gamepad_nintendo_64.svg"},
{"gamepad_playstation", "Gamepad (PlayStation)", ":/graphics/controllers/gamepad_playstation.svg"},
{"gamepad_sega_md_3_buttons", "Gamepad (Sega Mega Drive/Genesis 3 Buttons)", ":/graphics/controllers/gamepad_sega_md_3_buttons.svg"},
{"gamepad_sega_md_6_buttons", "Gamepad (Sega Mega Drive/Genesis 6 Buttons)", ":/graphics/controllers/gamepad_sega_md_6_buttons.svg"},
{"gamepad_xbox", "Gamepad (Xbox)", ":/graphics/controllers/gamepad_xbox.svg"},
{"joystick_generic", "Joystick (Generic)", ":/graphics/controllers/joystick_generic.svg"},
{"joystick_arcade_no_buttons", "Joystick (Arcade No Buttons)", ":/graphics/controllers/joystick_arcade_no_buttons.svg"},
{"joystick_arcade_1_button", "Joystick (Arcade 1 Button)", ":/graphics/controllers/joystick_arcade_1_button.svg"},
{"joystick_arcade_2_buttons", "Joystick (Arcade 2 Buttons)", ":/graphics/controllers/joystick_arcade_2_buttons.svg"},
{"joystick_arcade_3_buttons", "Joystick (Arcade 3 Buttons)", ":/graphics/controllers/joystick_arcade_3_buttons.svg"},
{"joystick_arcade_4_buttons", "Joystick (Arcade 4 Buttons)", ":/graphics/controllers/joystick_arcade_4_buttons.svg"},
{"joystick_arcade_5_buttons", "Joystick (Arcade 5 Buttons)", ":/graphics/controllers/joystick_arcade_5_buttons.svg"},
{"joystick_arcade_6_buttons", "Joystick (Arcade 6 Buttons)", ":/graphics/controllers/joystick_arcade_6_buttons.svg"},
{"keyboard_generic", "Keyboard (Generic)", ":/graphics/controllers/keyboard_generic.svg"},
{"keyboard_and_mouse_generic", "Keyboard and Mouse (Generic)", ":/graphics/controllers/keyboard_and_mouse_generic.svg"},
{"mouse_generic", "Mouse (Generic)", ":/graphics/controllers/mouse_generic.svg"},
{"mouse_amiga", "Mouse (Amiga)", ":/graphics/controllers/mouse_amiga.svg"},
{"lightgun_generic", "Lightgun (Generic)", ":/graphics/controllers/lightgun_generic.svg"},
{"lightgun_nintendo", "Lightgun (Nintendo)", ":/graphics/controllers/lightgun_nintendo.svg"},
{"steering_wheel_generic", "Steering Wheel (Generic)", ":/graphics/controllers/steering_wheel_generic.svg"},
{"flight_stick_generic", "Flight Stick (Generic)", ":/graphics/controllers/flight_stick_generic.svg"},
{"spinner_generic", "Spinner (Generic)", ":/graphics/controllers/spinner_generic.svg"},
{"trackball_generic", "Trackball (Generic)", ":/graphics/controllers/trackball_generic.svg"},
{"wii_remote_nintendo", "Wii Remote (Nintendo)", ":/graphics/controllers/wii_remote_nintendo.svg"},
{"wii_remote_and_nunchuk_nintendo", "Wii Remote and Nunchuk (Nintendo)", ":/graphics/controllers/wii_remote_and_nunchuk_nintendo.svg"},
{"joycon_left_or_right_nintendo", "Joy-Con Left or Right (Nintendo)", ":/graphics/controllers/joycon_left_or_right_nintendo.svg"},
{"joycon_pair_nintendo", "Joy-Con Pair (Nintendo)", ":/graphics/controllers/joycon_pair_nintendo.svg"},
{"unknown", "Unknown Controller", ":/graphics/controllers/unknown.svg"}
};
// clang-format on
namespace
{
// clang-format off
// The "unknown" controller entry has to be placed last.
GameControllers sControllerDefinitions [] = {
// shortName displayName fileName
{"gamepad_generic", "Gamepad (Generic)", ":/graphics/controllers/gamepad_generic.svg"},
{"gamepad_nintendo_nes", "Gamepad (Nintendo NES)", ":/graphics/controllers/gamepad_nintendo_nes.svg"},
{"gamepad_nintendo_snes", "Gamepad (Nintendo SNES)", ":/graphics/controllers/gamepad_nintendo_snes.svg"},
{"gamepad_nintendo_64", "Gamepad (Nintendo 64)", ":/graphics/controllers/gamepad_nintendo_64.svg"},
{"gamepad_playstation", "Gamepad (PlayStation)", ":/graphics/controllers/gamepad_playstation.svg"},
{"gamepad_sega_md_3_buttons", "Gamepad (Sega Mega Drive/Genesis 3 Buttons)", ":/graphics/controllers/gamepad_sega_md_3_buttons.svg"},
{"gamepad_sega_md_6_buttons", "Gamepad (Sega Mega Drive/Genesis 6 Buttons)", ":/graphics/controllers/gamepad_sega_md_6_buttons.svg"},
{"gamepad_xbox", "Gamepad (Xbox)", ":/graphics/controllers/gamepad_xbox.svg"},
{"joystick_generic", "Joystick (Generic)", ":/graphics/controllers/joystick_generic.svg"},
{"joystick_arcade_no_buttons", "Joystick (Arcade No Buttons)", ":/graphics/controllers/joystick_arcade_no_buttons.svg"},
{"joystick_arcade_1_button", "Joystick (Arcade 1 Button)", ":/graphics/controllers/joystick_arcade_1_button.svg"},
{"joystick_arcade_2_buttons", "Joystick (Arcade 2 Buttons)", ":/graphics/controllers/joystick_arcade_2_buttons.svg"},
{"joystick_arcade_3_buttons", "Joystick (Arcade 3 Buttons)", ":/graphics/controllers/joystick_arcade_3_buttons.svg"},
{"joystick_arcade_4_buttons", "Joystick (Arcade 4 Buttons)", ":/graphics/controllers/joystick_arcade_4_buttons.svg"},
{"joystick_arcade_5_buttons", "Joystick (Arcade 5 Buttons)", ":/graphics/controllers/joystick_arcade_5_buttons.svg"},
{"joystick_arcade_6_buttons", "Joystick (Arcade 6 Buttons)", ":/graphics/controllers/joystick_arcade_6_buttons.svg"},
{"keyboard_generic", "Keyboard (Generic)", ":/graphics/controllers/keyboard_generic.svg"},
{"keyboard_and_mouse_generic", "Keyboard and Mouse (Generic)", ":/graphics/controllers/keyboard_and_mouse_generic.svg"},
{"mouse_generic", "Mouse (Generic)", ":/graphics/controllers/mouse_generic.svg"},
{"mouse_amiga", "Mouse (Amiga)", ":/graphics/controllers/mouse_amiga.svg"},
{"lightgun_generic", "Lightgun (Generic)", ":/graphics/controllers/lightgun_generic.svg"},
{"lightgun_nintendo", "Lightgun (Nintendo)", ":/graphics/controllers/lightgun_nintendo.svg"},
{"steering_wheel_generic", "Steering Wheel (Generic)", ":/graphics/controllers/steering_wheel_generic.svg"},
{"flight_stick_generic", "Flight Stick (Generic)", ":/graphics/controllers/flight_stick_generic.svg"},
{"spinner_generic", "Spinner (Generic)", ":/graphics/controllers/spinner_generic.svg"},
{"trackball_generic", "Trackball (Generic)", ":/graphics/controllers/trackball_generic.svg"},
{"wii_remote_nintendo", "Wii Remote (Nintendo)", ":/graphics/controllers/wii_remote_nintendo.svg"},
{"wii_remote_and_nunchuk_nintendo", "Wii Remote and Nunchuk (Nintendo)", ":/graphics/controllers/wii_remote_and_nunchuk_nintendo.svg"},
{"joycon_left_or_right_nintendo", "Joy-Con Left or Right (Nintendo)", ":/graphics/controllers/joycon_left_or_right_nintendo.svg"},
{"joycon_pair_nintendo", "Joy-Con Pair (Nintendo)", ":/graphics/controllers/joycon_pair_nintendo.svg"},
{"unknown", "Unknown Controller", ":/graphics/controllers/unknown.svg"}
};
// clang-format on
} // namespace
BadgeComponent::BadgeComponent(Window* window)
: GuiComponent{window}
@ -81,7 +82,7 @@ void BadgeComponent::populateGameControllers()
{
sGameControllers.clear();
for (auto controller : sControllerDefinitions)
sGameControllers.push_back(controller);
sGameControllers.emplace_back(controller);
}
void BadgeComponent::setBadges(const std::vector<BadgeInfo>& badges)
@ -289,7 +290,7 @@ void BadgeComponent::applyTheme(const std::shared_ptr<ThemeData>& theme,
item.baseImage = badgeImage;
item.overlayImage = ImageComponent{mWindow};
mFlexboxItems.push_back(item);
mFlexboxItems.emplace_back(std::move(item));
}
else {
LOG(LogError) << "Invalid badge slot \"" << slot << "\" defined";

View file

@ -30,7 +30,7 @@ public:
};
static void populateGameControllers();
std::vector<std::string> getBadgeTypes() { return mBadgeTypes; }
const std::vector<std::string>& getBadgeTypes() const { return mBadgeTypes; }
void setBadges(const std::vector<BadgeInfo>& badges);
static const std::vector<GameControllers>& getGameControllers()
{

View file

@ -164,7 +164,7 @@ void FlexboxComponent::computeLayout()
if (mDirection == "row") {
for (int y = 0; y < grid.y; y++) {
for (int x = 0; x < grid.x; x++) {
itemPositions.push_back(
itemPositions.emplace_back(
glm::vec2{(x * (maxItemSize.x + mItemMargin.x) + alignRightComp),
y * (rowHeight + mItemMargin.y)});
}
@ -173,15 +173,15 @@ void FlexboxComponent::computeLayout()
else if (mDirection == "column" && !alignRight) {
for (int x = 0; x < grid.x; x++) {
for (int y = 0; y < grid.y; y++) {
itemPositions.push_back(glm::vec2{(x * (maxItemSize.x + mItemMargin.x)),
y * (rowHeight + mItemMargin.y)});
itemPositions.emplace_back(glm::vec2{(x * (maxItemSize.x + mItemMargin.x)),
y * (rowHeight + mItemMargin.y)});
}
}
}
else { // Right-aligned.
for (int x = 0; x < grid.x; x++) {
for (int y = 0; y < grid.y; y++) {
itemPositions.push_back(
itemPositions.emplace_back(
glm::vec2{(mSize.x - (x * (maxItemSize.x + mItemMargin.x)) - maxItemSize.x),
y * (rowHeight + mItemMargin.y)});
}

View file

@ -29,14 +29,14 @@ public:
FlexboxComponent(Window* window, std::vector<FlexboxItem>& items);
// Getters/setters for the layout.
std::string getDirection() const { return mDirection; }
const std::string& getDirection() const { return mDirection; }
void setDirection(const std::string& direction)
{
assert(direction == "row" || direction == "column");
mDirection = direction;
}
std::string getAlignment() const { return mAlignment; }
const std::string& getAlignment() const { return mAlignment; }
void setAlignment(const std::string& value)
{
assert(value == "left" || value == "right");
@ -58,7 +58,7 @@ public:
mLayoutValid = false;
}
std::string getItemPlacement() const { return mItemPlacement; }
const std::string& getItemPlacement() const { return mItemPlacement; }
void setItemPlacement(const std::string& value)
{
assert(value == "start" || value == "center" || value == "end" || value == "stretch");
@ -66,10 +66,10 @@ public:
mLayoutValid = false;
}
glm::vec2 getItemMargin() const { return mItemMargin; }
const glm::vec2& getItemMargin() const { return mItemMargin; }
void setItemMargin(glm::vec2 value);
glm::vec2 getOverlayPosition() const { return mOverlayPosition; }
const glm::vec2& getOverlayPosition() const { return mOverlayPosition; }
void setOverlayPosition(glm::vec2 position) { mOverlayPosition = position; }
float getOverlaySize() const { return mOverlaySize; }

View file

@ -132,7 +132,7 @@ void ImageComponent::resize()
onSizeChanged();
}
void ImageComponent::setImage(std::string path, bool tile, bool linearMagnify)
void ImageComponent::setImage(const std::string& path, bool tile, bool linearMagnify)
{
// Always load bundled graphic resources statically, unless mForceLoad has been set.
// This eliminates annoying texture pop-in problems that would otherwise occur.
@ -179,7 +179,7 @@ void ImageComponent::setResize(float width, float height)
resize();
}
void ImageComponent::setMaxSize(float width, float height)
void ImageComponent::setMaxSize(const float width, const float height)
{
mTargetSize = glm::vec2{width, height};
mTargetIsMax = true;
@ -187,7 +187,7 @@ void ImageComponent::setMaxSize(float width, float height)
resize();
}
void ImageComponent::setMinSize(float width, float height)
void ImageComponent::setMinSize(const float width, const float height)
{
mTargetSize = glm::vec2{width, height};
mTargetIsMax = false;
@ -195,31 +195,31 @@ void ImageComponent::setMinSize(float width, float height)
resize();
}
void ImageComponent::cropLeft(float percent)
void ImageComponent::cropLeft(const float percent)
{
assert(percent >= 0.0f && percent <= 1.0f);
mTopLeftCrop.x = percent;
}
void ImageComponent::cropTop(float percent)
void ImageComponent::cropTop(const float percent)
{
assert(percent >= 0.0f && percent <= 1.0f);
mTopLeftCrop.y = percent;
}
void ImageComponent::cropRight(float percent)
void ImageComponent::cropRight(const float percent)
{
assert(percent >= 0.0f && percent <= 1.0f);
mBottomRightCrop.x = 1.0f - percent;
}
void ImageComponent::cropBot(float percent)
void ImageComponent::cropBot(const float percent)
{
assert(percent >= 0.0f && percent <= 1.0f);
mBottomRightCrop.y = 1.0f - percent;
}
void ImageComponent::crop(float left, float top, float right, float bot)
void ImageComponent::crop(const float left, const float top, const float right, const float bot)
{
cropLeft(left);
cropTop(top);
@ -233,7 +233,7 @@ void ImageComponent::uncrop()
crop(0.0f, 0.0f, 0.0f, 0.0f);
}
void ImageComponent::cropTransparentPadding(float maxSizeX, float maxSizeY)
void ImageComponent::cropTransparentPadding(const float maxSizeX, const float maxSizeY)
{
if (mSize == glm::vec2{})
return;

View file

@ -20,11 +20,11 @@ public:
ImageComponent(Window* window, bool forceLoad = false, bool dynamic = true);
virtual ~ImageComponent() {}
void setDefaultImage(std::string path) { mDefaultPath = path; }
void setDefaultImage(const std::string& path) { mDefaultPath = path; }
// Loads the image at the given filepath. Will tile if tile is true (retrieves texture
// as tiling, creates vertices accordingly).
void setImage(std::string path, bool tile = false, bool linearMagnify = false);
void setImage(const std::string& path, bool tile = false, bool linearMagnify = false);
// Loads an image from memory.
void setImage(const char* data, size_t length, bool tile = false);
// Use an already existing texture.
@ -37,32 +37,32 @@ public:
// zero, don't do any resizing.
// Can be set before or after an image is loaded.
// setMaxSize() and setResize() are mutually exclusive.
void setResize(float width, float height) override;
void setResize(const float width, const float height) override;
void setResize(const glm::vec2& size) { setResize(size.x, size.y); }
// Resize the image to be as large as possible but fit within a box of this size.
// Can be set before or after an image is loaded.
// Never breaks the aspect ratio. setMaxSize() and setResize() are mutually exclusive.
void setMaxSize(float width, float height);
void setMaxSize(const float width, const float height);
void setMaxSize(const glm::vec2& size) { setMaxSize(size.x, size.y); }
void setMinSize(float width, float height);
void setMinSize(const float width, const float height);
void setMinSize(const glm::vec2& size) { setMinSize(size.x, size.y); }
glm::vec2 getRotationSize() const override { return mRotateByTargetSize ? mTargetSize : mSize; }
// Applied AFTER image positioning and sizing.
// cropTop(0.2) will crop 20% of the top of the image.
void cropLeft(float percent);
void cropTop(float percent);
void cropRight(float percent);
void cropBot(float percent);
void crop(float left, float top, float right, float bot);
void cropLeft(const float percent);
void cropTop(const float percent);
void cropRight(const float percent);
void cropBot(const float percent);
void crop(const float left, const float top, const float right, const float bot);
void uncrop();
// This crops any entirely transparent areas around the actual image.
// The arguments restrict how much the end result is allowed to be scaled.
void cropTransparentPadding(float maxSizeX, float maxSizeY);
void cropTransparentPadding(const float maxSizeX, const float maxSizeY);
// Multiply all pixels in the image by this color when rendering.
void setColorShift(unsigned int color) override;

View file

@ -695,7 +695,7 @@ void VideoFFmpegComponent::getProcessedFrames()
currFrame.frameRGBA.begin(), std::make_move_iterator(&mVideoFrameResampled->data[0][0]),
std::make_move_iterator(&mVideoFrameResampled->data[0][bufferSize]));
mVideoFrameQueue.push(std::move(currFrame));
mVideoFrameQueue.emplace(std::move(currFrame));
av_frame_unref(mVideoFrameResampled);
}
@ -723,7 +723,7 @@ void VideoFFmpegComponent::getProcessedFrames()
&mAudioFrameResampled->data[0][0],
&mAudioFrameResampled->data[0][bufferSize]);
mAudioFrameQueue.push(std::move(currFrame));
mAudioFrameQueue.emplace(std::move(currFrame));
av_frame_unref(mAudioFrameResampled);
}
}
@ -883,18 +883,19 @@ void VideoFFmpegComponent::calculateBlackRectangle()
rectHeight = mSize.y;
}
// Populate the rectangle coordinates to be used in render().
mVideoRectangleCoords.push_back(std::round(mVideoAreaPos.x - rectWidth * mOrigin.x));
mVideoRectangleCoords.push_back(std::round(mVideoAreaPos.y - rectHeight * mOrigin.y));
mVideoRectangleCoords.push_back(std::round(rectWidth));
mVideoRectangleCoords.push_back(std::round(rectHeight));
mVideoRectangleCoords.emplace_back(std::round(mVideoAreaPos.x - rectWidth * mOrigin.x));
mVideoRectangleCoords.emplace_back(
std::round(mVideoAreaPos.y - rectHeight * mOrigin.y));
mVideoRectangleCoords.emplace_back(std::round(rectWidth));
mVideoRectangleCoords.emplace_back(std::round(rectHeight));
}
// If the option to display pillarboxes is disabled, then make the rectangle equivalent
// to the size of the video.
else {
mVideoRectangleCoords.push_back(std::round(mPosition.x - mSize.x * mOrigin.x));
mVideoRectangleCoords.push_back(std::round(mPosition.y - mSize.y * mOrigin.y));
mVideoRectangleCoords.push_back(std::round(mSize.x));
mVideoRectangleCoords.push_back(std::round(mSize.y));
mVideoRectangleCoords.emplace_back(std::round(mPosition.x - mSize.x * mOrigin.x));
mVideoRectangleCoords.emplace_back(std::round(mPosition.y - mSize.y * mOrigin.y));
mVideoRectangleCoords.emplace_back(std::round(mSize.x));
mVideoRectangleCoords.emplace_back(std::round(mSize.y));
}
}
}

View file

@ -505,7 +505,7 @@ namespace Renderer
drawTriangleStrips(vertices, 4, trans, srcBlendFactor, dstBlendFactor);
}
unsigned int convertRGBAToABGR(const unsigned int _color)
const unsigned int convertRGBAToABGR(const unsigned int _color)
{
unsigned char red = ((_color & 0xff000000) >> 24) & 255;
unsigned char green = ((_color & 0x00ff0000) >> 16) & 255;
@ -515,7 +515,7 @@ namespace Renderer
return alpha << 24 | blue << 16 | green << 8 | red;
}
unsigned int convertABGRToRGBA(const unsigned int _color)
const unsigned int convertABGRToRGBA(const unsigned int _color)
{
unsigned char alpha = ((_color & 0xff000000) >> 24) & 255;
unsigned char blue = ((_color & 0x00ff0000) >> 16) & 255;
@ -542,17 +542,17 @@ namespace Renderer
return nullptr;
}
const glm::mat4 getProjectionMatrix() { return mProjectionMatrix; }
const glm::mat4& getProjectionMatrix() { return mProjectionMatrix; }
SDL_Window* getSDLWindow() { return sdlWindow; }
int getWindowWidth() { return windowWidth; }
int getWindowHeight() { return windowHeight; }
int getScreenWidth() { return screenWidth; }
int getScreenHeight() { return screenHeight; }
int getScreenOffsetX() { return screenOffsetX; }
int getScreenOffsetY() { return screenOffsetY; }
int getScreenRotate() { return screenRotate; }
float getScreenWidthModifier() { return screenWidthModifier; }
float getScreenHeightModifier() { return screenHeightModifier; }
float getScreenAspectRatio() { return screenAspectRatio; }
const int getWindowWidth() { return windowWidth; }
const int getWindowHeight() { return windowHeight; }
const int getScreenWidth() { return screenWidth; }
const int getScreenHeight() { return screenHeight; }
const int getScreenOffsetX() { return screenOffsetX; }
const int getScreenOffsetY() { return screenOffsetY; }
const int getScreenRotate() { return screenRotate; }
const float getScreenWidthModifier() { return screenWidthModifier; }
const float getScreenHeightModifier() { return screenHeightModifier; }
const float getScreenAspectRatio() { return screenAspectRatio; }
} // namespace Renderer

View file

@ -144,23 +144,23 @@ namespace Renderer
const Blend::Factor srcBlendFactor = Blend::SRC_ALPHA,
const Blend::Factor dstBlendFactor = Blend::ONE_MINUS_SRC_ALPHA);
SDL_Window* getSDLWindow();
int getWindowWidth();
int getWindowHeight();
int getScreenWidth();
int getScreenHeight();
int getScreenOffsetX();
int getScreenOffsetY();
int getScreenRotate();
float getScreenWidthModifier();
float getScreenHeightModifier();
float getScreenAspectRatio();
const int getWindowWidth();
const int getWindowHeight();
const int getScreenWidth();
const int getScreenHeight();
const int getScreenOffsetX();
const int getScreenOffsetY();
const int getScreenRotate();
const float getScreenWidthModifier();
const float getScreenHeightModifier();
const float getScreenAspectRatio();
unsigned int convertRGBAToABGR(unsigned int color);
unsigned int convertABGRToRGBA(unsigned int color);
const unsigned int convertRGBAToABGR(const unsigned int color);
const unsigned int convertABGRToRGBA(const unsigned int color);
Shader* getShaderProgram(unsigned int shaderID);
const glm::mat4 getProjectionMatrix();
void shaderPostprocessing(unsigned int shaders,
const glm::mat4& getProjectionMatrix();
void shaderPostprocessing(const unsigned int shaders,
const Renderer::shaderParameters& parameters = shaderParameters(),
unsigned char* textureRGBA = nullptr);
@ -180,7 +180,7 @@ namespace Renderer
void updateTexture(const unsigned int texture,
const Texture::Type type,
const unsigned int x,
const unsigned y,
const unsigned int y,
const unsigned int width,
const unsigned int height,
void* data);

View file

@ -17,7 +17,7 @@ namespace Renderer
static SDL_GLContext sdlContext = nullptr;
static GLuint whiteTexture = 0;
static GLenum convertBlendFactor(const Blend::Factor _blendFactor)
inline GLenum convertBlendFactor(const Blend::Factor _blendFactor)
{
// clang-format off
switch (_blendFactor) {
@ -36,7 +36,7 @@ namespace Renderer
// clang-format on
}
static GLenum convertTextureType(const Texture::Type _type)
inline GLenum convertTextureType(const Texture::Type _type)
{
// clang-format off
switch (_type) {
@ -203,7 +203,7 @@ namespace Renderer
void updateTexture(const unsigned int texture,
const Texture::Type type,
const unsigned int x,
const unsigned y,
const unsigned int y,
const unsigned int width,
const unsigned int height,
void* data)
@ -246,8 +246,8 @@ namespace Renderer
const Blend::Factor dstBlendFactor,
const shaderParameters& parameters)
{
float width = vertices[3].pos[0];
float height = vertices[3].pos[1];
const float width = vertices[3].pos[0];
const float height = vertices[3].pos[1];
GL_CHECK_ERROR(glVertexPointer(2, GL_FLOAT, sizeof(Vertex), &vertices[0].pos));
GL_CHECK_ERROR(glTexCoordPointer(2, GL_FLOAT, sizeof(Vertex), &vertices[0].tex));

View file

@ -20,7 +20,7 @@ namespace Renderer
static SDL_GLContext sdlContext = nullptr;
static GLuint whiteTexture = 0;
static GLenum convertBlendFactor(const Blend::Factor _blendFactor)
inline GLenum convertBlendFactor(const Blend::Factor _blendFactor)
{
// clang-format off
switch (_blendFactor) {
@ -39,7 +39,7 @@ namespace Renderer
// clang-format on
}
static GLenum convertTextureType(const Texture::Type _type)
inline GLenum convertTextureType(const Texture::Type _type)
{
// clang-format off
switch (_type) {
@ -148,7 +148,7 @@ namespace Renderer
void updateTexture(const unsigned int texture,
const Texture::Type type,
const unsigned int x,
const unsigned y,
const unsigned int y,
const unsigned int width,
const unsigned int height,
void* data)