]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/renderer.hxx
Clean up scenery center handling. It is set now less often.
[flightgear.git] / src / Main / renderer.hxx
index c8db96d5e4185eced02a995baef31797cf1d41a7..7cfbfd354c57f2d0494d9f67a1c0270b77199120 100644 (file)
@@ -13,20 +13,44 @@ extern SGSky *thesky;
 extern glPointParameterfProc glPointParameterfPtr;
 extern glPointParameterfvProc glPointParameterfvPtr;
 extern bool glPointParameterIsSupported;
+extern bool glPointSpriteIsSupported;
 
 
 class FGRenderer {
 
 public:
-    FGRenderer() {}
-    ~FGRenderer() {}
+
+    FGRenderer();
+    ~FGRenderer();
 
     void init();
-    static void update();
-    static void resize(int width, int height );
 
-    void screendump();
     void build_states();
+    static void resize(int width, int height );
+
+    // calling update( refresh_camera_settings = false ) will not
+    // touch window or camera settings.  This is useful for the tiled
+    // renderer which needs to set the view frustum itself.
+    static void update( bool refresh_camera_settings );
+    inline static void update() { update( true ); }
+
+
+    /** FlightGear code should use this routine to set the FOV rather
+     *  than calling the ssg routine directly
+     */
+    static void setFOV( float w, float h );
+
+
+    /** FlightGear code should use this routine to set the Near/Far
+     *  clip planes rather than calling the ssg routine directly
+     */
+    static void setNearFar( float n, float f );
+
+    /** Get the pick start point and direction in global coordinates.
+     *  The inputs are expected to be the x and y coordinates of the
+     *  screen point relative to the window.
+     */
+    static bool getPickInfo( SGVec3d& p, SGVec3d& d, unsigned x, unsigned y );
 };
 
 #endif