LumixEngine/src/renderer/renderer.h
2015-09-26 19:59:14 +02:00

49 lines
963 B
C++

#pragma once
#include "lumix.h"
#include "core/array.h"
#include "core/string.h"
#include "iplugin.h"
#include "renderer/ray_cast_model_hit.h"
#include "renderer/render_scene.h"
namespace bgfx
{
struct VertexDecl;
struct TransientVertexBuffer;
struct TransientIndexBuffer;
}
namespace Lumix
{
class Engine;
class LUMIX_RENDERER_API Renderer : public IPlugin
{
public:
typedef void* TransientDataHandle;
public:
static void setInitData(void* data);
virtual void frame() = 0;
virtual void resize(int width, int height) = 0;
virtual int getViewCounter() const = 0;
virtual void viewCounterAdd() = 0;
virtual void makeScreenshot(const Path& filename) = 0;
virtual int getPassIdx(const char* pass) = 0;
virtual int getShaderDefineIdx(const char* define) = 0;
virtual const char* getShaderDefine(int define_idx) = 0;
virtual LIFOAllocator& getFrameAllocator() = 0;
virtual Engine& getEngine() = 0;
};
} // !namespace Lumix