Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 16 additions & 22 deletions engine/includes/editor/assetconverter.h
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include <QImage>

#include <engine.h>
#include <systems/resourcesystem.h>

class Actor;
class AssetConverterSettings;
Expand Down Expand Up @@ -43,9 +44,7 @@ class ENGINE_EXPORT AssetConverterSettings : public Object {
)

struct SubItem {
TString uuid;

TString type;
ResourceSystem::ResourceInfo info;

QImage icon;

Expand All @@ -69,41 +68,36 @@ class ENGINE_EXPORT AssetConverterSettings : public Object {

virtual bool isDir() const;

virtual TString source() const;
virtual void setSource(const TString &source);

virtual TString destination() const;
virtual void setDestination(const TString &destination);
TString source() const;
void setSource(const TString &source);

virtual TString absoluteDestination() const;
virtual void setAbsoluteDestination(const TString &destination);
TString destination() const;

virtual TString propertyAllias(const TString &name) const;
TString absoluteDestination() const;

void resetIcon(const TString &uuid);
QImage icon(const TString &uuid);

TString hash() const;
void setHash(const TString &hash);

ResourceSystem::ResourceInfo &info() const;

uint32_t version() const;

uint32_t currentVersion() const;
void setCurrentVersion(uint32_t version);

const StringList subKeys() const;
TString subItem(const TString &key, bool create = false) const;
virtual Variant subItemData(const TString &key) const;
TString subTypeName(const TString &key) const;
int32_t subType(const TString &key) const;

void setSubItemsDirty();

void setSubItem(const TString &name, const TString &uuid, const TString &type);
ResourceSystem::ResourceInfo subItem(const TString &key, bool create = false) const;
void setSubItem(const TString &name, const ResourceSystem::ResourceInfo &info);

Variant subItemData(const TString &key) const;
virtual void setSubItemData(const TString &name, const Variant &data);

AssetConverter::ReturnCode saveBinary(const Variant &data, const TString &path);
AssetConverter::ReturnCode saveSubData(Resource *resource, const TString &name, const TString &type);

bool loadSettings();
void saveSettings();
Expand All @@ -119,6 +113,8 @@ class ENGINE_EXPORT AssetConverterSettings : public Object {
void updated();

protected:
virtual TString propertyAllias(const TString &name) const;

virtual TString defaultIconPath(const TString &type) const;

void setVersion(uint32_t version);
Expand All @@ -130,13 +126,11 @@ class ENGINE_EXPORT AssetConverterSettings : public Object {
bool m_modified;
bool m_dir;

uint32_t m_type;
uint32_t m_version;
uint32_t m_currentVersion;

mutable TString m_md5;
TString m_destination;
TString m_absoluteDestination;
mutable ResourceSystem::ResourceInfo m_info;

TString m_source;

QImage m_icon;
Expand Down
2 changes: 1 addition & 1 deletion engine/includes/editor/assetmanager.h
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ protected slots:

TString pathToLocal(const TString &source) const;

void registerAsset(const TString &source, const TString &uuid, const TString &type, const TString &md5);
void registerAsset(const TString &source, const ResourceSystem::ResourceInfo &info);
TString unregisterAsset(const TString &source);

};
Expand Down
8 changes: 7 additions & 1 deletion engine/includes/engine.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ class ENGINE_EXPORT Engine : public ObjectSystem {
/*
Resource management
*/
static Object *loadResource(const TString &path);
static Resource *loadResource(const TString &path);
static Resource *loadResourceAsync(const TString &path);

static void unloadResource(const TString &path);
static void unloadResource(Resource *resource);
Expand All @@ -65,6 +66,11 @@ class ENGINE_EXPORT Engine : public ObjectSystem {
return dynamic_cast<T *>(loadResource(path));
}

template<typename T>
static T *loadResourceAsync(const TString &path) {
return dynamic_cast<T *>(loadResourceAsync(path));
}

static bool isResourceExist(const TString &path);

static TString reference(Object *object);
Expand Down
5 changes: 5 additions & 0 deletions engine/includes/resources/material.h
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,9 @@ class ENGINE_EXPORT Material : public Resource {
void switchState(Resource::State state) override;
bool isUnloadable() override;

void addInstance(MaterialInstance *instance);
void removeInstance(MaterialInstance *instance);

private:
void loadBlendState(const VariantList &data);
void loadDepthState(const VariantList &data);
Expand All @@ -244,6 +247,8 @@ class ENGINE_EXPORT Material : public Resource {

Uniforms m_uniforms;

std::list<MaterialInstance *> m_instances;

BlendState m_blendState;

DepthState m_depthState;
Expand Down
6 changes: 0 additions & 6 deletions engine/includes/system.h
Original file line number Diff line number Diff line change
@@ -1,14 +1,8 @@
#ifndef SYSTEM_H
#define SYSTEM_H

#include <string>
#include <stdint.h>

#include <engine.h>

class Scene;
class Component;

class ENGINE_EXPORT System : public ObjectSystem {
public:
enum ThreadPolicy {
Expand Down
4 changes: 4 additions & 0 deletions engine/includes/systems/resourcesystem.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ class ENGINE_EXPORT ResourceSystem : public System {
TString uuid;

TString md5;

uint32_t id = 0;
};

typedef std::unordered_map<TString, ResourceInfo> Dictionary;
Expand All @@ -23,6 +25,8 @@ class ENGINE_EXPORT ResourceSystem : public System {

Resource *loadResource(const TString &path);

Resource *loadResourceAsync(const TString &path);

void unloadResource(Resource *resource, bool force = false);

void reloadResource(Resource *resource, bool force = false);
Expand Down
2 changes: 1 addition & 1 deletion engine/src/components/spriterender.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,7 +120,7 @@ void SpriteRender::setSprite(Sprite *sheet) {
m_sheet->subscribe(&SpriteRender::spriteUpdated, this);

m_dirty = true;
if(!m_materials.empty()) {
if(!m_materials.empty() && m_sheet->state() == Resource::Ready) {
m_materials[0]->setTexture(gTexture, m_sheet->page());
}
}
Expand Down
Loading
Loading