#pragma once
#include "DeerRender/Tools/TypeDefs.h"

namespace Deer {
	class Environment;

	namespace StudioAPI {
		struct EnvironmentHandleStruct {
			EnvironmentHandleStruct(int32_t _id = -1) : environmentId(_id) {}

			int32_t environmentId;
		};

		struct EntityHandleStruct {
			EntityHandleStruct(int _entId = 0, int _envId = -1) : entityId(_entId), environmentId(_envId) {}

			int32_t entityId;
			int32_t environmentId;

			bool assertEntity(const char* funcName);
			Environment* getEntityEnvironment();
		};

		struct FrameBufferHandleStruct {
			FrameBufferHandleStruct(int _id = 0) : frameBufferId(_id) {}

			int32_t frameBufferId = 0;
		};
	} // namespace StudioAPI
} // namespace Deer