49 lines
989 B
C++
49 lines
989 B
C++
/*
|
|
* ResourceManager_Textures.cpp
|
|
*
|
|
* Created on: Nov 12, 2016
|
|
* Author: tibi
|
|
*/
|
|
#include <GameState.h>
|
|
#include <resources/ResourceManager.h>
|
|
#include <resources/Resources.h>
|
|
|
|
#include <cassert>
|
|
|
|
namespace farmlands {
|
|
namespace resources {
|
|
|
|
void ResourceManager::loadTexture(int resourceId)
|
|
{
|
|
assert(RInfo[resourceId].type == ResourceType::Texture);
|
|
|
|
// Open file
|
|
SDL_Surface* surface = IMG_Load(getPath(resourceId).c_str());
|
|
if (surface == NULL)
|
|
throw 0; // TODO: error handling
|
|
|
|
SDL_Texture* texture = SDL_CreateTextureFromSurface(m_gameState->sdlRenderer.internalRenderer(), surface);
|
|
if (texture == NULL)
|
|
throw 0; // TODO: error handling
|
|
|
|
m_loadedResources[resourceId].loaded = true;
|
|
m_loadedResources[resourceId].texture.surface = surface;
|
|
m_loadedResources[resourceId].texture.texture = texture;
|
|
}
|
|
|
|
SDL_Texture* ResourceManager::texture(int id)
|
|
{
|
|
assert(RInfo[id].type == ResourceType::Texture);
|
|
return m_loadedResources[id].texture.texture;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|