]> git.mxchange.org Git - flightgear.git/blobdiff - src/Main/renderer.hxx
Fix line endings
[flightgear.git] / src / Main / renderer.hxx
index 79d01e23b5167eb267a61d19d1ade550a58df495..c638a35a34e25894543837e7dd6bb9b4edfd45c1 100644 (file)
@@ -13,22 +13,44 @@ extern SGSky *thesky;
 extern glPointParameterfProc glPointParameterfPtr;
 extern glPointParameterfvProc glPointParameterfvPtr;
 extern bool glPointParameterIsSupported;
+extern bool glPointSpriteIsSupported;
 
-void fgRenderFrame();
-void fgReshape(int width, int height);
 
 class FGRenderer {
 
 public:
-    FGRenderer() {}
-    ~FGRenderer() {}
+
+    FGRenderer();
+    ~FGRenderer();
 
     void init();
-    void update(double dt);
-    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( sgdVec3 p, sgdVec3 d, unsigned x, unsigned y );
 };
 
 #endif