//===========================================================================// // Copyright (C) Microsoft Corporation. All rights reserved. // //===========================================================================// #pragma once #define MLR_MLREFFECT_HPP #if !defined(MLR_MLR_HPP) #include #endif namespace MidLevelRenderer { struct EffectClipPolygon { void Init(); void Destroy(); Stuff::DynamicArrayOf coords; //[Max_Number_Vertices_Per_Polygon]; Stuff::DynamicArrayOf colors; //[Max_Number_Vertices_Per_Polygon]; Stuff::DynamicArrayOf texCoords; //[Max_Number_Vertices_Per_Polygon]; Stuff::DynamicArrayOf clipPerVertex; //[Max_Number_Vertices_Per_Polygon]; }; class DrawEffectInformation; //########################################################################## //######################### MLREffect ################################# //########################################################################## class MLREffect : public Stuff::RegisteredClass { public: static void InitializeClass(); static void TerminateClass(); MLREffect(int, ClassData *class_data); ~MLREffect(); virtual void SetData( const int *count, const Stuff::Point3D *point_data, const Stuff::RGBAColor *color_data ) = 0; virtual int GetType(int) { return 0; } // add another effect virtual void Draw (DrawEffectInformation*, GOSVertexPool*, MLRSorter*) = 0; virtual void Transform(int, int); // switches single/all effects on or off void TurnAllOn(); void TurnAllOff(); void TurnOn(int nr) { Check_Object(this); Verify(nr *transformedCoords; Stuff::DynamicArrayOf testList; int drawMode; Stuff::LinearMatrix4D worldToEffect; Stuff::Matrix4D effectToClipMatrix; GOSVertex *gos_vertices; int numGOSVertices; }; struct EffectClipData { Stuff::Vector4D *coords; Stuff::RGBAColor *colors; Vector2DScalar *texCoords; MLRClippingState *clipPerVertex; int flags; int length; }; }