RenderGmComposite

Superclasses

The VirtualDisplay Class

Subclasses: MonochromeDisplay& Canvas3D

Render2D

Subclasses: Kneeboard, RenderGMComposite & Render3D

RenderGMComposite




 public:
        RenderGMComposite()                             { lTexHandle = rTexHandle = NULL; };
        virtual ~RenderGMComposite()    {};

        // Setup and Cleanup need to have additions here, but still call the parent versions
        virtual void Setup( ImageBuffer *output, void(*tgtDrawCallback)(void*,RenderGMRadar*), void *tgtDrawParam );
        virtual void Cleanup( void );

        void    SetGimbalLimit( float angleLimit )                      { gimbalLimit = angleLimit; };
        void    SetBeam( Tpoint *from, Tpoint *at, Tpoint *center, float platformHdg, float beamAngle, int beamPercent, BOOL movingRight );
        void    DrawComposite( Tpoint *centerPoint, float platformHdg );

        // These are passed through to the RenderGMRadar object we're using
        void    SetRange( float newRange, int newLOD );
        void    SetGain( float newGain )                                        { radar.SetGain( newGain ); };

        float   GetRange( void )                        { return radar.GetRange() / GM_OVERSCAN_RNG; };
        int             GetLOD( void )                          { return radar.GetLOD(); };
        float   GetGimbalLimit( void )          { return gimbalLimit; };
        float   GetGain( void )                         { return radar.GetGain(); };
 

        void    DebugDrawLeftTexture( Render2D *renderer );
        void    DebugDrawRadarImage( ImageBuffer *target );

  protected:
        ImageBuffer             renderTarget;
        RenderGMRadar   radar;

        DWORD   paletteHandle;
        BYTE    imageData[GM_TEXTURE_SIZE*GM_TEXTURE_SIZE];

        void(*tgtDrawCB)(void*, RenderGMRadar*);
        void    *tgtDrawCBparam;

        float   range;
        float   worldToUnitScale;

        DWORD   lTexHandle;
        float   lOriginX;
        float   lOriginY;
        float   lAngle;

        DWORD   rTexHandle;
        float   rOriginX;
        float   rOriginY;
        float   rAngle;

        int             prevBeamPercent;
        BOOL    prevBeamRight;
        float   gimbalLimit;

        const struct OpRecord   *nextOperation;

  protected:
        void    BackgroundGeneration( Tpoint *from, Tpoint *at, float platformHdg, int beamPercent, BOOL movingRight );
        void    NewImage( Tpoint *at, float platformHdg, BOOL replaceRight );
};