added mesh rendering
This commit is contained in:
@@ -29,20 +29,6 @@ public:
|
||||
virtual void Unmap() = 0;
|
||||
};
|
||||
|
||||
abstract_class IBrush
|
||||
{
|
||||
public:
|
||||
virtual void SetPosition( vec3 position ) = 0;
|
||||
virtual void SetRotationEuler( vec3 angle ) = 0;
|
||||
virtual void SetRotationQuat( vec4 quaternion) = 0;
|
||||
virtual void SetMatrix( mat3 matrix ) = 0;
|
||||
virtual void SetScale( vec3 scale ) = 0;
|
||||
|
||||
virtual void SetVertexBuffer( IVertexBuffer *pBuffer ) = 0;
|
||||
virtual void SetIndexBuffer( IIndexBuffer *pBuffer ) = 0;
|
||||
virtual void Draw() = 0;
|
||||
};
|
||||
|
||||
enum EMaterialType
|
||||
{
|
||||
IMATERIAL_ERROR = 0,
|
||||
@@ -82,20 +68,64 @@ public:
|
||||
Material_t m;
|
||||
};
|
||||
|
||||
interface IRenderer
|
||||
{
|
||||
public:
|
||||
|
||||
static IVertexBuffer *CreateVertexBuffer( uint32_t uSize );
|
||||
static IIndexBuffer *CreateIndexBuffer( uint32_t uSize );
|
||||
|
||||
static IMaterial *LoadMaterial( const char *szName );
|
||||
static void SetMaterial( IMaterial *pMaterial );
|
||||
};
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
// Brush handler for the rendering
|
||||
//----------------------------------------------------------------------------
|
||||
abstract_class IBrush
|
||||
{
|
||||
public:
|
||||
virtual void SetVertexBuffer( IVertexBuffer *pBuffer ) = 0;
|
||||
virtual void SetIndexBuffer( IIndexBuffer *pBuffer ) = 0;
|
||||
virtual void Draw() = 0;
|
||||
};
|
||||
|
||||
interface IBrushRenderer
|
||||
{
|
||||
public:
|
||||
static void Init();
|
||||
static void Frame( float fDelta );
|
||||
|
||||
static IVertexBuffer *CreateVertexBuffer( uint32_t uSize );
|
||||
static IIndexBuffer *CreateIndexBuffer( uint32_t uSize );
|
||||
|
||||
static IBrush *CreateMesh();
|
||||
static void Destroy( IBrush *pModel );
|
||||
};
|
||||
|
||||
static IMaterial *LoadMaterial( const char *szName );
|
||||
static void SetMaterial( IMaterial *pMaterial );
|
||||
//----------------------------------------------------------------------------
|
||||
// Mesh handler for the rendering
|
||||
//----------------------------------------------------------------------------
|
||||
abstract_class IMesh
|
||||
{
|
||||
public:
|
||||
virtual void SetPosition( vec3 position ) = 0;
|
||||
virtual void SetRotationEuler( vec3 angle ) = 0;
|
||||
virtual void SetRotationQuat( vec4 quaternion) = 0;
|
||||
virtual void SetMatrix( mat4 matrix ) = 0;
|
||||
virtual void SetScale( vec3 scale ) = 0;
|
||||
|
||||
virtual void SetVertexBuffer( IVertexBuffer *pBuffer ) = 0;
|
||||
virtual void SetIndexBuffer( IIndexBuffer *pBuffer ) = 0;
|
||||
virtual void Draw() = 0;
|
||||
};
|
||||
|
||||
interface IMeshRenderer
|
||||
{
|
||||
public:
|
||||
static void Init();
|
||||
static void Frame( float fDelta );
|
||||
|
||||
static IMesh *CreateMesh();
|
||||
static void Destroy( IBrush *pModel );
|
||||
};
|
||||
|
||||
abstract_class ITexture
|
||||
|
||||
Reference in New Issue
Block a user