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 AsQuadBatch() { mVertexData = new AsVertexData(0, true); mIndexData = new AsVector <uint>(); mNumQuads = 0; mTinted = false; mSyncRequired = false; AsStarling.getCurrent().getStage3D().addEventListener(AsEvent.CONTEXT3D_CREATE, onContextCreated, false, 0, true); }
public override void copyVertexDataTo(AsVertexData targetData, int targetVertexID) { if (mVertexDataCacheInvalid) { mVertexDataCacheInvalid = false; mVertexData.copyTo(mVertexDataCache); mTexture.adjustVertexData(mVertexDataCache, 0, 4); } mVertexDataCache.copyTo(targetData, targetVertexID); }
public AsQuad(float width, float height, uint color, bool premultipliedAlpha) { mTinted = color != 0xffffff; mVertexData = new AsVertexData(4, premultipliedAlpha); mVertexData.setPosition(0, 0.0f, 0.0f); mVertexData.setPosition(1, width, 0.0f); mVertexData.setPosition(2, 0.0f, height); mVertexData.setPosition(3, width, height); mVertexData.setUniformColor(color); onVertexDataChanged(); }
public AsImage(AsTexture texture) : base(texture.getFrame() != null ? texture.getFrame().width : texture.getWidth(), texture.getFrame() != null ? texture.getFrame().height : texture.getHeight(), 0xffffff, texture.getPremultipliedAlpha()) { bool pma = texture.getPremultipliedAlpha(); mVertexData.setTexCoords(0, 0.0f, 0.0f); mVertexData.setTexCoords(1, 1.0f, 0.0f); mVertexData.setTexCoords(2, 0.0f, 1.0f); mVertexData.setTexCoords(3, 1.0f, 1.0f); mTexture = texture; mSmoothing = AsTextureSmoothing.BILINEAR; mVertexDataCache = new AsVertexData(4, pma); mVertexDataCacheInvalid = 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); } }
public virtual void adjustVertexData(AsVertexData vertexData, int vertexID, int count) { if (mFrame != null) { if (count != 4) { throw new AsArgumentError("Textures with a frame can only be used on quads"); } float deltaRight = mFrame.width + mFrame.x - getWidth(); float deltaBottom = mFrame.height + mFrame.y - getHeight(); vertexData.translateVertex(vertexID, -mFrame.x, -mFrame.y); vertexData.translateVertex(vertexID + 1, -deltaRight, -mFrame.y); vertexData.translateVertex(vertexID + 2, -mFrame.x, -deltaBottom); vertexData.translateVertex(vertexID + 3, -deltaRight, -deltaBottom); } }
public virtual void copyVertexDataTo(AsVertexData targetData) { copyVertexDataTo(targetData, 0); }
public virtual void copyVertexDataTo(AsVertexData targetData, int targetVertexID) { mVertexData.copyTo(targetData, targetVertexID); }