2026-02-06 03:25:04 +01:00

52 lines
1.5 KiB
C++

#pragma once
#include "DeerRender/Resource.h"
#include "scriptarray.h"
#include "scriptdictionary.h"
#include <stdint.h>
#include <string>
#include "DeerRender/Resource.h"
namespace Deer {
class FrameBuffer;
class GPUMesh;
namespace Scripting {
template <typename T>
std::string resource_getPath(Resource<T> resource) {
return ResourceManager<T>::getStorageId(resource);
}
template <typename T>
std::string resource_getName(Resource<T> resource) {
return ResourceManager<T>::getStorageId(resource).stem().string();
}
enum ResourceType : uint32_t {
NONE = 0,
MESH = 1,
SHADER = 2,
TEXTURE = 3,
};
CScriptArray* getResourceFolders(std::string& path);
CScriptArray* getResourceFiles(std::string& path);
// GENERIC RESOURCE
template <typename T>
bool resource_isValid(Resource<T>& resource) { return resource.isValid(); }
template <typename T>
std::string resource_getPath(Resource<T>& resource) { return resource.getStorageId(); }
template <typename T>
std::string resource_getName(Resource<T>& resource) { return Path(resource.getStorageId()).stem().string(); }
// Frame Buffer
int frameBuffer_getWidth(Resource<FrameBuffer>&);
int frameBuffer_getHeight(Resource<FrameBuffer>&);
void frameBuffer_clearRGBA(int, int, int, int, Resource<FrameBuffer>&);
bool frameBuffer_isValid(Resource<FrameBuffer>&);
void frameBuffer_resize(int, int, Resource<FrameBuffer>&);
Resource<FrameBuffer> createFrameBuffer(std::string& name, int sixeX, int sizeY);
} // namespace Scripting
} // namespace Deer