Permalink
Fetching contributors…
Cannot retrieve contributors at this time
575 lines (519 sloc) 24.6 KB
/*
Copyright © 2015-2016 Pebble Technology Corp.,
All Rights Reserved. http://pebble.github.io/rockyjs/LICENSE
This files contains various symbols that are automatically derived
(or will be, eventually) from the Pebble firmware code base.
It contains constants such as GOvalScaleModeFitCircle or GColorRed.
The second set of symbols are functions that overcome Emscripten's lack
of support for structs. During the transpilation process we generated
additional C code that takes multiple values instead of a single struct.
As an example:
original C:
void graphics_draw_pixel(GContext *ctx, GPoint pt);
generated C to be transpiled by Emscripten:
void emx_graphics_draw_pixel(GContext *ctx, int16_t pt_x, int16_t pt_y);
In order to expose the original signature to JS clients,
this file contains yet another wrapper that calls the emx_ variant
generated JS wrapper in this file:
var graphics_draw_pixel = function(ctx, point) {
var pt = obj.GPoint(point);
emx_graphics_draw_pixel(ctx, pt.x, pt.y);
};
*/
/*global Rocky:true*/
if (typeof (Rocky) === 'undefined') {
Rocky = {};
}
Rocky.addGeneratedSymbols = function(obj) {
// GOvalScaleMode
obj.GOvalScaleModeFitCircle = 0;
obj.GOvalScaleModeFillCircle = 1;
// void graphics_draw_pixel(GContext* ctx, GPoint point);
// void emx_graphics_draw_pixel(GContext *ctx, int16_t point_x, int16_t point_y);
var emx_graphics_draw_pixel = obj.module.cwrap('emx_graphics_draw_pixel', 'void',
['number', 'number', 'number']);
obj.graphics_draw_pixel = function(ctx, point) {
point = obj.GPoint(point);
return emx_graphics_draw_pixel(ctx, point.x, point.y);
};
// void graphics_draw_line(GContext* ctx, GPoint p0, GPoint p1);
// void emx_graphics_draw_line(GContext* ctx, int16_t p0_x, int16_t p0_y,
// int16_t p1_x, int16_t p1_y,);
var emx_graphics_draw_line = obj.module.cwrap('emx_graphics_draw_line', 'void',
['number', 'number', 'number',
'number', 'number']);
obj.graphics_draw_line = function(ctx, p0, p1) {
p0 = obj.GPoint(p0);
p1 = obj.GPoint(p1);
return emx_graphics_draw_line(ctx, p0.x, p0.y, p1.x, p1.y);
};
// void graphics_context_set_stroke_width(GContext* ctx, uint8_t stroke_width);
obj.graphics_context_set_stroke_width =
obj.module.cwrap('graphics_context_set_stroke_width', 'void',
['number', 'number']);
// void graphics_context_set_stroke_color(GContext* ctx, GColor color);
// void emx_graphics_context_set_stroke_color(GContext* ctx, uint8_t color);
obj.graphics_context_set_stroke_color =
obj.module.cwrap('emx_graphics_context_set_stroke_color', 'void',
['number', 'number']);
// void graphics_context_set_fill_color(GContext* ctx, GColor color);
// void emx_graphics_context_set_fill_color(GContext* ctx, uint8_t color);
obj.graphics_context_set_fill_color =
obj.module.cwrap('emx_graphics_context_set_fill_color', 'void',
['number', 'number']);
// void graphics_context_set_antialiased(GContext* ctx, bool enable);
obj.graphics_context_set_antialiased =
obj.module.cwrap('graphics_context_set_antialiased', 'void',
['number', 'number']);
// GColor definitions
obj.GColorBlack = 0xC0;
obj.GColorOxfordBlue = 0xC1;
obj.GColorDukeBlue = 0xC2;
obj.GColorBlue = 0xC3;
obj.GColorDarkGreen = 0xC4;
obj.GColorMidnightGreen = 0xC5;
obj.GColorCobaltBlue = 0xC6;
obj.GColorBlueMoon = 0xC7;
obj.GColorIslamicGreen = 0xC8;
obj.GColorJaegerGreen = 0xC9;
obj.GColorTiffanyBlue = 0xCA;
obj.GColorVividCerulean = 0xCB;
obj.GColorGreen = 0xCC;
obj.GColorMalachite = 0xCD;
obj.GColorMediumSpringGreen = 0xCE;
obj.GColorCyan = 0xCF;
obj.GColorBulgarianRose = 0xD0;
obj.GColorImperialPurple = 0xD1;
obj.GColorIndigo = 0xD2;
obj.GColorElectricUltramarine = 0xD3;
obj.GColorArmyGreen = 0xD4;
obj.GColorDarkGray = 0xD5;
obj.GColorLiberty = 0xD6;
obj.GColorVeryLightBlue = 0xD7;
obj.GColorKellyGreen = 0xD8;
obj.GColorMayGreen = 0xD9;
obj.GColorCadetBlue = 0xDA;
obj.GColorPictonBlue = 0xDB;
obj.GColorBrightGreen = 0xDC;
obj.GColorScreaminGreen = 0xDD;
obj.GColorMediumAquamarine = 0xDE;
obj.GColorElectricBlue = 0xDF;
obj.GColorDarkCandyAppleRed = 0xE0;
obj.GColorJazzberryJam = 0xE1;
obj.GColorPurple = 0xE2;
obj.GColorVividViolet = 0xE3;
obj.GColorWindsorTan = 0xE4;
obj.GColorRoseVale = 0xE5;
obj.GColorPurpureus = 0xE6;
obj.GColorLavenderIndigo = 0xE7;
obj.GColorLimerick = 0xE8;
obj.GColorBrass = 0xE9;
obj.GColorLightGray = 0xEA;
obj.GColorBabyBlueEyes = 0xEB;
obj.GColorSpringBud = 0xEC;
obj.GColorInchworm = 0xED;
obj.GColorMintGreen = 0xEE;
obj.GColorCeleste = 0xEF;
obj.GColorRed = 0xF0;
obj.GColorFolly = 0xF1;
obj.GColorFashionMagenta = 0xF2;
obj.GColorMagenta = 0xF3;
obj.GColorOrange = 0xF4;
obj.GColorSunsetOrange = 0xF5;
obj.GColorBrilliantRose = 0xF6;
obj.GColorShockingPink = 0xF7;
obj.GColorChromeYellow = 0xF8;
obj.GColorRajah = 0xF9;
obj.GColorMelon = 0xFA;
obj.GColorRichBrilliantLavender = 0xFB;
obj.GColorYellow = 0xFC;
obj.GColorIcterine = 0xFD;
obj.GColorPastelYellow = 0xFE;
obj.GColorWhite = 0xFF;
// void graphics_fill_radial(GContext *ctx, GRect rect,
// GOvalScaleMode scale_mode, uint16_t inset_thickness,
// int32_t angle_start, int32_t angle_end);
// void emx_graphics_fill_radial(GContext *ctx,
// int16_t rect_x, int16_t rect_y, int16_t rect_w, int16_t rect_h,
// GOvalScaleMode scale_mode, uint16_t inset_thickness,
// int32_t angle_start, int32_t angle_end);
var emx_graphics_fill_radial = obj.module.cwrap('emx_graphics_fill_radial', 'void',
['number', 'number', 'number', 'number', 'number',
'number', 'number', 'number', 'number']);
obj.graphics_fill_radial = function(ctx, rect, scale_mode,
inset_thickness, angle_start, angle_end) {
rect = obj.GRect(rect);
var TRIG_MAX_ANGLE = 0x10000;
angle_start = (angle_start * TRIG_MAX_ANGLE) / (Math.PI * 2);
angle_end = (angle_end * TRIG_MAX_ANGLE) / (Math.PI * 2);
return emx_graphics_fill_radial(ctx, rect.x, rect.y, rect.w, rect.h,
scale_mode, inset_thickness,
angle_start, angle_end);
};
// void graphics_draw_arc(GContext *ctx, GRect rect, GOvalScaleMode scale_mode,
// int32_t angle_start, int32_t angle_end);
// void emx_graphics_draw_arc(GContext *ctx,
// int16_t rect_x, int16_t rect_y, int16_t rect_w, int16_t rect_h,
// GOvalScaleMode scale_mode,int32_t angle_start, int32_t angle_end);
var emx_graphics_draw_arc = obj.module.cwrap('emx_graphics_draw_arc', 'void',
['number', 'number', 'number', 'number', 'number',
'number', 'number', 'number']);
obj.graphics_draw_arc = function(ctx, rect, scale_mode, angle_start, angle_end) {
rect = obj.GRect(rect);
var TRIG_MAX_ANGLE = 0x10000;
angle_start = (angle_start * TRIG_MAX_ANGLE) / (Math.PI * 2);
angle_end = (angle_end * TRIG_MAX_ANGLE) / (Math.PI * 2);
return emx_graphics_draw_arc(ctx, rect.x, rect.y, rect.w, rect.h,
scale_mode, angle_start, angle_end);
};
// GCornerMask
obj.GCornerNone = 0;
obj.GCornerTopLeft = 1 << 0;
obj.GCornerTopRight = 1 << 1;
obj.GCornerBottomLeft = 1 << 2;
obj.GCornerBottomRight = 1 << 3;
obj.GCornersAll = obj.GCornerTopLeft |
obj.GCornerTopRight |
obj.GCornerBottomLeft |
obj.GCornerBottomRight;
obj.GCornersTop = obj.GCornerTopLeft | obj.GCornerTopRight;
obj.GCornersBottom = obj.GCornerBottomLeft | obj.GCornerBottomRight;
obj.GCornersLeft = obj.GCornerTopLeft | obj.GCornerBottomLeft;
obj.GCornersRight = obj.GCornerTopRight | obj.GCornerBottomRight;
// void graphics_fill_rect(GContext *ctx, const GRect rect,
// uin16_t radius, GCornerMask corner_mask);
// void emx_fill_rect(GContext* ctx, int16_t rect_origin_x, int16_t rect_origin_y,
// int16_t rect_size_w, int16_t rect_size_h,
// uint16_t radius, GCornerMask corner_mask) {
var emx_graphics_fill_rect = obj.module.cwrap('emx_graphics_fill_rect', 'void',
['number', 'number', 'number', 'number', 'number',
'number', 'number']);
obj.graphics_fill_rect = function(ctx, rect, radius, corner_mask) {
rect = obj.GRect(rect);
return emx_graphics_fill_rect(ctx, rect.x, rect.y, rect.w, rect.h,
radius, corner_mask);
};
// void graphics_draw_rect(GContext *ctx, const GRect rect);
// void emx_graphics_draw_rect(GContext *ctx,
// int16_t rect_x, int16_t rect_y, int16_t rect_w, int16_t rect_h);
var emx_draw_rect = obj.module.cwrap('emx_graphics_draw_rect', 'void',
['number', 'number', 'number', 'number', 'number']);
obj.graphics_draw_rect = function(ctx, rect) {
rect = obj.GRect(rect);
return emx_draw_rect(ctx, rect.x, rect.y, rect.w, rect.h);
};
// bool gcolor_legible_over(GColor8 background_color);
var emx_gcolor_legible_over = obj.module.cwrap('emx_gcolor_legible_over', 'number',
['number']);
obj.gcolor_legible_over = function(color) {
return emx_gcolor_legible_over(color);
};
// bool gpoint_equal(GPoint *a, GPoint *b);
// bool emx_gpoint_equal(int16_t a_x, int16_t a_y, int16_t b_x, int16_t b_y);
var emx_gpoint_equal = obj.module.cwrap('emx_gpoint_equal', 'number',
['number', 'number', 'number', 'number']);
obj.gpoint_equal = function(a, b) {
a = obj.GPoint(a);
b = obj.GPoint(b);
return emx_gpoint_equal(a.x, a.y, b.x, b.y) !== 0;
};
// bool grect_equal(GRect *r0, GRect *r1);
// bool emx_grect_equal(int16_t r0_x, int16_t r0_y, int16_t r0_w, int16_t r0_h
// int16_t r1_x, int16_t r1_y, int16_t r1_w, int16_t r1_h);
var emx_grect_equal = obj.module.cwrap('emx_grect_equal', 'number',
['number', 'number', 'number', 'number',
'number', 'number', 'number', 'number']);
obj.grect_equal = function(r0, r1) {
r0 = obj.GRect(r0);
r1 = obj.GRect(r1);
return emx_grect_equal(r0.x, r0.y, r0.w, r0.h, r1.x, r1.y, r1.w, r1.h) !== 0;
};
// bool grect_is_empty(GRect *rect);
// bool emx_grect_is_empty(int16_t rect_origin_x, int16_t rect_origin_y,
// int16_t rect_size_w, int16_t rect_size_h);
var emx_grect_is_empty = obj.module.cwrap('emx_grect_is_empty', 'number',
['number', 'number', 'number', 'number']);
obj.grect_is_emtpy = function(rect) {
rect = obj.GRect(rect);
return emx_grect_is_empty(rect.x, rect.y, rect.w, rect.h) !== 0;
};
// void grect_standardize(GRect *rect);
// void emx_grect_standardize(int16_t rect_origin_x, int16_t rect_origin_y,
// int16_t rect_size_w, int16_t rect_size_h);
var emx_grect_standardize = obj.module.cwrap('emx_grect_standardize', 'number',
[]);
obj.grect_standardize = function(rect) {
rect = obj.GRect(rect);
var returnRectPTR = emx_grect_standardize(rect.x, rect.y, rect.w, rect.h);
rect.x = obj.module.getValue(returnRectPTR, 'i16');
rect.y = obj.module.getValue(returnRectPTR + 2, 'i16');
rect.w = obj.module.getValue(returnRectPTR + 4, 'i16');
rect.h = obj.module.getValue(returnRectPTR + 6, 'i16');
};
// void grect_clip(GRect *rect_to_clip, GRect *rect_clipper);
// void emx_grect_clip(int16_t to_clip_x, int16_t to_clip_y,
// int16_t to_clip_w, int16_t to_clip_h,
// int16_t clipper_x, int16_t clipper_y,
// int16_t clipper_w, int16_t clipper_h);
var emx_grect_clip = obj.module.cwrap('emx_grect_clip', 'number',
['number', 'number', 'number', 'number',
'number', 'number', 'number', 'number']);
obj.grect_clip = function(rect_to_clip, rect_clipper) {
rect_to_clip = obj.GRect(rect_to_clip);
rect_clipper = obj.GRect(rect_clipper);
var returnRectPTR = emx_grect_clip(rect_to_clip.x, rect_to_clip.y,
rect_to_clip.w, rect_to_clip.h,
rect_clipper.x, rect_clipper.y,
rect_clipper.w, rect_clipper.h);
rect_to_clip.x = obj.module.getValue(returnRectPTR, 'i16');
rect_to_clip.y = obj.module.getValue(returnRectPTR + 2, 'i16');
rect_to_clip.w = obj.module.getValue(returnRectPTR + 4, 'i16');
rect_to_clip.h = obj.module.getValue(returnRectPTR + 6, 'i16');
};
// bool grect_contains_point(GRect *rect, GPoint *point):
// bool emx_grect_contains_point(int16_t r_x, int16_t r_y,
// int16_t r_w, int16_t r_h,
// int16_t p_x, int16_t p_y);
var emx_grect_contains_point =
obj.module.cwrap('emx_grect_contains_point', 'number',
['number', 'number', 'number', 'number', 'number', 'number']);
obj.grect_contains_point = function(rect, point) {
rect = obj.GRect(rect);
point = obj.GPoint(point);
return emx_grect_contains_point(rect.x, rect.y, rect.w, rect.h,
point.x, point.y) !== 0;
};
// GPoint grect_center_point(GRect *rect);
// GPoint *emx_grect_center_point(int16_t r_x, int16_t r_y,
// int16_t r_w, int16_t r_h);
var emx_grect_center_point = obj.module.cwrap('emx_grect_center_point', 'number',
['number', 'number', 'number', 'number']);
obj.grect_center_point = function(rect) {
rect = obj.GRect(rect);
var returnPointPTR = emx_grect_center_point(rect.x, rect.y, rect.w, rect.h);
var returnPoint = obj.GPoint(obj.module.getValue(returnPointPTR, 'i16'),
obj.module.getValue(returnPointPTR + 2, 'i16'));
return returnPoint;
};
// GRect grect_crop(GRect rect, const int32_t crop_size_px)
// GRect *emx_grect_crop(int16_t r_x, int16_t r_y, int16_t r_w, int16_t r_h,
// int32_t crop_size_px) {
var emx_grect_crop = obj.module.cwrap('emx_grect_crop', 'number',
['number', 'number', 'number', 'number',
'number']);
obj.grect_crop = function(rect, crop_size_px) {
rect = obj.GRect(rect);
var returnRectPTR = emx_grect_crop(rect.x, rect.y, rect.w, rect.h, crop_size_px);
var returnRect = obj.GRect(obj.module.getValue(returnRectPTR, 'i16'),
obj.module.getValue(returnRectPTR + 2, 'i16'),
obj.module.getValue(returnRectPTR + 4, 'i16'),
obj.module.getValue(returnRectPTR + 6, 'i16'));
return returnRect;
};
// GAlign
obj.GAlignCenter = 0x0;
obj.GAlignTopLeft = 0x1;
obj.GAlignTopRight = 0x2;
obj.GAlignTop = 0x3;
obj.GAlignLeft = 0x4;
obj.GAlignBottom = 0x5;
obj.GAlignRight = 0x6;
obj.GAlignBottomRight = 0x7;
obj.GAlignBottomLeft = 0x8;
// void grect_align(GRect *rect, GRect *inside_rect, GAlign alignment, bool clip);)
// void emx_grect_align(int16_t rect_x, int16_t rect_y,
// int16_t rect_w, int16_t rect_h,
// int16_t inside_x, int16_t inside_y,
// int16_t inside_w, int16_t inside_h,
// const GAlign alignment, const bool clip);
var emx_grect_align = obj.module.cwrap('emx_grect_align', 'number',
['number', 'number', 'number', 'number',
'number', 'number', 'number', 'number',
'number', 'number']);
obj.grect_align = function(rect, inside_rect, alignment, clip) {
rect = obj.GRect(rect);
inside_rect = obj.GRect(inside_rect);
var returnRectPTR = emx_grect_align(rect.x, rect.y, rect.w, rect.h,
inside_rect.x, inside_rect.y, inside_rect.w, inside_rect.h,
alignment, clip);
rect.x = obj.module.getValue(returnRectPTR, 'i16');
rect.y = obj.module.getValue(returnRectPTR + 2, 'i16');
rect.w = obj.module.getValue(returnRectPTR + 4, 'i16');
rect.h = obj.module.getValue(returnRectPTR + 6, 'i16');
};
// void graphics_draw_circle(GContext *ctx, GPoint center, uin16_t radius);
// void emx_graphics_draw_circle(GContext *ctx,
// int16_t point_x, int16_t point_y,
// uint16_t radius) {
var emx_graphics_draw_circle = obj.module.cwrap('emx_graphics_draw_circle', 'void',
['number', 'number', 'number']);
obj.graphics_draw_circle = function(ctx, center, radius) {
center = obj.GPoint(center);
return emx_graphics_draw_circle(ctx, center.x, center.y, radius);
};
// void graphics_fill_circle(GCOntext *ctx, GPoint center, uin16_t radius);
// void emx_graphics_fill_circle(GContext *ctx,
// int16_t center_x, int16_t center_y,
// uint16_t radius);
var emx_graphics_fill_circle = obj.module.cwrap('emx_graphics_fill_circle', 'void',
['number', 'number', 'number']);
obj.graphics_fill_circle = function(ctx, center, radius) {
center = obj.GPoint(center);
return emx_graphics_fill_circle(ctx, center.x, center.y, radius);
};
// void graphics_draw_round_rect(GContext *ctx, GRect rect, uint16_t radius)
// void emx_graphics_draw_round_rect(GContext* ctx,
// int16_t rect_origin_x, int16_t rect_origin_y,
// int16_t rect_size_w, int16_t rect_size_h,
// uint16_t radius) {
var emx_graphics_draw_round_rect =
obj.module.cwrap('emx_graphics_draw_round_rect', 'void',
['number', 'number', 'number', 'number', 'number']);
obj.graphics_draw_round_rect = function(ctx, rect, radius) {
rect = obj.GRect(rect);
return emx_graphics_draw_round_rect(ctx, rect.x, rect.y, rect.w, rect.h, radius);
};
// GOvalScaleMode
obj.GOvalScaleModeFitCircle = 0;
obj.GOvalScaleModeFillCircle = 1;
// GPoint gpoint_from_polar(GRect rect, GOvalScaleMode scale_mode, int32_t angle);
// GPoint *emx_gpoint_from_polar(int16_t rect_x, int16_t rect_y,
// int16_t rect_w, int16_t rect_h,
// GOvalScaleMode scale_mode, int32_t angle);
var emx_gpoint_from_polar = obj.module.cwrap('emx_gpoint_from_polar', 'number',
['number', 'number', 'number', 'number',
'number', 'number']);
obj.gpoint_from_polar = function(rect, scale_mode, angle) {
rect = obj.GRect(rect);
var TRIG_MAX_ANGLE = 0x10000;
angle = (angle * TRIG_MAX_ANGLE) / (Math.PI * 2);
var returnPointPTR = emx_gpoint_from_polar(rect.x, rect.y, rect.w, rect.y,
scale_mode, angle);
var returnPoint = obj.GPoint(obj.module.getValue(returnPointPTR, 'i16'),
obj.module.getValue(returnPointPTR + 2, 'i16'));
return returnPoint;
};
// GRect grect_centered_from_polar(GRect rect, GOvalScaleMode scale_mode,
// int32_t angle, GSize size);
// GRect *emx_grect_centered_from_polar(int16_t rect_x, int16_t rect_y,
// int16_t rect_w, int16_t rect_h,
// GOvalScaleMode scale_mode, int32_t angle,
// int16_t size_w, int16_t size_h);
var emx_grect_centered_from_polar =
obj.module.cwrap('emx_grect_centered_from_polar', 'number',
['number', 'number', 'number', 'number', 'number', 'number',
'number', 'number']);
obj.grect_centered_from_polar = function(rect, scale_mode, angle, size) {
rect = obj.GRect(rect);
var TRIG_MAX_ANGLE = 0x10000;
angle = (angle * TRIG_MAX_ANGLE) / (Math.PI * 2);
size = obj.GSize(size);
var returnRectPTR = emx_grect_centered_from_polar(rect.x, rect.y, rect.w, rect.h,
scale_mode, angle, size.w, size.h);
var returnRect = obj.GRect(obj.module.getValue(returnRectPTR, 'i16'),
obj.module.getValue(returnRectPTR + 2, 'i16'),
obj.module.getValue(returnRectPTR + 4, 'i16'),
obj.module.getValue(returnRectPTR + 6, 'i16'));
return returnRect;
};
// GCompOp
obj.GCompOpAssign = 0;
obj.GCompOpAssignInverted = 1;
obj.GCompOpOr = 2;
obj.GCompOpAnd = 3;
obj.GCompOpClear = 4;
obj.GCompOpSet = 5;
// void graphics_context_set_compositing_mode(GContext* ctx, GCompOp mode);
obj.graphics_context_set_compositing_mode =
obj.module.cwrap('graphics_context_set_compositing_mode', 'void',
['number', 'number']);
// GBitmapFormat
obj.GBitmapFormat1Bit = 0;
obj.GBitmapFormat8Bit = 1;
obj.GBitmapFormat1BitPalette = 2;
obj.GBitmapFormat2BitPalette = 3;
obj.GBitmapFormat4BitPalette = 4;
obj.GBitmapFormat8BitCircular = 5;
// GBitmapFormat gbitmap_get_format(const GBitmap *bitmap);
var gbitmap_get_format = obj.module.cwrap('gbitmap_get_format', 'number',
['number']);
obj.gbitmap_get_format = function(bitmap) {
try {
var cPtr = bitmap.captureCPointer();
if (!cPtr) {
return 0xff;
}
return gbitmap_get_format(cPtr);
} finally {
bitmap.releaseCPointer(cPtr);
}
};
// GRect gbitmap_get_bounds(const GBitmap *bitmap);
// GRect *emx_gbitmap_get_bounds(GBitmap *bitmap);
var emx_gbitmap_get_bounds = obj.module.cwrap('emx_gbitmap_get_bounds', 'number',
['number']);
obj.gbitmap_get_bounds = function(bitmap) {
try {
var cPtr = bitmap.captureCPointer();
if (!cPtr) {
return obj.GRect([0, 0, 0, 0]);
}
var returnRectPTR = emx_gbitmap_get_bounds(cPtr);
return obj.GRect(obj.module.getValue(returnRectPTR, 'i16'),
obj.module.getValue(returnRectPTR + 2, 'i16'),
obj.module.getValue(returnRectPTR + 4, 'i16'),
obj.module.getValue(returnRectPTR + 6, 'i16'));
} finally {
bitmap.releaseCPointer(cPtr);
}
};
// void emx_graphics_draw_bitmap_in_rect(GContext *ctx, const GBitmap *bitmap,
// int16_t rect_x, int16_t rect_y,
// int16_t rect_w, int16_t rect_h);
var emx_graphics_draw_bitmap_in_rect =
obj.module.cwrap('emx_graphics_draw_bitmap_in_rect', 'void',
['number', 'number', 'number', 'number', 'number', 'number']);
obj.graphics_draw_bitmap_in_rect = function(ctx, bitmap, rect) {
rect = obj.GRect(rect);
try {
var cPtr = bitmap.captureCPointer();
if (!cPtr) {
return;
}
emx_graphics_draw_bitmap_in_rect(ctx, cPtr, rect.x, rect.y, rect.w, rect.h);
} finally {
bitmap.releaseCPointer(cPtr);
}
};
// void graphics_draw_rotated_bitmap(GContext* ctx, GBitmap *src,
// GPoint src_ic, int rotation, GPoint dest_ic);
// void emx_graphics_draw_rotated_bitmap(GContext *ctx, GBitmap *src,
// int16_t src_x, int16_t src_y,
// int rotation,
// int16_t dest_x, int16_t dest_y);
var emx_graphics_draw_rotated_bitmap =
obj.module.cwrap('emx_graphics_draw_rotated_bitmap', 'void',
['number', 'number', 'number', 'number',
'number', 'number', 'number']);
obj.graphics_draw_rotated_bitmap = function(ctx, bitmap, src, rotation, dest) {
src = obj.GPoint(src);
dest = obj.GPoint(dest);
try {
var cPtr = bitmap.captureCPointer();
if (!cPtr) {
return;
}
var TRIG_MAX_ANGLE = 0x10000;
rotation = (rotation * TRIG_MAX_ANGLE) / (Math.PI * 2);
emx_graphics_draw_rotated_bitmap(ctx, cPtr, src.x, src.y, rotation,
dest.x, dest.y);
} finally {
bitmap.releaseCPointer(cPtr);
}
};
return [];
};
// export to enable unit tests
if (typeof (module) !== 'undefined' && module.exports !== null) {
exports.addGeneratedSymbols = Rocky.addGeneratedSymbols;
}