// Copyright (C) 1996 Keith Whitwell. // This file may only be copied under the terms of the GNU Library General // Public License - see the file COPYING in the lib3d distribution. #ifndef NewViewportClass #define NewViewportClass #include struct edge_major_texture; struct edge_major_flat; struct edge_major_smooth; struct edge_minor; struct edge_minor_step; class VpNew : public Viewport { public: void textureTriangleZb( TexturePipelineData *const[], const Texture & ); void texturePolygonZb(uint, TexturePipelineData *const[], const Texture & ); void flatPolygonZb(uint, PipelineData *const[], Colour ); void flatTriangleZb(PipelineData *const[], Colour ); void smoothPolygonZb(uint, SmoothPipelineData *const[], const ColourRamp& ); void smoothTriangleZb(SmoothPipelineData *const[], const ColourRamp& ); void setDirty( int xmin, int ymin, int xmax, int ymax ); protected: virtual void doTextureTriangleZb( edge_major_texture&, edge_minor_step&, edge_minor_step&, const Texture & ) = 0; virtual void doFlatTriangleZb( edge_major_flat&, edge_minor&, edge_minor&, Colour ) = 0; virtual void doSmoothTriangleZb( edge_major_smooth&, edge_minor_step&, edge_minor_step&, const ColourRamp & ) = 0; protected: VpNew( Exemplar e, uint i ) : Viewport( e, i ) {} VpNew( Device * ); ~VpNew(); }; // // #define LOG_UNITY 6 #define UNITY (1<