source: GTP/trunk/App/Games/Jungle_Rumble/src/Renderer.h @ 1378

Revision 1378, 1.5 KB checked in by giegl, 18 years ago (diff)

GTPD - Jungle Rumble - integrate into GTP SVN structure

Line 
1#pragma once
2#include "Node.h"
3#include <boost/shared_ptr.hpp>
4
5class Scene;
6
7#define SPTR boost::shared_ptr
8#define WPTR boost::weak_ptr
9
10class Renderer
11{
12public:
13        friend class RenderPass;
14
15        Renderer(void);
16        virtual ~Renderer(void);
17        void setNode(WPTR<Node> &_myNode);
18        void setScene(Scene &scene);
19
20        void setRenderPriority(int _priority);
21        int getRenderPriority();
22
23        //Funktionen die eventuell von RenderPass aufgerufen werden
24        virtual void setWorldMatrix(D3DXMATRIX &_worldMat);
25        virtual void setViewMatrix(D3DXMATRIX &_viewMat);
26        virtual void setProjectionMatrix(D3DXMATRIX &_projMat);
27
28        virtual void render() = 0;
29        virtual void init() = 0;
30        virtual bool isLowerThan(Renderer* renderer) = 0;
31        friend class Scene;
32
33        virtual void OnLostDevice( void* pUserContext ) = 0;
34        virtual void OnDestroyDevice( void* pUserContext ) = 0;
35        virtual HRESULT OnResetDevice( IDirect3DDevice9* pd3dDevice, const D3DSURFACE_DESC* pBackBufferSurfaceDesc, void* pUserContext ) = 0;
36
37        virtual void setCurrentTexture(IDirect3DTexture9* texture);
38
39        bool isA(int _rendererType);
40        static const int RENDERER_HUD = 1;
41        static const int RENDERER_OCEAN = 2;
42        static const int RENDERER_PARTICLE = 4;
43        static const int RENDERER_RAYTRACE = 8;
44        static const int RENDERER_SIMPLEMESH = 16;
45        static const int RENDERER_SKYBOX = 32;
46        static const int RENDERER_TERRAIN = 64;
47
48        virtual bool needsExtraPass();
49
50        WPTR<Node> myNode;
51protected:
52        IDirect3DDevice9 *device;
53        Scene *myScene;
54       
55        bool nodeAdded;
56        int rendererType;
57        int myRenderPriority;
58};
Note: See TracBrowser for help on using the repository browser.