forked from LeenkxTeam/LNXSDK
Update Files
This commit is contained in:
76
Kha/Backends/HTML5/kha/input/MouseImpl.hx
Normal file
76
Kha/Backends/HTML5/kha/input/MouseImpl.hx
Normal file
@ -0,0 +1,76 @@
|
||||
package kha.input;
|
||||
|
||||
import kha.SystemImpl;
|
||||
import kha.input.Mouse;
|
||||
|
||||
class MouseImpl extends kha.input.Mouse {
|
||||
public function new() {
|
||||
super();
|
||||
}
|
||||
|
||||
override public function lock(): Void {
|
||||
SystemImpl.lockMouse();
|
||||
}
|
||||
|
||||
override public function unlock(): Void {
|
||||
SystemImpl.unlockMouse();
|
||||
}
|
||||
|
||||
override public function canLock(): Bool {
|
||||
return SystemImpl.canLockMouse();
|
||||
}
|
||||
|
||||
override public function isLocked(): Bool {
|
||||
return SystemImpl.isMouseLocked();
|
||||
}
|
||||
|
||||
override public function notifyOnLockChange(func: Void->Void, error: Void->Void): Void {
|
||||
SystemImpl.notifyOfMouseLockChange(func, error);
|
||||
}
|
||||
|
||||
override public function removeFromLockChange(func: Void->Void, error: Void->Void): Void {
|
||||
SystemImpl.removeFromMouseLockChange(func, error);
|
||||
}
|
||||
|
||||
override public function hideSystemCursor(): Void {
|
||||
SystemImpl.khanvas.style.cursor = "none";
|
||||
}
|
||||
|
||||
override public function showSystemCursor(): Void {
|
||||
SystemImpl.khanvas.style.cursor = "default";
|
||||
}
|
||||
|
||||
override public function setSystemCursor(cursor: MouseCursor): Void {
|
||||
SystemImpl.khanvas.style.cursor = switch (cursor) {
|
||||
case Default: "default";
|
||||
case Pointer: "pointer";
|
||||
case Text: "text";
|
||||
case EastWestResize: "ew-resize";
|
||||
case NorthSouthResize: "ns-resize";
|
||||
case NorthEastResize: "ne-resize";
|
||||
case SouthEastResize: "se-resize";
|
||||
case NorthWestResize: "nw-resize";
|
||||
case SouthWestResize: "sw-resize";
|
||||
case Grab: "grab";
|
||||
case Grabbing: "grabbing";
|
||||
case NotAllowed: "not-allowed";
|
||||
case Wait: "wait";
|
||||
case Crosshair: "crosshair";
|
||||
case Custom(image):
|
||||
var canvas = js.Browser.document.createCanvasElement();
|
||||
canvas.width = image.width;
|
||||
canvas.height = image.height;
|
||||
if (Std.isOfType(image, WebGLImage)) {
|
||||
canvas.getContext2d().drawImage(cast(image, WebGLImage).image, 0, 0);
|
||||
}
|
||||
else {
|
||||
canvas.getContext2d().drawImage(cast(image, CanvasImage).image, 0, 0);
|
||||
}
|
||||
var dataURL = canvas.toDataURL("image/png");
|
||||
dataURL = StringTools.replace(dataURL, "/^data:image\\/(png|jpg);base64,/", "");
|
||||
|
||||
'url(\'$dataURL\'),auto';
|
||||
default: "default";
|
||||
}
|
||||
}
|
||||
}
|
37
Kha/Backends/HTML5/kha/input/Sensor.hx
Normal file
37
Kha/Backends/HTML5/kha/input/Sensor.hx
Normal file
@ -0,0 +1,37 @@
|
||||
package kha.input;
|
||||
|
||||
import kha.SystemImpl;
|
||||
|
||||
class Sensor {
|
||||
static var isInited: Bool = false;
|
||||
static var accelerometer: Sensor = new Sensor();
|
||||
static var gyroscope: Sensor = new Sensor();
|
||||
|
||||
var listeners: Array<Float->Float->Float->Void> = new Array();
|
||||
|
||||
public static function get(type: SensorType): Sensor {
|
||||
switch (type) {
|
||||
case Accelerometer:
|
||||
return accelerometer;
|
||||
case Gyroscope:
|
||||
return gyroscope;
|
||||
}
|
||||
}
|
||||
|
||||
public function notify(listener: Float->Float->Float->Void): Void {
|
||||
if (!isInited) {
|
||||
SystemImpl.initSensor();
|
||||
isInited = true;
|
||||
}
|
||||
listeners.push(listener);
|
||||
}
|
||||
|
||||
function new() {}
|
||||
|
||||
public static function _changed(type: Int, x: Float, y: Float, z: Float): Void {
|
||||
var sensor = get(type == 0 ? SensorType.Accelerometer : SensorType.Gyroscope);
|
||||
for (listener in sensor.listeners) {
|
||||
listener(x, y, z);
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user