#pragma once #include "..\munga\gaugrend.h" #include "l4vb16.h" #include "l4plasma.h" #include "l4gauima.h" #include "l4wrhous.h" //~~~~~~~~~~~~~~~~~~~~~~~~~~~~ L4GaugeRenderer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ class L4GaugeRenderer: public GaugeRenderer { public: //-------------------------------------------------------------------- // Construction, Destruction, Testing //-------------------------------------------------------------------- L4GaugeRenderer(bool windowed, int *secondaryIndex, int *aux1Gauge, int *aux2Gauge); ~L4GaugeRenderer(); void LocalEmergencyShutdown(); Logical TestInstance() const; //-------------------------------------------------------------------- // Profiling support //-------------------------------------------------------------------- protected: Scalar GetCurrentFramePercentage(); //-------------------------------------------------------------------- // GraphicsPort methods //-------------------------------------------------------------------- public: void BuildGraphicsPort( int port_number, const char *name, int rotation, int bitAllocation, SVGA16::PaletteID palette_ID, L4GraphicsPort::ChannelEnableID enable_ID, Palette8 *palette ); void RemapGraphicsPort( int port_number, SVGA16::PaletteID palette_ID, L4GraphicsPort::ChannelEnableID enable_ID, Palette8 *palette ); void BuildExternalGraphicsPort( int port_number, const char *name, int bitAllocation ); // //-------------------------------------------------------------------- // 'palette ramping' //-------------------------------------------------------------------- // void FadeToWhite(Scalar number_of_seconds); void FadeToNormal(Scalar number_of_seconds); // //-------------------------------------------------------------------- // Accessors //-------------------------------------------------------------------- // GraphicsDisplay *GetExternalDisplay() { Check(this); return externalDisplay; } // //-------------------------------------------------------------------- // Configuration //-------------------------------------------------------------------- // void ConfigureForModel( const char *configuration_name, Entity *entity ); // //-------------------------------------------------------------------- // ExecuteImplementation //-------------------------------------------------------------------- // protected: void ExecuteForeground(); Logical ExecuteBackgroundDisplayUpdate(); void LoadMissionImplementation( Mission *mission ); virtual void NotifyOfNewInterestingEntity(Entity *entity); virtual void NotifyOfBecomingUninterestingEntity(Entity *entity); void ShutdownImplementation(); void SuspendImplementation(); void ResumeImplementation(); // //-------------------------------------------------------------------- // Video effects //-------------------------------------------------------------------- // public: void SpecialEffect(VideoEffectType type, Scalar duration); protected: void ProcessVideoEffects(); // //-------------------------------------------------------------------- // Protected data //-------------------------------------------------------------------- // protected: Logical palettesAreActive; GraphicsDisplay *graphicsDisplay, *externalDisplay; Logical scrambleVideoFlag; Time scrambleVideoTimeout; };