Kneeboard

Superclasses

The VirtualDisplay Class

Subclasses: MonochromeDisplay& Canvas3D

 

Render2D

Subclasses: Kneeboard, RenderGMComposite & Render3D

Kneeboard


 public:
        KneeBoard()                             {};
        virtual ~KneeBoard()    {};

        virtual void Setup( class DisplayDevice *device, int top, int left, int bottom, int right );
        virtual void Cleanup( void );

        enum Page {BRIEF, MAP};

        void SetPage( Page m )  { mode = m; };
        Page GetPage( void )    { return mode; };

        void Refresh( SimVehicleClass *platform );
        void DisplayBlit( ImageBuffer *imageBuffer, Render2D *renderer, class SimVehicleClass *platform );
        void DisplayDraw( ImageBuffer *imageBuffer, Render2D *renderer, class SimVehicleClass *platform );

  private:
        // Which page we're displaying
        Page            mode;

        // Map image surface and Blt rectangles
        ImageBuffer     mapImage;
        RECT            srcRect;
        RECT            dstRect;

        // Real world map dimensions
        float           wsVcenter;
        float           wsHcenter;
        float           wsHsize;
        float           wsVsize;
        int                     pixelMag;

        // Internal worker functions for the text page
        void DrawMissionText( Render2D *renderer, SimVehicleClass *platform );

        // Internal worker funtions for the map page
        void RenderMap( SimVehicleClass *platform );
        void UpdateMapDimensions( SimVehicleClass *platform );
        void DrawMap( void );
        void DrawWaypoints( SimVehicleClass *platform );
        void DrawCurrentPosition( ImageBuffer *targetBuffer, Render2D *renderer, SimVehicleClass *platform );
        void MapWaypointToDisplay( WayPointClass *curWaypoint, float *x, float *y );