2026-03-08 22:25:55 +01:00

47 lines
1.3 KiB
C++

#pragma once
#include "DeerRender/Resource.h"
#include "DeerRender/World.h"
#include "scriptarray.h"
#include "scriptdictionary.h"
#include <stdint.h>
#include <string>
namespace Deer {
class FrameBuffer;
class GPUMesh;
class Shader;
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,
};
// GENERIC RESOURCE
template <typename T>
bool resource_isValid(Resource<T>& resource) { return resource.isValid(); }
// 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>&);
void frameBuffer_drawMesh(Resource<GPUMesh>, Resource<Shader>, TransformComponent, WorldCamera, Resource<FrameBuffer>&);
Resource<FrameBuffer> createFrameBuffer(int sixeX, int sizeY);
} // namespace Scripting
} // namespace Deer