diff --git a/actrwasm.h b/actrwasm.h index 6ac8a04..d0e94fe 100644 --- a/actrwasm.h +++ b/actrwasm.h @@ -14,7 +14,9 @@ void actr_canvas2d_ellipse(double x, double y, double radiusX, double radiusY, d void actr_canvas2d_fill(); void actr_canvas2d_fillRect(double x, double y, double w, double h); -void actr_canvas2d_fillTextLength(double x, double y, char *text, int length); +void actr_canvas2d_fillText(double x, double y, char *text, int length); + +void actr_canvas2d_measureText(char * text, int length); void actr_canvas2d_stroke(); void actr_canvas2d_strokeRect(double x, double y, double w, double h); @@ -22,13 +24,6 @@ void actr_canvas2d_strokeRect(double x, double y, double w, double h); void actr_sizeSanity(char *text, int length); // end externs -// helpers -void actr_canvas2d_fillText(double x, double y, char *text) -{ - actr_canvas2d_fillTextLength(x, y, text, strlen(text)); -} -// end helpers - struct ActrPoint { int x; @@ -38,6 +33,7 @@ struct ActrState { struct ActrPoint canvasSize; struct ActrPoint pointerPosition; + struct ActrPoint textSize; }; static struct ActrState actrState; diff --git a/script.c b/script.c index 4efc08f..488aa9e 100644 --- a/script.c +++ b/script.c @@ -36,17 +36,19 @@ void EMSCRIPTEN_KEEPALIVE step(double delta) snprintf(buffer, SIZE, "click count: %i x:%i y:%i w:%i h:%i", click, actrState.pointerPosition.x, actrState.pointerPosition.y, actrState.canvasSize.x, actrState.canvasSize.y); - actr_canvas2d_fillStyle(0, 0, 0, 10); + actr_canvas2d_fillStyle(0, 0, 0, 100); actr_canvas2d_fillRect(0, 0, 9999, 9999); actr_canvas2d_fillStyle(255, 0, 0, 50); actr_canvas2d_strokeStyle(255, 255, 255, 100); + int top = 10; // actr_canvas2d_fillRect(x, 10, 60, 15); - actr_canvas2d_strokeRect(x, 10, 60, 14); + actr_canvas2d_measureText(buffer, strlen(buffer)); + actr_canvas2d_strokeRect(x - 2, top -2, actrState.textSize.x + 4, actrState.textSize.y + 4); actr_canvas2d_fillStyle(0, 200, 200, 100); - actr_canvas2d_fillText(x + 5, 20, buffer); + actr_canvas2d_fillText(x, top + actrState.textSize.y, buffer, strlen(buffer)); actr_canvas2d_fillStyle(255, 0, 0, 50); actr_canvas2d_beginPath();