protected override void activate(int pass, AsContext3D context, AsTexture texture)
 {
     context.setProgramConstantsFromVector(AsContext3DProgramType.FRAGMENT, 0, mOnes, 1);
     context.setProgramConstantsFromVector(AsContext3DProgramType.FRAGMENT, 1, mMinColor, 1);
     context.setProgram(mShaderProgram);
 }
 protected override void activate(int pass, AsContext3D context, AsTexture texture)
 {
     context.setProgramConstantsFromVector(AsContext3DProgramType.FRAGMENT, 0, mShaderMatrix);
     context.setProgramConstantsFromVector(AsContext3DProgramType.FRAGMENT, 5, MIN_COLOR);
     context.setProgram(mShaderProgram);
 }
 protected override void activate(int pass, AsContext3D context, AsTexture texture)
 {
     updateParameters(pass, (int)(texture.getWidth() * texture.getScale()), (int)(texture.getHeight() * texture.getScale()));
     context.setProgramConstantsFromVector(AsContext3DProgramType.VERTEX, 4, mOffsets);
     context.setProgramConstantsFromVector(AsContext3DProgramType.FRAGMENT, 0, mWeights);
     if(mUniformColor && pass == getNumPasses() - 1)
     {
         context.setProgramConstantsFromVector(AsContext3DProgramType.FRAGMENT, 1, mColor);
         context.setProgram(mTintedProgram);
     }
     else
     {
         context.setProgram(mNormalProgram);
     }
 }
 protected override void activate(int pass, AsContext3D context, AsTexture texture)
 {
     context.setProgram(mShaderProgram);
 }
 private void updateBuffers(AsContext3D context, AsRectangle bounds)
 {
     mVertexData.setPosition(0, bounds.x, bounds.y);
     mVertexData.setPosition(1, bounds.getRight(), bounds.y);
     mVertexData.setPosition(2, bounds.x, bounds.getBottom());
     mVertexData.setPosition(3, bounds.getRight(), bounds.getBottom());
     if(mVertexBuffer == null)
     {
         mVertexBuffer = context.createVertexBuffer(4, AsVertexData.ELEMENTS_PER_VERTEX);
         mIndexBuffer = context.createIndexBuffer(6);
         mIndexBuffer.uploadFromVector(mIndexData, 0, 6);
     }
     mVertexBuffer.uploadFromVector(mVertexData.getRawData(), 0, 4);
 }
 protected virtual void deactivate(int pass, AsContext3D context, AsTexture texture)
 {
 }
 protected virtual void activate(int pass, AsContext3D context, AsTexture texture)
 {
     throw new AsError("Method has to be implemented in subclass!");
 }
 private void initializeGraphicsAPI()
 {
     mContext = mStage3D.getContext3D();
     mContext.setEnableErrorChecking(mEnableErrorChecking);
     mPrograms = new AsDictionary();
     updateViewPort();
     AsGlobal.trace("[Starling] Initialization complete.");
     AsGlobal.trace("[Starling] Display Driver:", mContext.getDriverInfo());
     dispatchEventWith(starling.events.Event.CONTEXT3D_CREATE, false, mContext);
 }