mirror of
https://github.com/ApfelTeeSaft/vb01.git
synced 2026-08-26 19:33:45 +00:00
asset load method improvement
This commit is contained in:
+2
-3
@@ -15,12 +15,11 @@ set(GUI text.cpp)
|
||||
set(UTILS util.cpp)
|
||||
set(MATH quaternion.cpp vector.cpp matrix.cpp ray.cpp)
|
||||
set(RENDER lineRenderer.cpp particleEmitter.cpp camera.cpp light.cpp material.cpp mesh.cpp model.cpp node.cpp quad.cpp box.cpp root.cpp shader.cpp texture.cpp)
|
||||
set(MODEL modelReader.cpp assimpModelReader.cpp vbModelReader.cpp)
|
||||
set(ANIM animationController.cpp animationChannel.cpp animation.cpp animatable.h keyframeChannel.cpp driver.cpp)
|
||||
set(ARMATURE skeleton.cpp bone.cpp ikSolver.cpp)
|
||||
set(ASSET_READERS abstractAssetReader.cpp imageReader.cpp fontReader.cpp)
|
||||
set(ASSET_READERS abstractAssetReader.cpp imageReader.cpp fontReader.cpp modelReader.cpp assimpModelReader.cpp vbModelReader.cpp)
|
||||
set(ASSET_MANAGER assetManager.cpp textAsset.h imageAsset.h modelAsset.h fontAsset.h)
|
||||
set(LIB_SRC ${RENDER} ${MATH} ${MODEL} ${UTILS} ${GUI} ${ARMATURE} ${ASSET_MANAGER} ${ASSET_READERS} ${ANIM})
|
||||
set(LIB_SRC ${RENDER} ${MATH} ${UTILS} ${GUI} ${ARMATURE} ${ASSET_MANAGER} ${ASSET_READERS} ${ANIM})
|
||||
|
||||
include_directories(external/glm)
|
||||
include_directories(external/glm/glm)
|
||||
|
||||
+15
-1
@@ -1,6 +1,8 @@
|
||||
#include "assetManager.h"
|
||||
#include "abstractAssetReader.h"
|
||||
#include "util.h"
|
||||
#include "imageReader.h"
|
||||
#include "fontReader.h"
|
||||
|
||||
#include <algorithm>
|
||||
|
||||
@@ -16,10 +18,22 @@ namespace vb01{
|
||||
return assetManager;
|
||||
}
|
||||
|
||||
void AssetManager::load(AbstractAssetReader *assetReader, string path){
|
||||
void AssetManager::load(string path){
|
||||
if(getAsset(path))
|
||||
return;
|
||||
|
||||
string format = path.substr(path.find_last_of(".") + 1, string::npos);
|
||||
AbstractAssetReader *assetReader = nullptr;
|
||||
vector<string> imageFormats = vector<string>{"png", "jpeg", "jpg"};
|
||||
|
||||
if(find(imageFormats.begin(), imageFormats.end(), format) != imageFormats.end())
|
||||
assetReader = ImageReader::getSingleton();
|
||||
|
||||
vector<string> fontFormats = vector<string>{"ttf"};
|
||||
|
||||
if(find(fontFormats.begin(), fontFormats.end(), format) != fontFormats.end())
|
||||
assetReader = FontReader::getSingleton();
|
||||
|
||||
assets.push_back(assetReader->readAsset(path));
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -11,10 +11,11 @@ namespace vb01{
|
||||
class AssetManager{
|
||||
public:
|
||||
static AssetManager* getSingleton();
|
||||
void load(AbstractAssetReader*, std::string);
|
||||
void load(std::string);
|
||||
Asset* getAsset(std::string);
|
||||
private:
|
||||
AssetManager(){}
|
||||
|
||||
std::vector<Asset*> assets;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
#include "keyframeChannel.h"
|
||||
#include "animationController.h"
|
||||
#include "animationChannel.h"
|
||||
#include "assetManager.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace vb01;
|
||||
@@ -19,6 +20,12 @@ int main(){
|
||||
TEX_PATH + "front.jpg",
|
||||
TEX_PATH + "back.jpg"
|
||||
};
|
||||
AssetManager::getSingleton()->load(skyboxTextures[0]);
|
||||
AssetManager::getSingleton()->load(skyboxTextures[1]);
|
||||
AssetManager::getSingleton()->load(skyboxTextures[2]);
|
||||
AssetManager::getSingleton()->load(skyboxTextures[3]);
|
||||
AssetManager::getSingleton()->load(skyboxTextures[4]);
|
||||
AssetManager::getSingleton()->load(skyboxTextures[5]);
|
||||
|
||||
/*
|
||||
* Gets Root object to start the sample,
|
||||
|
||||
@@ -5,6 +5,9 @@
|
||||
#include "skeleton.h"
|
||||
#include "animationController.h"
|
||||
#include "animationChannel.h"
|
||||
#include "assetManager.h"
|
||||
#include "imageReader.h"
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
|
||||
@@ -22,6 +25,12 @@ int main(){
|
||||
TEX_PATH + "front.jpg",
|
||||
TEX_PATH + "back.jpg"
|
||||
};
|
||||
AssetManager::getSingleton()->load(skyboxTextures[0]);
|
||||
AssetManager::getSingleton()->load(skyboxTextures[1]);
|
||||
AssetManager::getSingleton()->load(skyboxTextures[2]);
|
||||
AssetManager::getSingleton()->load(skyboxTextures[3]);
|
||||
AssetManager::getSingleton()->load(skyboxTextures[4]);
|
||||
AssetManager::getSingleton()->load(skyboxTextures[5]);
|
||||
|
||||
/*
|
||||
* Gets Root object to start the sample,
|
||||
|
||||
+3
-3
@@ -58,13 +58,13 @@ int main(){
|
||||
textMat->addBoolUniform("texturingEnabled", true);
|
||||
|
||||
string frames[]{TEX_PATH + "bricks.jpg", TEX_PATH + "defaultTexture.jpg"};
|
||||
AssetManager::getSingleton()->load(ImageReader::getSingleton(), frames[0]);
|
||||
AssetManager::getSingleton()->load(ImageReader::getSingleton(), frames[1]);
|
||||
AssetManager::getSingleton()->load(frames[0]);
|
||||
AssetManager::getSingleton()->load(frames[1]);
|
||||
Texture *texture = new Texture(frames, 2, false);
|
||||
textMat->addTexUniform("textures[0]", texture, true);
|
||||
|
||||
for(int i = 0; i < numTexts; i++){
|
||||
AssetManager::getSingleton()->load(FontReader::getSingleton(), FONT_PATH + fonts[i]);
|
||||
AssetManager::getSingleton()->load(FONT_PATH + fonts[i]);
|
||||
|
||||
Text *text = new Text(FONT_PATH + fonts[i], texts[i], 0, 60000);
|
||||
text->setLeftToRight(leftToRight[i]);
|
||||
|
||||
Reference in New Issue
Block a user