Browse Source

added js events, minor fixes

Nicolas Cannasse 12 years ago
parent
commit
b0dbd9b8e8
4 changed files with 43 additions and 14 deletions
  1. 2 1
      h2d/Drawable.hx
  2. 2 1
      h2d/Font.hx
  3. 1 1
      h3d/impl/WebglDriver.hx
  4. 38 11
      hxd/Stage.hx

+ 2 - 1
h2d/Drawable.hx

@@ -192,7 +192,8 @@ private class DrawableShader extends h3d.impl.Shader {
 				if( c.a - 0.001 ) discard;
 			#end
 			#if hasColorKey
-				if( col.rgb == colorKey ) discard;
+				lowp vec3 dc = col.rgb - colorKey;
+				if( dot(dc,dc) < 0.001 ) discard;
 			#end
 			#if hasAlpha
 				col.w *= alpha;

+ 2 - 1
h2d/Font.hx

@@ -174,7 +174,8 @@ class Font #if !macro extends Tile #end {
 		bmp.dispose();
 		#else
 		
-		throw "TODO";
+		glyphs = [];
+		trace("TODO");
 		
 		#end
 		

+ 1 - 1
h3d/impl/WebglDriver.hx

@@ -477,8 +477,8 @@ class WebglDriver extends Driver {
 	];
 	
 	static var BLEND = [
-		GL.ZERO,
 		GL.ONE,
+		GL.ZERO,
 		GL.SRC_ALPHA,
 		GL.SRC_COLOR,
 		GL.DST_ALPHA,

+ 38 - 11
hxd/Stage.hx

@@ -36,7 +36,9 @@ class Stage {
 		}
 		#elseif js
 		js.Browser.window.addEventListener("mousedown", onMouseDown);
+		js.Browser.window.addEventListener("mousemove", onMouseMove);
 		js.Browser.window.addEventListener("mouseup", onMouseUp);
+		js.Browser.window.addEventListener("mousewheel", onMouseWheel);
 		js.Browser.window.addEventListener("keydown", onKeyDown);
 		js.Browser.window.addEventListener("keyup", onKeyUp);
 		js.Browser.window.addEventListener("resize", onResize);
@@ -171,6 +173,9 @@ class Stage {
 	
 #elseif js
 
+	var curMouseX : Float;
+	var curMouseY : Float;
+
 	function get_width() {
 		return js.Browser.document.width;
 	}
@@ -180,28 +185,50 @@ class Stage {
 	}
 
 	function get_mouseX() {
-		throw "TODO";
-		return 0.;
+		return curMouseX;
 	}
 
 	function get_mouseY() {
-		throw "TODO";
-		return 0.;
-	}
-	
-	function onMouseDown(e) {
+		return curMouseY;
 	}
 
-	function onMouseUp(e) {
+	function onMouseDown(e:js.html.MouseEvent) {
+		event(new Event(EPush, mouseX, mouseY));
 	}
 
-	function onKeyDown(e) {
+	function onMouseUp(e:js.html.MouseEvent) {
+		event(new Event(ERelease, mouseX, mouseY));
 	}
-
-	function onKeyUp(e) {
+	
+	function onMouseMove(e:js.html.MouseEvent) {
+		curMouseX = e.clientX;
+		curMouseY = e.clientY;
+		event(new Event(EMove, mouseX, mouseY));
+	}
+	
+	function onMouseWheel(e:js.html.MouseEvent) {
+		var ev = new Event(EWheel, mouseX, mouseY);
+		ev.wheelDelta = untyped -e.wheelDelta / 30.0;
+		event(ev);
+	}
+	
+	function onKeyUp(e:js.html.KeyboardEvent) {
+		var ev = new Event(EKeyUp);
+		ev.keyCode = e.keyCode;
+		ev.charCode = e.charCode;
+		event(ev);
 	}
 
+	function onKeyDown(e:js.html.KeyboardEvent) {
+		var ev = new Event(EKeyDown);
+		ev.keyCode = e.keyCode;
+		ev.charCode = e.charCode;
+		event(ev);
+	}
+	
 	function onResize(e) {
+		for( r in resizeEvents )
+			r();
 	}
 
 #end