Пример #1
0
 public override int read(global::org.xmlvm._nArrayAdapter<sbyte> n1, int n2, int n3)
 {
     sbyte[] sb = n1.getCSharpArray();
     int v = internalStream.Read((byte[])(Array)sb, n2, n3);
     if (v <= 0)
     {
         return -1;
     }
     return v;
 }
Пример #2
0
 private long readImpl(long n1, global::org.xmlvm._nArrayAdapter<sbyte> n2, int n3, int n4)
 {
     //XMLVM_BEGIN_WRAPPER[org.apache.harmony.luni.platform.OSFileSystem: long readImpl(long, byte[], int, int)]
     #if CONSOLE
     throw new org.xmlvm._nNotYetImplementedException("native/wrapper method not yet implemented");
     #else
     return files[n1].Stream.Read((byte[])(global::System.Array)n2.getCSharpArray(), n3, n4);
     #endif
     //XMLVM_END_WRAPPER[org.apache.harmony.luni.platform.OSFileSystem: long readImpl(long, byte[], int, int)]
 }
Пример #3
0
 public override void write(global::org.xmlvm._nArrayAdapter<sbyte> n1, int n2, int n3)
 {
     if (internalStream != null)
         lock (internalStream)
             internalStream.Write(SilverlightImplementation.toByteArray(n1.getCSharpArray()), n2, n3);
 }
 public override global::System.Object createImage(global::org.xmlvm._nArrayAdapter<sbyte> n1, int n2, int n3)
 {
     Stream s;
     if (n1.Length != n3 || n2 != 0)
     {
         // TODO
         s = new MemoryStream(toByteArray(n1.getCSharpArray()));
     }
     else
     {
         s = new MemoryStream(toByteArray(n1.getCSharpArray()));
     }
     return new XNAImage(Texture2D.FromStream(SharedGraphicsDeviceManager.Current.GraphicsDevice, s));
 }
 public override void getRGB(global::java.lang.Object n1, global::org.xmlvm._nArrayAdapter<int> arr, int offset, int x, int y, int w, int h)
 {
     XNAImage i = (XNAImage)n1;
     // TODO: take x/y into consideration
     // FIX error with scaled images!!!
     i.image.GetData<int>(arr.getCSharpArray(), offset, w * h);
 }
 public override global::System.Object createImage(global::org.xmlvm._nArrayAdapter<int> n1, int n2, int n3)
 {
     RenderTarget2D rt = new RenderTarget2D(SharedGraphicsDeviceManager.Current.GraphicsDevice, n2, n3);
     int[] arr = n1.getCSharpArray();
     rt.SetData(arr);
     return new XNAImage(rt);
 }
 public override int read(global::org.xmlvm._nArrayAdapter<sbyte> n1, int n2, int n3)
 {
     sbyte[] sb = n1.getCSharpArray();
     byte[] buffer = new byte[sb.Length];
     int v = internalStream.Read(buffer, n2, n3);
     for (int iter = n2; iter < v; iter++)
     {
         sb[iter] = (sbyte)buffer[iter];
     }
     return v;
 }
        public override global::System.Object createImage(global::org.xmlvm._nArrayAdapter<sbyte> n1, int n2, int n3) {
 //           var ticks = System.DateTime.Now.Ticks; //FA
            // I think Image Cache is not needed; first we load image and then we try to get it from cache?
            // other issue is that hasCode function is not working well for _nArrayAdapter
            //if (imageCache.ContainsKey(n1.hashCode())) {
            //    CodenameOneImage cached;
            //    imageCache.TryGetValue(n1.hashCode(), out cached);
            //    cached.lastAccess = System.DateTime.Now.Ticks;
            //    return cached;
            //}
            if (n1.Length == 0) {
                // workaround for empty images
                return createMutableImage(1, 1, 0xffffff);
            }

            CodenameOneImage ci = null;

            ///        using (AutoResetEvent are = new AutoResetEvent(false))
            ///        {
            ///            dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
            ///            {
            IRandomAccessStream s;
            string contentType;
            if (n1.Length != n3 || n2 != 0) {
                // TODO
                byte[] imageArray = toByteArray(n1.getCSharpArray());
                contentType = ImageHelper.GetContentType(imageArray);
               
                s = new MemoryRandomAccessStream(imageArray); // new MemoryStream(imageArray).AsRandomAccessStream();
            }
            else {
                byte[] imageArray = toByteArray(n1.getCSharpArray());
                
                contentType = ImageHelper.GetContentType(imageArray);
                s = new MemoryRandomAccessStream(imageArray); // new MemoryStream(imageArray).AsRandomAccessStream();
            }
            try {
                CanvasBitmap canvasbitmap = CanvasBitmap.LoadAsync(screen, s).AsTask().ConfigureAwait(false).GetAwaiter().GetResult();
                CodenameOneImage cim = new CodenameOneImage();
                cim.@this();
                if (contentType.Equals("image/jpeg") || contentType.Equals("image/x-ms-bmp")) {
                    cim.opaque = true;
                }
                CanvasRenderTarget cr = new CanvasRenderTarget(screen, float.Parse(canvasbitmap.Size.Width.ToString()), float.Parse(canvasbitmap.Size.Height.ToString()), canvasbitmap.Dpi);
                cim.image = cr;
                cim.graphics.destination.drawImage(canvasbitmap, 0, 0);
                cim.graphics.destination.dispose();
                ci = cim;
                //dispatcher.RunAsync(CoreDispatcherPriority.Low, () => {
                //    imageCache.TryAdd(n1.hashCode(), ci);
                //    while (imageCache.Count > maxCacheSize) {
                //        int toRemove = imageCache.OrderBy(m => m.Value.lastAccess).First().Key;
                //        CodenameOneImage ignored;
                //        imageCache.TryRemove(toRemove, out ignored);
                //        //Debug.WriteLine("Image removed from cache " + toRemove);
                //    }
                //    //Debug.WriteLine("Image cached " + n1.hashCode());
                //}).AsTask();
                //Debug.WriteLine("Image created " + n1.hashCode());
            }
            catch (Exception) {
                Debug.WriteLine("\n Failed to create image " + n1.hashCode() + "\n Position: " + s.Position + "\n Size: " + s.Size);
            }
            ///              are.Set();
            ///          }).AsTask().ConfigureAwait(false).GetAwaiter().GetResult();
            ///          are.WaitOne();
            ///      }
            ///                  
//            ticks= (System.DateTime.Now.Ticks-ticks)/10; //FA
//            global::eu.forann.tools.LogF.eventNewItem(toJava("[createImage] ticks:" + ticks ));
            return ci;
        }
 public override global::System.Object createImage(global::org.xmlvm._nArrayAdapter<sbyte> n1, int n2, int n3)
 {
     CodenameOneImage ci = null;
     using (AutoResetEvent are = new AutoResetEvent(false))
     {
         System.Windows.Deployment.Current.Dispatcher.BeginInvoke(() =>
         {
             Stream s;
             if (n1.Length != n3 || n2 != 0)
             {
                 // TODO
                 s = new MemoryStream(toByteArray(n1.getCSharpArray()));
             }
             else
             {
                 s = new MemoryStream(toByteArray(n1.getCSharpArray()));
             }
             BitmapImage bitmapImage = new BitmapImage();
             CodenameOneImage cim = new CodenameOneImage();
             cim.@this();
             bitmapImage.SetSource(s);
             cim.img = bitmapImage;
             cim.width = (int)bitmapImage.PixelWidth;
             cim.height = (int)bitmapImage.PixelHeight;
             ci = cim;
             are.Set();
         });
         are.WaitOne();
     }
     return ci;
 }
 public override void write(global::org.xmlvm._nArrayAdapter<sbyte> n1)
 {
     internalStream.Write(SilverlightImplementation.toByteArray(n1.getCSharpArray()), 0, n1.Length);
 }
        public override int read(global::org.xmlvm._nArrayAdapter<sbyte> n1)
        {
            sbyte[] sb = n1.getCSharpArray();
            byte[] buffer = new byte[sb.Length];
            int v = internalStream.Read(buffer, 0, buffer.Length);
            if (v <= 0)
            {
                return -1;
            }

            for (int iter = 0; iter < v; iter++)
            {
                sb[iter] = (sbyte)buffer[iter];
            }
            return v;
        }