#pragma once #include "renderer.h" #include "Object3d.h" // Our custom FVF, which describes our custom vertex structure #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ|D3DFVF_DIFFUSE) // A structure for our custom vertex type struct CUSTOMVERTEX { FLOAT x, y, z; // The untransformed, 3D position for the vertex DWORD color; // The vertex color }; class SimpleMeshRenderer : public Renderer { public: SimpleMeshRenderer(void); virtual ~SimpleMeshRenderer(void); virtual void init(); virtual void render(); void enableAlphaBlending(bool _alpha); virtual void OnLostDevice( void* pUserContext ); virtual void OnDestroyDevice( void* pUserContext ); virtual HRESULT OnResetDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext ); virtual bool isLowerThan(Renderer* renderer); protected: void defaultPass(); void depthPass(); void rayPass(); bool alphaBlending; ID3DXEffect* effect; ID3DXEffect* rayEffect; };