Allow null Application config

This commit is contained in:
Joshua Granick
2015-01-29 12:42:13 -08:00
parent 41fcc1f4df
commit d1159824bd
6 changed files with 106 additions and 37 deletions

View File

@@ -153,6 +153,8 @@ class FlashApplication {
Window.onWindowMove.add (parent.onWindowMove);
Window.onWindowResize.add (parent.onWindowResize);
if (config != null) {
var window = new Window (config);
var renderer = new Renderer (window);
@@ -163,6 +165,8 @@ class FlashApplication {
}
}
public function exec ():Int {

View File

@@ -108,6 +108,8 @@ class HTML5Application {
Window.onWindowMove.add (parent.onWindowMove);
Window.onWindowResize.add (parent.onWindowResize);
if (config != null) {
var window = new Window (config);
var renderer = new Renderer (window);
@@ -119,6 +121,8 @@ class HTML5Application {
}
}
public function exec ():Int {

View File

@@ -80,6 +80,8 @@ class NativeApplication {
Window.onWindowMove.add (parent.onWindowMove);
Window.onWindowResize.add (parent.onWindowResize);
if (config != null) {
var window = new Window (config);
var renderer = new Renderer (window);
@@ -90,6 +92,8 @@ class NativeApplication {
}
}
public function exec ():Int {

View File

@@ -40,8 +40,11 @@ class NativeWindow {
public function create (application:Application):Void {
var title = "Lime Application";
var flags = 0;
if (parent.config != null) {
if (parent.config.antialiasing >= 4) {
flags |= cast WindowFlags.WINDOW_FLAG_HW_AA_HIRES;
@@ -59,7 +62,11 @@ class NativeWindow {
if (parent.config.stencilBuffer) flags |= cast WindowFlags.WINDOW_FLAG_STENCIL_BUFFER;
if (parent.config.vsync) flags |= cast WindowFlags.WINDOW_FLAG_VSYNC;
handle = lime_window_create (application.backend.handle, parent.width, parent.height, flags, parent.config.title);
title = parent.config.title;
}
handle = lime_window_create (application.backend.handle, parent.width, parent.height, flags, title);
}

View File

@@ -30,10 +30,25 @@ class Window {
@:noCompletion public var backend:WindowBackend;
public function new (config:Config) {
public function new (config:Config = null) {
this.config = config;
if (config == null) {
width = 0;
height = 0;
} else {
width = config.width;
height = config.height;
}
x = 0;
y = 0;
backend = new WindowBackend (this);
}

View File

@@ -1,12 +1,17 @@
package lime;
import lime.app.Application;
import lime.ui.Window;
import massive.munit.Assert;
class WindowTest {
private var app:Application;
public function new () {
@@ -14,9 +19,39 @@ class WindowTest {
}
@Test public function todo ():Void {
@BeforeClass public function beforeClass ():Void {
Assert.isTrue(true);
app = new Application ();
app.create (null);
}
@Test public function addWindow ():Void {
Assert.isNull (app.window);
Assert.areEqual (0, app.windows.length);
var window = new Window ();
app.addWindow (window);
Assert.isNotNull (app.window);
Assert.areEqual (1, app.windows.length);
Assert.areEqual (window, app.window);
Assert.areEqual (window, app.windows[0]);
//Assert.areEqual (0, window.width);
//Assert.areEqual (0, window.height);
}
@AfterClass public function afterClass ():Void {
// shutdown
//app = new Application ();
//app.create (null);
}