mirror of
https://github.com/Almamu/linux-wallpaperengine.git
synced 2025-07-16 14:22:24 +08:00
49 lines
1.3 KiB
C++
49 lines
1.3 KiB
C++
#include <irrlicht/irrlicht.h>
|
|
#include <iostream>
|
|
#include <fstream>
|
|
#include <stdexcept>
|
|
|
|
#include "WallpaperEngine/FileSystem/FileSystem.h"
|
|
|
|
#include "project.h"
|
|
#include "WallpaperEngine/Irrlicht/Irrlicht.h"
|
|
|
|
namespace WallpaperEngine
|
|
{
|
|
project::project (irr::io::path& jsonfile_path)
|
|
{
|
|
this->m_content = WallpaperEngine::FileSystem::loadFullFile (jsonfile_path);
|
|
this->m_projectFile = json::parse (this->m_content);
|
|
|
|
json::const_iterator file_it = this->m_projectFile.find ("file");
|
|
json::const_iterator name_it = this->m_projectFile.find ("title");
|
|
json::const_iterator type_it = this->m_projectFile.find ("type");
|
|
|
|
if (file_it != this->m_projectFile.end ())
|
|
{
|
|
// load scene file
|
|
this->m_file = (*file_it).get <std::string> ().c_str ();
|
|
this->m_scene = new scene (this->m_file);
|
|
}
|
|
|
|
if (type_it != this->m_projectFile.end ())
|
|
{
|
|
this->m_type = type_it.value ();
|
|
}
|
|
|
|
if (name_it != this->m_projectFile.end ())
|
|
{
|
|
this->m_title = name_it.value ();
|
|
}
|
|
|
|
if (this->m_type != "scene")
|
|
{
|
|
throw std::runtime_error ("Only scene wallpapers are supported");
|
|
}
|
|
}
|
|
|
|
scene* project::getScene ()
|
|
{
|
|
return this->m_scene;
|
|
}
|
|
} |