public static void uploadBitmapData(bc.flash.display3D.textures.AsTexture nativeTexture, AsBitmapData data, bool generateMipmaps)
 {
     nativeTexture.uploadFromBitmapData(data);
     if (generateMipmaps && data.getWidth() > 1 && data.getHeight() > 1)
     {
         int          currentWidth  = data.getWidth() >> 1;
         int          currentHeight = data.getHeight() >> 1;
         int          level         = 1;
         AsBitmapData canvas        = new AsBitmapData(currentWidth, currentHeight, true, 0);
         AsMatrix     transform     = new AsMatrix(.5f, 0, 0, .5f);
         AsRectangle  bounds        = new AsRectangle();
         while (currentWidth >= 1 || currentHeight >= 1)
         {
             bounds.width  = currentWidth;
             bounds.height = currentHeight;
             canvas.fillRect(bounds, (uint)(0));
             canvas.draw(data, transform, null, null, null, true);
             nativeTexture.uploadFromBitmapData(canvas, (uint)(level++));
             transform.scale(0.5f, 0.5f);
             currentWidth  = currentWidth >> 1;
             currentHeight = currentHeight >> 1;
         }
         canvas.dispose();
     }
 }
        public static AsTexture fromColor(int width, int height, uint color, bool optimizeForRenderTexture, float scale)
        {
            if (scale <= 0)
            {
                scale = AsStarling.getContentScaleFactor();
            }
            AsBitmapData bitmapData = new AsBitmapData(width * scale, height * scale, true, color);
            AsTexture    texture    = fromBitmapData(bitmapData, false, optimizeForRenderTexture, scale);

            if (!AsStarling.getHandleLostContext())
            {
                bitmapData.dispose();
            }
            return(texture);
        }