Initial sources
This commit is contained in:
59
engine/render/renderdevice.h
Normal file
59
engine/render/renderdevice.h
Normal file
@@ -0,0 +1,59 @@
|
||||
#ifndef RENDERDEVICE_H
|
||||
#define RENDERDEVICE_H
|
||||
|
||||
#include "render/render_shared.h"
|
||||
|
||||
class VertexBuffer;
|
||||
class IndexBuffer;
|
||||
class VertexFormat;
|
||||
class RenderTarget;
|
||||
|
||||
class RenderDevice
|
||||
{
|
||||
public:
|
||||
RenderDevice();
|
||||
~RenderDevice();
|
||||
|
||||
VertexBuffer* CreateVertexBuffer(void* data, size_t size, bool isStream = false);
|
||||
IndexBuffer* CreateIndexBuffer(void* data, size_t size, bool isStream = false);
|
||||
|
||||
void SetVerticesBuffer(VertexBuffer* buffer);
|
||||
void SetIndicesBuffer(IndexBuffer* buffer);
|
||||
|
||||
void SetDepthTest(bool enable);
|
||||
void SetDepthWrite(bool enable);
|
||||
|
||||
//void setVertexFormat(VertexFormat* format);
|
||||
|
||||
void SetBlending(bool value);
|
||||
void SetBlendingFunction(BlendFactor srcFactor, BlendFactor destFactor);
|
||||
|
||||
void SetReadRenderTarget(RenderTarget* renderTarget);
|
||||
void SetWriteRenderTarget(RenderTarget* renderTarget);
|
||||
|
||||
void SetViewport(int x, int y, int w, int h);
|
||||
|
||||
// glBlitFramebuffer
|
||||
void BlitRenderTarget(int srcX, int srcY, int srcWidth, int srcHeight,
|
||||
int destX, int destY, int destWidth, int destHeight,
|
||||
TextureSurfaceType surfaceType);
|
||||
|
||||
// drawing
|
||||
void DrawArrays(PrimitiveType primType, uint startOf, size_t verticesCount);
|
||||
void DrawElements(PrimitiveType primType, size_t elementsCount, bool is16bitIndices);
|
||||
|
||||
private:
|
||||
VertexBuffer* m_activeVB;
|
||||
IndexBuffer* m_activeIB;
|
||||
|
||||
RenderTarget* m_activeReadRT;
|
||||
RenderTarget* m_activeWriteRT;
|
||||
|
||||
bool m_blending;
|
||||
BlendFactor m_srcBlendFactor;
|
||||
BlendFactor m_destBlendFactor;
|
||||
};
|
||||
|
||||
extern RenderDevice* g_renderDevice;
|
||||
|
||||
#endif // !RENDERDEVICE_H
|
||||
Reference in New Issue
Block a user