Пример #1
0
 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();
     }
 }
Пример #2
0
 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;
 }