]> git.mxchange.org Git - flightgear.git/blob - src/Main/renderer.hxx
Modified Files:
[flightgear.git] / src / Main / renderer.hxx
1
2 #ifndef __FG_RENDERER_HXX
3 #define __FG_RENDERER_HXX 1
4
5 #include <simgear/screen/extensions.hxx>
6 #include <simgear/scene/sky/sky.hxx>
7 #include <simgear/scene/util/SGPickCallback.hxx>
8
9 #define FG_ENABLE_MULTIPASS_CLOUDS 1
10
11 class SGSky;
12 extern SGSky *thesky;
13
14 extern glPointParameterfProc glPointParameterfPtr;
15 extern glPointParameterfvProc glPointParameterfvPtr;
16 extern bool glPointParameterIsSupported;
17 extern bool glPointSpriteIsSupported;
18
19
20 class FGRenderer {
21
22 public:
23
24     FGRenderer();
25     ~FGRenderer();
26
27     void splashinit();
28     void init();
29
30     static void resize(int width, int height );
31
32     // calling update( refresh_camera_settings = false ) will not
33     // touch window or camera settings.  This is useful for the tiled
34     // renderer which needs to set the view frustum itself.
35     static void update( bool refresh_camera_settings );
36     inline static void update() { update( true ); }
37
38
39     /** FlightGear code should use this routine to set the FOV rather
40      *  than calling the ssg routine directly
41      */
42     static void setFOV( float w, float h );
43
44
45     /** FlightGear code should use this routine to set the Near/Far
46      *  clip planes rather than calling the ssg routine directly
47      */
48     static void setNearFar( float n, float f );
49
50     /** Just pick into the scene and return the pick callbacks on the way ...
51      */
52     static bool pick( unsigned x, unsigned y,
53                       std::vector<SGSceneryPick>& pickList );
54 };
55
56 #endif