Create a placeholder object to send Matrix3s to C++ code.
This commit is contained in:
@@ -3000,7 +3000,7 @@ class NativeCFFI
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@:hlNative("lime", "hl_cairo_get_matrix") private static function lime_cairo_get_matrix(handle:CFFIPointer, out:Matrix3):Matrix3
|
@:hlNative("lime", "hl_cairo_get_matrix") private static function lime_cairo_get_matrix(handle:CFFIPointer, out:CairoMatrix3):CairoMatrix3
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -3117,7 +3117,7 @@ class NativeCFFI
|
|||||||
|
|
||||||
@:hlNative("lime", "hl_cairo_set_line_width") private static function lime_cairo_set_line_width(handle:CFFIPointer, width:Float):Void {}
|
@:hlNative("lime", "hl_cairo_set_line_width") private static function lime_cairo_set_line_width(handle:CFFIPointer, width:Float):Void {}
|
||||||
|
|
||||||
@:hlNative("lime", "hl_cairo_set_matrix") private static function lime_cairo_set_matrix(handle:CFFIPointer, matrix:Matrix3):Void {}
|
@:hlNative("lime", "hl_cairo_set_matrix") private static function lime_cairo_set_matrix(handle:CFFIPointer, matrix:CairoMatrix3):Void {}
|
||||||
|
|
||||||
@:hlNative("lime", "hl_cairo_set_miter_limit") private static function lime_cairo_set_miter_limit(handle:CFFIPointer, miterLimit:Float):Void {}
|
@:hlNative("lime", "hl_cairo_set_miter_limit") private static function lime_cairo_set_miter_limit(handle:CFFIPointer, miterLimit:Float):Void {}
|
||||||
|
|
||||||
@@ -3155,7 +3155,7 @@ class NativeCFFI
|
|||||||
|
|
||||||
@:hlNative("lime", "hl_cairo_text_path") private static function lime_cairo_text_path(handle:CFFIPointer, text:String):Void {}
|
@:hlNative("lime", "hl_cairo_text_path") private static function lime_cairo_text_path(handle:CFFIPointer, text:String):Void {}
|
||||||
|
|
||||||
@:hlNative("lime", "hl_cairo_transform") private static function lime_cairo_transform(handle:CFFIPointer, matrix:Matrix3):Void {}
|
@:hlNative("lime", "hl_cairo_transform") private static function lime_cairo_transform(handle:CFFIPointer, matrix:CairoMatrix3):Void {}
|
||||||
|
|
||||||
@:hlNative("lime", "hl_cairo_translate") private static function lime_cairo_translate(handle:CFFIPointer, x:Float, y:Float):Void {}
|
@:hlNative("lime", "hl_cairo_translate") private static function lime_cairo_translate(handle:CFFIPointer, x:Float, y:Float):Void {}
|
||||||
|
|
||||||
@@ -3301,7 +3301,7 @@ class NativeCFFI
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@:hlNative("lime", "hl_cairo_pattern_get_matrix") private static function lime_cairo_pattern_get_matrix(handle:CFFIPointer, out:Matrix3):Matrix3
|
@:hlNative("lime", "hl_cairo_pattern_get_matrix") private static function lime_cairo_pattern_get_matrix(handle:CFFIPointer, out:CairoMatrix3):CairoMatrix3
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -3310,7 +3310,7 @@ class NativeCFFI
|
|||||||
|
|
||||||
@:hlNative("lime", "hl_cairo_pattern_set_filter") private static function lime_cairo_pattern_set_filter(handle:CFFIPointer, filter:Int):Void {}
|
@:hlNative("lime", "hl_cairo_pattern_set_filter") private static function lime_cairo_pattern_set_filter(handle:CFFIPointer, filter:Int):Void {}
|
||||||
|
|
||||||
@:hlNative("lime", "hl_cairo_pattern_set_matrix") private static function lime_cairo_pattern_set_matrix(handle:CFFIPointer, matrix:Matrix3):Void {}
|
@:hlNative("lime", "hl_cairo_pattern_set_matrix") private static function lime_cairo_pattern_set_matrix(handle:CFFIPointer, matrix:CairoMatrix3):Void {}
|
||||||
|
|
||||||
@:hlNative("lime", "hl_cairo_surface_flush") private static function lime_cairo_surface_flush(surface:CFFIPointer):Void {}
|
@:hlNative("lime", "hl_cairo_surface_flush") private static function lime_cairo_surface_flush(surface:CFFIPointer):Void {}
|
||||||
#end
|
#end
|
||||||
|
|||||||
@@ -425,7 +425,7 @@ class Cairo
|
|||||||
public function transform(matrix:Matrix3):Void
|
public function transform(matrix:Matrix3):Void
|
||||||
{
|
{
|
||||||
#if (lime_cffi && lime_cairo && !macro)
|
#if (lime_cffi && lime_cairo && !macro)
|
||||||
NativeCFFI.lime_cairo_transform(handle, matrix);
|
NativeCFFI.lime_cairo_transform(handle, matrix.toCairoMatrix3());
|
||||||
#end
|
#end
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -643,7 +643,7 @@ class Cairo
|
|||||||
{
|
{
|
||||||
#if (lime_cffi && lime_cairo && !macro)
|
#if (lime_cffi && lime_cairo && !macro)
|
||||||
#if hl
|
#if hl
|
||||||
return NativeCFFI.lime_cairo_get_matrix(handle, new Matrix3());
|
return NativeCFFI.lime_cairo_get_matrix(handle, new CairoMatrix3());
|
||||||
#else
|
#else
|
||||||
var m:Dynamic = NativeCFFI.lime_cairo_get_matrix(handle);
|
var m:Dynamic = NativeCFFI.lime_cairo_get_matrix(handle);
|
||||||
return new Matrix3(m.a, m.b, m.c, m.d, m.tx, m.ty);
|
return new Matrix3(m.a, m.b, m.c, m.d, m.tx, m.ty);
|
||||||
@@ -657,7 +657,7 @@ class Cairo
|
|||||||
{
|
{
|
||||||
#if (lime_cffi && lime_cairo && !macro)
|
#if (lime_cffi && lime_cairo && !macro)
|
||||||
#if hl
|
#if hl
|
||||||
NativeCFFI.lime_cairo_set_matrix(handle, value);
|
NativeCFFI.lime_cairo_set_matrix(handle, value.toCairoMatrix3());
|
||||||
#else
|
#else
|
||||||
NativeCFFI.lime_cairo_set_matrix(handle, value.a, value.b, value.c, value.d, value.tx, value.ty);
|
NativeCFFI.lime_cairo_set_matrix(handle, value.a, value.b, value.c, value.d, value.tx, value.ty);
|
||||||
// NativeCFFI.lime_cairo_set_matrix (handle, value);
|
// NativeCFFI.lime_cairo_set_matrix (handle, value);
|
||||||
|
|||||||
@@ -330,6 +330,11 @@ abstract Matrix3(Float32Array) from Float32Array to Float32Array
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@:from private static inline function fromCairoMatrix3(matrix:CairoMatrix3):Matrix3
|
||||||
|
{
|
||||||
|
return new Matrix3(matrix.a, matrix.b, matrix.c, matrix.d, matrix.tx, matrix.ty);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Resets the matrix to default identity values
|
Resets the matrix to default identity values
|
||||||
**/
|
**/
|
||||||
@@ -501,6 +506,11 @@ abstract Matrix3(Float32Array) from Float32Array to Float32Array
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@:dox(hide) @:noCompletion @:to public inline function toCairoMatrix3():CairoMatrix3
|
||||||
|
{
|
||||||
|
return new CairoMatrix3(a, b, c, d, tx, ty);
|
||||||
|
}
|
||||||
|
|
||||||
@:dox(hide) public inline function toString():String
|
@:dox(hide) public inline function toString():String
|
||||||
{
|
{
|
||||||
return "matrix(" + a + ", " + b + ", " + c + ", " + d + ", " + tx + ", " + ty + ")";
|
return "matrix(" + a + ", " + b + ", " + c + ", " + d + ", " + tx + ", " + ty + ")";
|
||||||
@@ -640,3 +650,26 @@ abstract Matrix3(Float32Array) from Float32Array to Float32Array
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
An object with the same data as a `Matrix3`, in Cairo's expected format.
|
||||||
|
**/
|
||||||
|
class CairoMatrix3
|
||||||
|
{
|
||||||
|
public var a:Float;
|
||||||
|
public var b:Float;
|
||||||
|
public var c:Float;
|
||||||
|
public var d:Float;
|
||||||
|
public var tx:Float;
|
||||||
|
public var ty:Float;
|
||||||
|
|
||||||
|
public function new(a:Float = 1, b:Float = 0, c:Float = 0, d:Float = 1, tx:Float = 0, ty:Float = 0)
|
||||||
|
{
|
||||||
|
this.a = a;
|
||||||
|
this.b = b;
|
||||||
|
this.c = c;
|
||||||
|
this.d = d;
|
||||||
|
this.tx = tx;
|
||||||
|
this.ty = ty;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user