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; }
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)] }
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; }