using System.Windows.Browser;\r
\r
using System.Collections.Generic;\r
-\r
+ \r
\r
\r
namespace Psychlops\r
{\r
// protected System.Collections.Generic.Queue<Internal.PrimitiveFigure> stack;\r
internal Internal.PrimitiveFigure[] stack;\r
- internal int stackN;\r
+ internal int stackN = 0;\r
internal Line[] lineStack;\r
- internal int lineStackN;\r
+ internal int lineStackN = 0;\r
internal Rectangle[] rectStack;\r
- internal int rectStackN;\r
+ internal int rectStackN = 0;\r
internal Ellipse[] ellipseStack;\r
- internal int ellipseStackN;\r
+ internal int ellipseStackN = 0;\r
internal Polygon[] polygonStack;\r
- internal int polygonStackN;\r
+ internal int polygonStackN = 0;\r
internal Letters[] lettersStack;\r
- internal int lettersStackN;\r
+ internal int lettersStackN = 0;\r
internal Image[] imageStack;\r
- internal int imageStackN;\r
+ internal int imageStackN = 0;\r
internal Group[] groupStack;\r
- internal int groupStackN;\r
-\r
+ internal int groupStackN = 0;\r
\r
public StackableDrawable()\r
{\r
}\r
for (int i = 0; i < CONST.HOBJ_N; i++)\r
{\r
- imageStack[i] = new Image(1, 1);\r
- groupStack[i] = new Group();\r
+ imageStack[i] = new Image();\r
+// groupStack[i] = new Group();\r
}\r
}\r
\r
public virtual void line(Line drawee) { drawee.copyToStack(this); }\r
public virtual void rect(Rectangle drawee) { drawee.copyToStack(this); }\r
public virtual void ellipse(Ellipse drawee) { drawee.copyToStack(this); }\r
+ public virtual void oval(Ellipse drawee) { drawee.copyToStack(this); }\r
public virtual void polygon(Polygon drawee) { drawee.copyToStack(this); }\r
public virtual void letters(Letters drawee) { drawee.copyToStack(this); }\r
public virtual void image(Image drawee) { drawee.copyToStack(this); }\r
{\r
before = new Clock();\r
before.update();\r
+ var after = new Clock();\r
AsyncInitBool = false;\r
width_ = wid;\r
height_ = hei;\r
api_canvas.Dispatcher.BeginInvoke(new TwoIntProcedure(initialize__), wid, hei);\r
- while(!AsyncInitBool)\r
+ while (!AsyncInitBool)\r
{\r
+ after.update();\r
+ if ((after - before).at_msec() > 1000) break;\r
}\r
Mouse._prime = api_canvas;\r
Main.drawable = this;\r
back_panel = new Rectangle(wid, hei);\r
\r
flipexec = new SimpleProcedure(executeFlip);\r
- AppState.statusBar = "";\r
}\r
protected void initialize__(int wid, int hei)\r
{\r
HtmlElement htmlHost = HtmlPage.Document.GetElementById("silverlightControlHost");\r
//if (htmlHost != null) HtmlPage.Window.Alert("silverlightControlHost is null");\r
htmlHost.SetStyleAttribute("width", (wid).ToString()+"px");\r
- htmlHost.SetStyleAttribute("height", (20+hei).ToString() + "px");\r
+ htmlHost.SetStyleAttribute("height", (hei).ToString() + "px");\r
htmlHost.SetStyleAttribute("margin", "2em auto auto auto");\r
\r
pointPool = new System.Windows.Point[CONST.MOBJ_N];\r
Psychlops.Internal.Main.widgetStack.Orientation = Orientation.Vertical;\r
Psychlops.Internal.Main.widgetStack.Height = hei;\r
api_canvas.Children.Add(Psychlops.Internal.Main.widgetStack);\r
- \r
+ Internal.Main.statusBar.Visibility = Visibility.Collapsed;\r
\r
\r
UIElementPool = new System.Windows.Controls.Canvas[CONST.MAX_OBJ_N];\r
dummyRectPool[i].Visibility = Visibility.Collapsed;\r
}\r
\r
-\r
AsyncInitBool = true;\r
}\r
\r
#region version modifyNative2\r
public void executeFlip()\r
{\r
- Clock after = new Clock();\r
- after.update();\r
- AppState.statusBar = ((after - before).at_msec().ToString()) + " msec";\r
+// Clock after = new Clock();\r
+// after.update();\r
+// AppState.statusBar = ((after - before).at_msec().ToString()) + " msec";\r
\r
Line lineS;\r
Rectangle rectS;\r
}\r
#endregion\r
\r
+\r
+\r
#region version modifyNative\r
/*\r
public void executeFlip()\r
#endregion\r
\r
\r
+ #region compatibitily trick\r
+\r
+ public enum Mode { window, fullscreen }\r
+ public static readonly Mode window = Mode.window, fullscreen = Mode.fullscreen;\r
+\r
+ public Canvas(int wid, int hei, Mode mod)\r
+ {\r
+ panel = default_panel;\r
+ api_canvas = default_api_canvas;\r
+ initialize(500, 500);\r
+ }\r
+ public Canvas(Mode mod)\r
+ : base()\r
+ {\r
+ panel = default_panel;\r
+ api_canvas = default_api_canvas;\r
+ initialize(500, 500);\r
+ }\r
+\r
+ public Canvas(int wid, int hei, Mode mod, Display.DisplayName name)\r
+ {\r
+ panel = default_panel;\r
+ api_canvas = default_api_canvas;\r
+ initialize(500, 500);\r
+ }\r
+ public Canvas(Mode mod, Display.DisplayName name)\r
+ : base()\r
+ {\r
+ panel = default_panel;\r
+ api_canvas = default_api_canvas;\r
+ initialize(500, 500);\r
+ }\r
+\r
+\r
+ public void showFPS(bool sw = true) { }\r
+ public void watchFPS(bool sw = true) { }\r
+\r
+\r
+ public void clear(double lum)\r
+ {\r
+ clear(new Color(lum));\r
+ }\r
+\r
+ #endregion\r
+\r
+\r
}\r
\r
\r
var bitmap = new BitmapImage();\r
bitmap.CreateOptions = BitmapCreateOptions.None;\r
bitmap.UriSource = uri;\r
- try\r
- {\r
+ //try\r
+ //{\r
var wbm = new System.Windows.Media.Imaging.WriteableBitmap(bitmap);\r
buffer = wbm;\r
- }\r
- catch (Exception e)\r
- {\r
- buffer = new WriteableBitmap(64, 64);\r
- buffer.ForEach(bitmap_drawChecker);\r
- }\r
+ //}\r
+ //catch (Exception e)\r
+ //{\r
+ // buffer = new WriteableBitmap(64, 64);\r
+ // buffer.ForEach(bitmap_drawChecker);\r
+ //}\r
self_rect.set(buffer.PixelWidth, buffer.PixelHeight);\r
AsyncBool = true;\r
}\r