0

我正在努力解决 cloudpebble 上的编译错误。

我想获得指向 GBitmap 像素数据的指针。

static void canvas_update_proc(Layer *layer, GContext *ctx) {
    // Custom drawing happens here!
    GBitmap *fb = graphics_capture_frame_buffer(ctx);

    // Manipulate the image data...
    GRect bounds = layer_get_bounds(layer);

    uint8_t *byte_offset = (uint8_t *)fb->addr;   // <------- error

    int skip_bytes = fb->row_bytes_size - bounds.size.w; // <------- error

编译器返回此错误。

../src/c/hello_world.c: In function 'canvas_update_proc':
../src/c/hello_world.c:25:38: error: dereferencing pointer to incomplete type
../src/c/hello_world.c:27:24: error: dereferencing pointer to incomplete type

我正在检查这个 yt 视频。https://youtu.be/lYoHh19RNy4?t=2473

我应该如何解决这个问题?


当我在谷歌搜索时,我认为这可能与 GBitmap 不知道有关?(至少是会员?)

4

1 回答 1

2

GBitmap 的结构在该视频发布后发布的 SDK 更新中发生了变化。您不能再直接访问addr任何 GBitmap 的成员。

您现在应该使用gbitmap_get_data_row_info,并通过它提供给您的数据修改该行的信息。

我建议您也阅读有关Pebble Developer的文档。

于 2016-12-05T21:41:23.857 回答