public AsFragmentFilter(int numPasses, float resolution)
 {
     if(AsCapabilities.getIsDebugger() && AsGlobal.getQualifiedClassName(this) == "starling.filters::FragmentFilter")
     {
         throw new AsAbstractClassError();
     }
     if(numPasses < 1)
     {
         throw new AsArgumentError("At least one pass is required.");
     }
     mNumPasses = numPasses;
     mMarginX = mMarginY = 0.0f;
     mOffsetX = mOffsetY = 0;
     mResolution = resolution;
     mMode = AsFragmentFilterMode.REPLACE;
     mVertexData = new AsVertexData(4);
     mVertexData.setTexCoords(0, 0, 0);
     mVertexData.setTexCoords(1, 1, 0);
     mVertexData.setTexCoords(2, 0, 1);
     mVertexData.setTexCoords(3, 1, 1);
     mIndexData = new AsVector<uint>();
     mIndexData.setOwnProperty("_fixed", true);
     createPrograms();
     AsStarling.getCurrent().getStage3D().addEventListener(AsEvent.CONTEXT3D_CREATE, onContextCreated, false, 0, true);
 }
 public override void adjustVertexData(AsVertexData vertexData, int vertexID, int count)
 {
     base.adjustVertexData(vertexData, vertexID, count);
     float clipX = mRootClipping.x;
     float clipY = mRootClipping.y;
     float clipWidth = mRootClipping.width;
     float clipHeight = mRootClipping.height;
     int endIndex = vertexID + count;
     int i = vertexID;
     for (; i < endIndex; ++i)
     {
         vertexData.getTexCoords(i, sTexCoords);
         vertexData.setTexCoords(i, clipX + sTexCoords.x * clipWidth, clipY + sTexCoords.y * clipHeight);
     }
 }