Scene videw working
This commit is contained in:
parent
ded41e7c3e
commit
3817b5a355
@ -21,7 +21,7 @@ namespace Deer {
|
|||||||
bool isValid() const { return ResourceManager<T>::isValid(*this); }
|
bool isValid() const { return ResourceManager<T>::isValid(*this); }
|
||||||
T& getData() { return ResourceManager<T>::getResourceData(*this); }
|
T& getData() { return ResourceManager<T>::getResourceData(*this); }
|
||||||
|
|
||||||
const std::string& getStorageId() const { return ResourceManager<T>::getStorageId(); }
|
const std::string& getStorageId() const { return ResourceManager<T>::getStorageId(*this); }
|
||||||
|
|
||||||
inline explicit operator bool() const { return resourceId >= 0; }
|
inline explicit operator bool() const { return resourceId >= 0; }
|
||||||
|
|
||||||
|
|||||||
@ -1,22 +1,29 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
#include "DeerRender/Render/FrameBuffer.h"
|
#include "DeerRender/Render/FrameBuffer.h"
|
||||||
|
#include "DeerRender/Resource.h"
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
namespace Deer {
|
namespace Deer {
|
||||||
// TODO: Add safety
|
struct FrameBufferData {
|
||||||
namespace FrameBufferManager {
|
enum class FrameBufferType : int {
|
||||||
uint16_t createRGBA8FrameBuffer(std::string& name, int, int);
|
RGBA8 = 1
|
||||||
void resizeFrameBuffer(uint16_t frameBufferId, int, int);
|
};
|
||||||
|
|
||||||
int getFrameBufferWidth(uint16_t frameBufferId);
|
FrameBufferType frameBufferType;
|
||||||
int getFrameBufferHeight(uint16_t frameBufferId);
|
int sizeX, sizeY;
|
||||||
|
int samples;
|
||||||
|
|
||||||
|
FrameBufferData(int _sizeX = 100, int _sizeY = 100, int _samples = 4, FrameBufferType type = FrameBufferType::RGBA8)
|
||||||
|
: sizeX(_sizeX), sizeY(_sizeY), samples(_samples), frameBufferType(type) { }
|
||||||
|
};
|
||||||
|
|
||||||
const std::string& getFrameBufferName(uint16_t);
|
template <>
|
||||||
uint16_t getFrameBufferId(std::string& name);
|
class ResourceBuilder<FrameBuffer> {
|
||||||
FrameBuffer& getFrameBuffer(uint16_t);
|
public:
|
||||||
|
using BaseDataType = FrameBufferData;
|
||||||
|
static Scope<FrameBuffer> buildResource(const BaseDataType& baseData);
|
||||||
|
};
|
||||||
|
|
||||||
void unloadAllFrameBuffer();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -27,7 +27,7 @@ namespace Deer {
|
|||||||
#ifdef DEER_RENDER
|
#ifdef DEER_RENDER
|
||||||
ResourceManager<Shader>::unloadResources();
|
ResourceManager<Shader>::unloadResources();
|
||||||
ResourceManager<GPUMesh>::unloadResources();
|
ResourceManager<GPUMesh>::unloadResources();
|
||||||
FrameBufferManager::unloadAllFrameBuffer();
|
ResourceManager<FrameBuffer>::unloadResources();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
23
Deer/src/DeerRender/FrameBuffer/FrameBuffer.cpp
Normal file
23
Deer/src/DeerRender/FrameBuffer/FrameBuffer.cpp
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
#include "DeerRender/FrameBuffer.h"
|
||||||
|
|
||||||
|
namespace Deer {
|
||||||
|
Scope<FrameBuffer> ResourceBuilder<FrameBuffer>::buildResource(const FrameBufferData& baseData) {
|
||||||
|
TextureBufferType tbt;
|
||||||
|
switch (baseData.frameBufferType)
|
||||||
|
{
|
||||||
|
case FrameBufferData::FrameBufferType::RGBA8 :
|
||||||
|
tbt = TextureBufferType::RGBA8;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
FrameBufferSpecification spec(baseData.sizeX, baseData.sizeY, {tbt}, baseData.samples);
|
||||||
|
|
||||||
|
|
||||||
|
Scope<FrameBuffer> frameBuffer = Scope<FrameBuffer>(FrameBuffer::create(spec));
|
||||||
|
return frameBuffer;
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -15,69 +15,5 @@ namespace Deer {
|
|||||||
std::unordered_map<std::string, uint16_t> frameBuffers_name_id_map;
|
std::unordered_map<std::string, uint16_t> frameBuffers_name_id_map;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t FrameBufferManager::createRGBA8FrameBuffer(std::string& name, int x, int y) {
|
|
||||||
FrameBufferSpecification specs(
|
|
||||||
x, y,
|
|
||||||
{TextureBufferType::RGBA8}, 4,
|
|
||||||
false);
|
|
||||||
|
|
||||||
FrameBuffer* frameBuffer = FrameBuffer::create(specs);
|
|
||||||
|
|
||||||
uint16_t frameBufferId = maxFrameBufferId;
|
|
||||||
maxFrameBufferId++;
|
|
||||||
|
|
||||||
frameBuffers[frameBufferId].frameBuffer_data = frameBuffer;
|
|
||||||
frameBuffers[frameBufferId].frameBuffer_name = name;
|
|
||||||
|
|
||||||
frameBuffers_name_id_map[name] = frameBufferId;
|
|
||||||
return frameBufferId;
|
|
||||||
}
|
|
||||||
|
|
||||||
void FrameBufferManager::resizeFrameBuffer(uint16_t frameBufferId, int x, int y) {
|
|
||||||
FrameBuffer* frameBuffer = frameBuffers[frameBufferId].frameBuffer_data;
|
|
||||||
|
|
||||||
frameBuffer->resize(x, y);
|
|
||||||
}
|
|
||||||
|
|
||||||
int FrameBufferManager::getFrameBufferWidth(uint16_t frameBufferId) {
|
|
||||||
FrameBuffer* frameBuffer = frameBuffers[frameBufferId].frameBuffer_data;
|
|
||||||
|
|
||||||
return frameBuffer->getSpecification().width;
|
|
||||||
}
|
|
||||||
|
|
||||||
int FrameBufferManager::getFrameBufferHeight(uint16_t frameBufferId) {
|
|
||||||
FrameBuffer* frameBuffer = frameBuffers[frameBufferId].frameBuffer_data;
|
|
||||||
|
|
||||||
return frameBuffer->getSpecification().height;
|
|
||||||
}
|
|
||||||
|
|
||||||
const std::string& FrameBufferManager::getFrameBufferName(uint16_t id) {
|
|
||||||
DEER_CORE_ASSERT(id >= 0 && id < maxFrameBufferId, "Invalid frame buffer id {0}", id);
|
|
||||||
|
|
||||||
return frameBuffers[id].frameBuffer_name;
|
|
||||||
}
|
|
||||||
|
|
||||||
FrameBuffer& FrameBufferManager::getFrameBuffer(uint16_t id) {
|
|
||||||
DEER_CORE_ASSERT(id > 0 && id < maxFrameBufferId, "Invalid frame buffer id {0}", id);
|
|
||||||
|
|
||||||
return *frameBuffers[id].frameBuffer_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
uint16_t FrameBufferManager::getFrameBufferId(std::string& name) {
|
|
||||||
return frameBuffers_name_id_map[name];
|
|
||||||
}
|
|
||||||
|
|
||||||
void FrameBufferManager::unloadAllFrameBuffer() {
|
|
||||||
for (int x = 1; x < maxFrameBufferId; x++) {
|
|
||||||
delete frameBuffers[x].frameBuffer_data;
|
|
||||||
frameBuffers[x].frameBuffer_data = nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
frameBuffers_name_id_map.clear();
|
|
||||||
|
|
||||||
maxFrameBufferId = 1;
|
|
||||||
frameBuffers[0].frameBuffer_data = nullptr;
|
|
||||||
frameBuffers[0].frameBuffer_name = "NULL";
|
|
||||||
frameBuffers_name_id_map["NULL"] = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@ -18,7 +18,7 @@ namespace Deer {
|
|||||||
std::string getName();
|
std::string getName();
|
||||||
};
|
};
|
||||||
|
|
||||||
FrameBufferStruct createRGBA8FrameBuffer(std::string& name, int, int);
|
FrameBufferStruct createLoadRGBA8FrameBuffer(std::string& name, int sizeX, int sizeY, int samples);
|
||||||
FrameBufferStruct getFrameBuffer(std::string& name);
|
FrameBufferStruct getFrameBuffer(std::string& name);
|
||||||
|
|
||||||
void frameBuffer_constructor(FrameBufferHandleStruct* mem);
|
void frameBuffer_constructor(FrameBufferHandleStruct* mem);
|
||||||
|
|||||||
@ -21,7 +21,7 @@ namespace Deer {
|
|||||||
struct FrameBufferHandleStruct {
|
struct FrameBufferHandleStruct {
|
||||||
FrameBufferHandleStruct(int _id = 0) : frameBufferId(_id) {}
|
FrameBufferHandleStruct(int _id = 0) : frameBufferId(_id) {}
|
||||||
|
|
||||||
uint16_t frameBufferId;
|
int32_t frameBufferId = 0;
|
||||||
};
|
};
|
||||||
} // namespace StudioAPI
|
} // namespace StudioAPI
|
||||||
} // namespace Deer
|
} // namespace Deer
|
||||||
@ -15,8 +15,7 @@ namespace Deer {
|
|||||||
REGISTER_EXT_OBJECT_CONSTRUCTOR("FrameBuffer", "void f()", StudioAPI::frameBuffer_constructor);
|
REGISTER_EXT_OBJECT_CONSTRUCTOR("FrameBuffer", "void f()", StudioAPI::frameBuffer_constructor);
|
||||||
|
|
||||||
scriptEngine->SetDefaultNamespace("Engine");
|
scriptEngine->SetDefaultNamespace("Engine");
|
||||||
REGISTER_GLOBAL_FUNC("FrameBuffer createRGBA8FrameBuffer(const string&in, int, int)", StudioAPI::createRGBA8FrameBuffer);
|
REGISTER_GLOBAL_FUNC("FrameBuffer createLoadRGBA8FrameBuffer(const string&in, int width, int height, int samples = 4)", StudioAPI::createLoadRGBA8FrameBuffer);
|
||||||
REGISTER_GLOBAL_FUNC("FrameBuffer getFrameBuffer(const string&in)", StudioAPI::getFrameBuffer);
|
|
||||||
scriptEngine->SetDefaultNamespace("");
|
scriptEngine->SetDefaultNamespace("");
|
||||||
}
|
}
|
||||||
} // namespace Deer
|
} // namespace Deer
|
||||||
@ -16,8 +16,20 @@ namespace Deer {
|
|||||||
std::vector<Environment*> environments{&Scene::environment};
|
std::vector<Environment*> environments{&Scene::environment};
|
||||||
|
|
||||||
void EnvironmentStruct::render(FrameBufferHandleStruct frameBuffer_handle, SceneCamera& sc) {
|
void EnvironmentStruct::render(FrameBufferHandleStruct frameBuffer_handle, SceneCamera& sc) {
|
||||||
FrameBuffer& frameBuffer = FrameBufferManager::getFrameBuffer(frameBuffer_handle.frameBufferId);
|
Resource<FrameBuffer> frameBufferResource = Resource<FrameBuffer>::unsafeFromId(frameBuffer_handle.frameBufferId);
|
||||||
Environment& env = *environments[environmentId];
|
FrameBuffer& frameBuffer = frameBufferResource.getData();
|
||||||
|
|
||||||
|
Environment* envPtr = nullptr;
|
||||||
|
if (environmentId < 0) {
|
||||||
|
envPtr = &Scene::environment;
|
||||||
|
} else {
|
||||||
|
Resource<Environment> environmentResource =
|
||||||
|
Resource<Environment>::unsafeFromId(environmentId);
|
||||||
|
|
||||||
|
envPtr = &environmentResource.getData();
|
||||||
|
}
|
||||||
|
|
||||||
|
Environment& env = *envPtr;
|
||||||
|
|
||||||
frameBuffer.bind();
|
frameBuffer.bind();
|
||||||
|
|
||||||
|
|||||||
@ -5,38 +5,45 @@ namespace Deer {
|
|||||||
namespace StudioAPI {
|
namespace StudioAPI {
|
||||||
|
|
||||||
int FrameBufferStruct::getWidth() {
|
int FrameBufferStruct::getWidth() {
|
||||||
return FrameBufferManager::getFrameBufferWidth(frameBufferId);
|
Resource<FrameBuffer> frameBufferResource = Resource<FrameBuffer>::unsafeFromId(frameBufferId);
|
||||||
|
FrameBuffer& frameBuffer = frameBufferResource.getData();
|
||||||
|
return frameBuffer.getSpecification().width;
|
||||||
}
|
}
|
||||||
|
|
||||||
int FrameBufferStruct::getHeight() {
|
int FrameBufferStruct::getHeight() {
|
||||||
return FrameBufferManager::getFrameBufferWidth(frameBufferId);
|
Resource<FrameBuffer> frameBufferResource = Resource<FrameBuffer>::unsafeFromId(frameBufferId);
|
||||||
|
FrameBuffer& frameBuffer = frameBufferResource.getData();
|
||||||
|
return frameBuffer.getSpecification().height;
|
||||||
}
|
}
|
||||||
|
|
||||||
void FrameBufferStruct::resize(int x, int y) {
|
void FrameBufferStruct::resize(int x, int y) {
|
||||||
FrameBufferManager::resizeFrameBuffer(frameBufferId, x, y);
|
Resource<FrameBuffer> frameBufferResource = Resource<FrameBuffer>::unsafeFromId(frameBufferId);
|
||||||
|
FrameBuffer& frameBuffer = frameBufferResource.getData();
|
||||||
|
|
||||||
|
frameBuffer.resize(x, y);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FrameBufferStruct::clearRGBA(int r, int g, int b, int a) {
|
void FrameBufferStruct::clearRGBA(int r, int g, int b, int a) {
|
||||||
FrameBuffer& frameBuffer =
|
|
||||||
FrameBufferManager::getFrameBuffer(frameBufferId);
|
Resource<FrameBuffer> frameBufferResource = Resource<FrameBuffer>::unsafeFromId(frameBufferId);
|
||||||
|
FrameBuffer& frameBuffer = frameBufferResource.getData();
|
||||||
|
|
||||||
frameBuffer.bind();
|
frameBuffer.bind();
|
||||||
frameBuffer.clear();
|
frameBuffer.clear();
|
||||||
uint8_t clearColor[4]{(uint8_t)r, (uint8_t)g, (uint8_t)b,
|
uint8_t clearColor[4]{(uint8_t)r, (uint8_t)g, (uint8_t)b, (uint8_t)a};
|
||||||
(uint8_t)a};
|
|
||||||
frameBuffer.clearBuffer(0, &clearColor);
|
frameBuffer.clearBuffer(0, &clearColor);
|
||||||
frameBuffer.unbind();
|
frameBuffer.unbind();
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string FrameBufferStruct::getName() {
|
std::string FrameBufferStruct::getName() {
|
||||||
return FrameBufferManager::getFrameBufferName(frameBufferId);
|
return Resource<FrameBuffer>::unsafeFromId(frameBufferId).getStorageId();
|
||||||
}
|
}
|
||||||
|
|
||||||
FrameBufferStruct createRGBA8FrameBuffer(std::string& name, int x,
|
FrameBufferStruct createLoadRGBA8FrameBuffer(std::string& name, int sizeX, int sizeY, int samples) {
|
||||||
int y) {
|
FrameBufferData fbd(sizeX, sizeY, samples, FrameBufferData::FrameBufferType::RGBA8);
|
||||||
uint16_t id =
|
Resource<FrameBuffer> frameBuffer = ResourceManager<FrameBuffer>::loadResourceFromData(fbd, name);
|
||||||
FrameBufferManager::createRGBA8FrameBuffer(name, x, y);
|
|
||||||
return FrameBufferStruct(id);
|
return FrameBufferStruct(frameBuffer.getResourceId());
|
||||||
}
|
}
|
||||||
|
|
||||||
void frameBuffer_constructor(FrameBufferHandleStruct* mem) {
|
void frameBuffer_constructor(FrameBufferHandleStruct* mem) {
|
||||||
@ -44,11 +51,8 @@ namespace Deer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool FrameBufferStruct::isValid() {
|
bool FrameBufferStruct::isValid() {
|
||||||
return frameBufferId > 0 && frameBufferId < 100;
|
DEER_CORE_TRACE("{} fbid", frameBufferId);
|
||||||
}
|
return frameBufferId >= 0 && frameBufferId < 100;
|
||||||
|
|
||||||
FrameBufferStruct getFrameBuffer(std::string& name) {
|
|
||||||
return FrameBufferManager::getFrameBufferId(name);
|
|
||||||
}
|
}
|
||||||
} // namespace StudioAPI
|
} // namespace StudioAPI
|
||||||
} // namespace Deer
|
} // namespace Deer
|
||||||
@ -221,10 +221,10 @@ namespace Deer {
|
|||||||
ImGui::Image((void*)(uint64_t)iconId, ImVec2(size, size), ImVec2(0, 1), ImVec2(1, 0), ImVec4(0.5f, 0.6f, 0.8f, 1.0f), ImVec4(0,0,0,0));
|
ImGui::Image((void*)(uint64_t)iconId, ImVec2(size, size), ImVec2(0, 1), ImVec2(1, 0), ImVec4(0.5f, 0.6f, 0.8f, 1.0f), ImVec4(0,0,0,0));
|
||||||
}
|
}
|
||||||
|
|
||||||
void drawFrameBuffer(FrameBufferHandleStruct frameBuffer_handle,
|
void drawFrameBuffer(FrameBufferHandleStruct frameBuffer_handle, int sizeX, int sizeY) {
|
||||||
int sizeX, int sizeY) {
|
|
||||||
FrameBuffer& frameBuffer = FrameBufferManager::getFrameBuffer(
|
Resource<FrameBuffer> frameBufferResource = Resource<FrameBuffer>::unsafeFromId(frameBuffer_handle.frameBufferId);
|
||||||
frameBuffer_handle.frameBufferId);
|
FrameBuffer& frameBuffer = frameBufferResource.getData();
|
||||||
frameBuffer.bind();
|
frameBuffer.bind();
|
||||||
int frameBufferId = frameBuffer.getTextureBufferID(0);
|
int frameBufferId = frameBuffer.getTextureBufferID(0);
|
||||||
|
|
||||||
@ -233,10 +233,9 @@ namespace Deer {
|
|||||||
frameBuffer.unbind();
|
frameBuffer.unbind();
|
||||||
}
|
}
|
||||||
|
|
||||||
void drawFrameBufferCentered(FrameBufferHandleStruct frameBuffer_handle,
|
void drawFrameBufferCentered(FrameBufferHandleStruct frameBuffer_handle, int _x, int _y) {
|
||||||
int _x, int _y) {
|
Resource<FrameBuffer> frameBufferResource = Resource<FrameBuffer>::unsafeFromId(frameBuffer_handle.frameBufferId);
|
||||||
FrameBuffer& frameBuffer = FrameBufferManager::getFrameBuffer(
|
FrameBuffer& frameBuffer = frameBufferResource.getData();
|
||||||
frameBuffer_handle.frameBufferId);
|
|
||||||
int frameBufferId = frameBuffer.getTextureBufferID();
|
int frameBufferId = frameBuffer.getTextureBufferID();
|
||||||
|
|
||||||
float sizeX;
|
float sizeX;
|
||||||
|
|||||||
@ -426,12 +426,11 @@ namespace Resource { string[]@ getResourceFolders(string&in path); }
|
|||||||
namespace Resource { string[]@ getResourceFiles(string&in path); }
|
namespace Resource { string[]@ getResourceFiles(string&in path); }
|
||||||
namespace Resource { ResourceType getResourceType(string&in path); }
|
namespace Resource { ResourceType getResourceType(string&in path); }
|
||||||
namespace Engine { Environment getMainEnvironment(); }
|
namespace Engine { Environment getMainEnvironment(); }
|
||||||
namespace Engine { Environment createEnvironment(); }
|
namespace Engine { Environment createLoadEnvironment(const string&in envId); }
|
||||||
namespace Engine { Entity getRoot(); }
|
namespace Engine { Entity getRoot(); }
|
||||||
namespace Engine { void print(const string&in text); }
|
namespace Engine { void print(const string&in text); }
|
||||||
namespace Path { string getParent(const string&in path); }
|
namespace Path { string getParent(const string&in path); }
|
||||||
namespace Path { string getParentName(const string&in path); }
|
namespace Path { string getParentName(const string&in path); }
|
||||||
namespace Path { string getName(const string&in path); }
|
namespace Path { string getName(const string&in path); }
|
||||||
namespace Path { string[]@ divide(const string&in path); }
|
namespace Path { string[]@ divide(const string&in path); }
|
||||||
namespace Engine { FrameBuffer createRGBA8FrameBuffer(const string&in, int, int); }
|
namespace Engine { FrameBuffer createLoadRGBA8FrameBuffer(const string&in, int width, int height, int samples = 4); }
|
||||||
namespace Engine { FrameBuffer getFrameBuffer(const string&in); }
|
|
||||||
|
|||||||
@ -426,12 +426,11 @@ namespace Resource { string[]@ getResourceFolders(string&in path); }
|
|||||||
namespace Resource { string[]@ getResourceFiles(string&in path); }
|
namespace Resource { string[]@ getResourceFiles(string&in path); }
|
||||||
namespace Resource { ResourceType getResourceType(string&in path); }
|
namespace Resource { ResourceType getResourceType(string&in path); }
|
||||||
namespace Engine { Environment getMainEnvironment(); }
|
namespace Engine { Environment getMainEnvironment(); }
|
||||||
namespace Engine { Environment createEnvironment(); }
|
namespace Engine { Environment createLoadEnvironment(const string&in envId); }
|
||||||
namespace Engine { Entity getRoot(); }
|
namespace Engine { Entity getRoot(); }
|
||||||
namespace Engine { void print(const string&in text); }
|
namespace Engine { void print(const string&in text); }
|
||||||
namespace Path { string getParent(const string&in path); }
|
namespace Path { string getParent(const string&in path); }
|
||||||
namespace Path { string getParentName(const string&in path); }
|
namespace Path { string getParentName(const string&in path); }
|
||||||
namespace Path { string getName(const string&in path); }
|
namespace Path { string getName(const string&in path); }
|
||||||
namespace Path { string[]@ divide(const string&in path); }
|
namespace Path { string[]@ divide(const string&in path); }
|
||||||
namespace Engine { FrameBuffer createRGBA8FrameBuffer(const string&in, int, int); }
|
namespace Engine { FrameBuffer createLoadRGBA8FrameBuffer(const string&in, int width, int height, int samples = 4); }
|
||||||
namespace Engine { FrameBuffer getFrameBuffer(const string&in); }
|
|
||||||
|
|||||||
@ -426,12 +426,11 @@ namespace Resource { string[]@ getResourceFolders(string&in path); }
|
|||||||
namespace Resource { string[]@ getResourceFiles(string&in path); }
|
namespace Resource { string[]@ getResourceFiles(string&in path); }
|
||||||
namespace Resource { ResourceType getResourceType(string&in path); }
|
namespace Resource { ResourceType getResourceType(string&in path); }
|
||||||
namespace Engine { Environment getMainEnvironment(); }
|
namespace Engine { Environment getMainEnvironment(); }
|
||||||
namespace Engine { Environment createEnvironment(); }
|
namespace Engine { Environment createLoadEnvironment(const string&in envId); }
|
||||||
namespace Engine { Entity getRoot(); }
|
namespace Engine { Entity getRoot(); }
|
||||||
namespace Engine { void print(const string&in text); }
|
namespace Engine { void print(const string&in text); }
|
||||||
namespace Path { string getParent(const string&in path); }
|
namespace Path { string getParent(const string&in path); }
|
||||||
namespace Path { string getParentName(const string&in path); }
|
namespace Path { string getParentName(const string&in path); }
|
||||||
namespace Path { string getName(const string&in path); }
|
namespace Path { string getName(const string&in path); }
|
||||||
namespace Path { string[]@ divide(const string&in path); }
|
namespace Path { string[]@ divide(const string&in path); }
|
||||||
namespace Engine { FrameBuffer createRGBA8FrameBuffer(const string&in, int, int); }
|
namespace Engine { FrameBuffer createLoadRGBA8FrameBuffer(const string&in, int width, int height, int samples = 4); }
|
||||||
namespace Engine { FrameBuffer getFrameBuffer(const string&in); }
|
|
||||||
|
|||||||
@ -426,12 +426,11 @@ namespace Resource { string[]@ getResourceFolders(string&in path); }
|
|||||||
namespace Resource { string[]@ getResourceFiles(string&in path); }
|
namespace Resource { string[]@ getResourceFiles(string&in path); }
|
||||||
namespace Resource { ResourceType getResourceType(string&in path); }
|
namespace Resource { ResourceType getResourceType(string&in path); }
|
||||||
namespace Engine { Environment getMainEnvironment(); }
|
namespace Engine { Environment getMainEnvironment(); }
|
||||||
namespace Engine { Environment createEnvironment(); }
|
namespace Engine { Environment createLoadEnvironment(const string&in envId); }
|
||||||
namespace Engine { Entity getRoot(); }
|
namespace Engine { Entity getRoot(); }
|
||||||
namespace Engine { void print(const string&in text); }
|
namespace Engine { void print(const string&in text); }
|
||||||
namespace Path { string getParent(const string&in path); }
|
namespace Path { string getParent(const string&in path); }
|
||||||
namespace Path { string getParentName(const string&in path); }
|
namespace Path { string getParentName(const string&in path); }
|
||||||
namespace Path { string getName(const string&in path); }
|
namespace Path { string getName(const string&in path); }
|
||||||
namespace Path { string[]@ divide(const string&in path); }
|
namespace Path { string[]@ divide(const string&in path); }
|
||||||
namespace Engine { FrameBuffer createRGBA8FrameBuffer(const string&in, int, int); }
|
namespace Engine { FrameBuffer createLoadRGBA8FrameBuffer(const string&in, int width, int height, int samples = 4); }
|
||||||
namespace Engine { FrameBuffer getFrameBuffer(const string&in); }
|
|
||||||
|
|||||||
@ -70,7 +70,7 @@ class ViewportPanel : Panel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void init() {
|
void init() {
|
||||||
frameBuffer = Engine::createRGBA8FrameBuffer("MainFrameBuffer", 400, 400);
|
frameBuffer = Engine::createLoadRGBA8FrameBuffer("MainFrameBuffer", 400, 400);
|
||||||
mainEnv = Engine::getMainEnvironment();
|
mainEnv = Engine::getMainEnvironment();
|
||||||
|
|
||||||
sceneCamera.transform.position = vec3(0, 1, -2);
|
sceneCamera.transform.position = vec3(0, 1, -2);
|
||||||
|
|||||||
@ -69,9 +69,9 @@ enum key {
|
|||||||
LeftSuper = 530,
|
LeftSuper = 530,
|
||||||
RightSuper = 534,
|
RightSuper = 534,
|
||||||
LeftCtrl = 527,
|
LeftCtrl = 527,
|
||||||
MouseLeft = 641,
|
MouseLeft = 656,
|
||||||
MouseRight = 642,
|
MouseRight = 657,
|
||||||
MouseMiddle = 643
|
MouseMiddle = 658
|
||||||
}
|
}
|
||||||
class ref {
|
class ref {
|
||||||
~ref();
|
~ref();
|
||||||
@ -426,12 +426,11 @@ namespace Resource { string[]@ getResourceFolders(string&in path); }
|
|||||||
namespace Resource { string[]@ getResourceFiles(string&in path); }
|
namespace Resource { string[]@ getResourceFiles(string&in path); }
|
||||||
namespace Resource { ResourceType getResourceType(string&in path); }
|
namespace Resource { ResourceType getResourceType(string&in path); }
|
||||||
namespace Engine { Environment getMainEnvironment(); }
|
namespace Engine { Environment getMainEnvironment(); }
|
||||||
namespace Engine { Environment createEnvironment(); }
|
namespace Engine { Environment createLoadEnvironment(const string&in envId); }
|
||||||
namespace Engine { Entity getRoot(); }
|
namespace Engine { Entity getRoot(); }
|
||||||
namespace Engine { void print(const string&in text); }
|
namespace Engine { void print(const string&in text); }
|
||||||
namespace Path { string getParent(const string&in path); }
|
namespace Path { string getParent(const string&in path); }
|
||||||
namespace Path { string getParentName(const string&in path); }
|
namespace Path { string getParentName(const string&in path); }
|
||||||
namespace Path { string getName(const string&in path); }
|
namespace Path { string getName(const string&in path); }
|
||||||
namespace Path { string[]@ divide(const string&in path); }
|
namespace Path { string[]@ divide(const string&in path); }
|
||||||
namespace Engine { FrameBuffer createRGBA8FrameBuffer(const string&in, int, int); }
|
namespace Engine { FrameBuffer createLoadRGBA8FrameBuffer(const string&in, int width, int height, int samples = 4); }
|
||||||
namespace Engine { FrameBuffer getFrameBuffer(const string&in); }
|
|
||||||
|
|||||||
@ -4,10 +4,10 @@ Size=1920,1011
|
|||||||
Collapsed=0
|
Collapsed=0
|
||||||
|
|
||||||
[Window][ViewportPanel]
|
[Window][ViewportPanel]
|
||||||
Pos=333,24
|
Pos=433,34
|
||||||
Size=1282,732
|
Size=1057,615
|
||||||
Collapsed=0
|
Collapsed=0
|
||||||
DockId=0xA1672E74,0
|
DockId=0x00000004,1
|
||||||
|
|
||||||
[Window][Debug##Default]
|
[Window][Debug##Default]
|
||||||
Pos=60,60
|
Pos=60,60
|
||||||
@ -70,7 +70,7 @@ DockSpace ID=0x0AC2E849 Window=0xD0388BC8 Pos=0,34 Size=1920,976 Split=Y
|
|||||||
DockNode ID=0x00000005 Parent=0x0AC2E849 SizeRef=1920,615 Split=X
|
DockNode ID=0x00000005 Parent=0x0AC2E849 SizeRef=1920,615 Split=X
|
||||||
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1490,645 Split=X Selected=0xD9E076F4
|
DockNode ID=0x00000002 Parent=0x00000005 SizeRef=1490,645 Split=X Selected=0xD9E076F4
|
||||||
DockNode ID=0x00000001 Parent=0x00000002 SizeRef=431,976 Selected=0x16E3C1E7
|
DockNode ID=0x00000001 Parent=0x00000002 SizeRef=431,976 Selected=0x16E3C1E7
|
||||||
DockNode ID=0x00000004 Parent=0x00000002 SizeRef=1057,976 CentralNode=1 Selected=0xD9E076F4
|
DockNode ID=0x00000004 Parent=0x00000002 SizeRef=1057,976 CentralNode=1 Selected=0x0F5FFC8C
|
||||||
DockNode ID=0x00000003 Parent=0x00000005 SizeRef=428,645 Selected=0x9876A79B
|
DockNode ID=0x00000003 Parent=0x00000005 SizeRef=428,645 Selected=0x9876A79B
|
||||||
DockNode ID=0x00000006 Parent=0x0AC2E849 SizeRef=1920,359 Selected=0x018A0F9B
|
DockNode ID=0x00000006 Parent=0x0AC2E849 SizeRef=1920,359 Selected=0x018A0F9B
|
||||||
DockSpace ID=0xA1672E74 Pos=0,34 Size=1920,976 CentralNode=1 Selected=0x9ED090AF
|
DockSpace ID=0xA1672E74 Pos=0,34 Size=1920,976 CentralNode=1 Selected=0x9ED090AF
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user