mirror of
https://github.com/penpot/penpot.git
synced 2025-02-09 16:48:16 -05:00
WIP: exposing translate
This commit is contained in:
parent
0bf442e626
commit
579b157ab7
3 changed files with 30 additions and 5 deletions
|
@ -127,6 +127,16 @@ pub unsafe extern "C" fn draw_rect(state: *mut State, left: i32, right: i32, top
|
|||
.flush_and_submit_surface(&mut state.surface, None);
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn translate(state: *mut State, dx: f32, dy: f32) {
|
||||
(*state).surface.canvas().translate((dx, dy));
|
||||
}
|
||||
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn scale(state: *mut State, sx: f32, sy: f32) {
|
||||
(*state).surface.canvas().scale((sx, sy));
|
||||
}
|
||||
|
||||
fn main() {
|
||||
init_gl();
|
||||
}
|
||||
|
|
|
@ -29,17 +29,17 @@
|
|||
;; Initialize Skia
|
||||
state (._init ^js internal-module (.-width canvas) (.-height canvas))
|
||||
draw_rect (gobj/get ^js internal-module "_draw_rect")
|
||||
translate (gobj/get ^js internal-module "_translate")
|
||||
scale (gobj/get ^js internal-module "_scale")
|
||||
resize_surface (gobj/get ^js internal-module "_resize_surface")]
|
||||
|
||||
(set! (.-width canvas) (.-clientWidth canvas))
|
||||
(set! (.-height canvas) (.-clientHeight canvas))
|
||||
|
||||
;; (resize_surface state (.-clientWidth canvas) (.-clientHeight canvas))
|
||||
|
||||
|
||||
(translate state (- (:x vbox)) (- (:y vbox)))
|
||||
(doseq [shape (vals objects)]
|
||||
(let [sr (:selrect shape)]
|
||||
(println "-----" (:x1 sr) (:y1 sr) (:x2 sr) (:y2 sr))
|
||||
;; TODO: scale y translate con el vbox
|
||||
(draw_rect state (:x1 sr) (:y1 sr) (:x2 sr) (:y2 sr))))
|
||||
|
||||
#_(draw_rect state 100 100 500 500)
|
||||
|
|
|
@ -28,7 +28,7 @@ var readyPromise = new Promise((resolve, reject) => {
|
|||
readyPromiseResolve = resolve;
|
||||
readyPromiseReject = reject;
|
||||
});
|
||||
["_add","_draw_rect","_init","_main","_resize_surface","getExceptionMessage","incrementExceptionRefcount","decrementExceptionRefcount","_memory","___indirect_function_table","onRuntimeInitialized"].forEach((prop) => {
|
||||
["_add","_draw_rect","_init","_main","_resize_surface","_scale","_translate","getExceptionMessage","incrementExceptionRefcount","decrementExceptionRefcount","_memory","___indirect_function_table","onRuntimeInitialized"].forEach((prop) => {
|
||||
if (!Object.getOwnPropertyDescriptor(readyPromise, prop)) {
|
||||
Object.defineProperty(readyPromise, prop, {
|
||||
get: () => abort('You are getting ' + prop + ' on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js'),
|
||||
|
@ -8507,6 +8507,8 @@ var wasmImports = {
|
|||
/** @export */
|
||||
invoke_ii,
|
||||
/** @export */
|
||||
invoke_iiff,
|
||||
/** @export */
|
||||
invoke_iii,
|
||||
/** @export */
|
||||
invoke_iiii,
|
||||
|
@ -8563,6 +8565,8 @@ var _add = Module['_add'] = createExportWrapper('add', 2);
|
|||
var _init = Module['_init'] = createExportWrapper('init', 2);
|
||||
var _resize_surface = Module['_resize_surface'] = createExportWrapper('resize_surface', 3);
|
||||
var _draw_rect = Module['_draw_rect'] = createExportWrapper('draw_rect', 5);
|
||||
var _translate = Module['_translate'] = createExportWrapper('translate', 3);
|
||||
var _scale = Module['_scale'] = createExportWrapper('scale', 3);
|
||||
var _main = Module['_main'] = createExportWrapper('main', 2);
|
||||
var _fflush = createExportWrapper('fflush', 1);
|
||||
var _free = createExportWrapper('free', 1);
|
||||
|
@ -8718,6 +8722,17 @@ function invoke_iiiii(index,a1,a2,a3,a4) {
|
|||
}
|
||||
}
|
||||
|
||||
function invoke_iiff(index,a1,a2,a3) {
|
||||
var sp = stackSave();
|
||||
try {
|
||||
return getWasmTableEntry(index)(a1,a2,a3);
|
||||
} catch(e) {
|
||||
stackRestore(sp);
|
||||
if (!(e instanceof EmscriptenEH)) throw e;
|
||||
_setThrew(1, 0);
|
||||
}
|
||||
}
|
||||
|
||||
function invoke_viiii(index,a1,a2,a3,a4) {
|
||||
var sp = stackSave();
|
||||
try {
|
||||
|
|
Loading…
Add table
Reference in a new issue