public virtual void deleteProgram(String name)
        {
            AsProgram3D program = getProgram(name);

            if (program != null)
            {
                program.dispose();
                mPrograms.remove(name);
            }
        }
        public virtual void registerProgram(String name, AsByteArray vertexProgram, AsByteArray fragmentProgram)
        {
            if (mPrograms.containsKey(name))
            {
                throw new AsError("Another program with this name is already registered");
            }
            AsProgram3D program = mContext.createProgram();

            program.upload(vertexProgram, fragmentProgram);
            mPrograms[name] = program;
        }
        protected override void createPrograms()
        {
            String fragmentProgramCode = "tex oc, v0, fs0 <2d, clamp, linear, mipnone>";

            mShaderProgram = assembleAgal(fragmentProgramCode);
        }
 protected override void createPrograms()
 {
     mNormalProgram = createProgram(false);
     mTintedProgram = createProgram(true);
 }
        protected override void createPrograms()
        {
            String fragmentProgramCode = "tex ft0, v0, fs0 <2d, clamp, linear, mipnone>  \n" + "dp3 ft0.xyz, ft0.xyz, fc0.xyz \n" + "mov oc, ft0                   \n";

            mShaderProgram = assembleAgal(fragmentProgramCode);
        }
        protected override void createPrograms()
        {
            String fragmentProgramCode = "tex ft0, v0,  fs0 <2d, clamp, linear, mipnone>  \n" + "max ft0, ft0, fc5              \n" + "div ft0.xyz, ft0.xyz, ft0.www  \n" + "m44 ft0, ft0, fc0              \n" + "add ft0, ft0, fc4              \n" + "mul ft0.xyz, ft0.xyz, ft0.www  \n" + "mov oc, ft0                    \n";

            mShaderProgram = assembleAgal(fragmentProgramCode);
        }