pebble
  • Tutorials
  • Get the SDK
  • Guides
  • Documentation
  • Examples
  • Community
  • Blog
  • More
Privacy
Cookies
Publish

Pebble C API

  • Pebble C API
  • Pebble JavaScript API
  • PebbleKit JS
  • PebbleKit iOS
  • PebbleKit Android
  • Foundation
    • App
    • App Communication
    • App Glance
    • AppMessage
    • AppSync
    • AppWorker
    • DataLogging
    • DataStructures
      • UUID
    • Dictation
    • Dictionary
    • Event Service
      • AccelerometerService
      • AppFocusService
      • BatteryStateService
      • CompassService
      • ConnectionService
      • HealthService
      • TickTimerService
    • Exit Reason
    • Internationalization
    • Launch Reason
    • Logging
    • Math
    • Memory Management
    • Platform
    • Resources
      • File Formats
    • Storage
    • Timer
    • Wakeup
    • Wall Time
    • WatchInfo
    • Rocky
  • Graphics
    • Draw Commands
    • Drawing Paths
    • Drawing Primitives
    • Drawing Text
    • Fonts
    • Graphics Context
    • Graphics Types
      • Color Definitions
  • User Interface
    • Animation
      • PropertyAnimation
    • Clicks
    • Layers
      • ActionBarLayer
      • BitmapLayer
      • MenuLayer
      • RotBitmapLayer
      • ScrollLayer
      • SimpleMenuLayer
      • StatusBarLayer
      • TextLayer
    • Light
    • Preferences
    • UnobstructedArea
    • Vibes
    • Window
      • ActionMenu
      • NumberWindow
    • Window Stack
  • Standard C
    • Format
    • Locale
    • Math
    • Memory
    • String
    • Time

RotBitmapLayer

Layer that displays a rotated bitmap image.

A RotBitmapLayer is like a BitmapLayer but has the ability to be rotated (by default, around its center). The amount of rotation is specified using rot_bitmap_layer_set_angle() or rot_bitmap_layer_increment_angle(). The rotation argument to those functions is specified as an amount of clockwise rotation, where the value 0x10000 represents a full 360 degree rotation and 0 represent no rotation, and it scales linearly between those values, just like sin_lookup.

The center of rotation in the source bitmap is always placed at the center of the RotBitmapLayer and the size of the RotBitmapLayer is automatically calculated so that the entire Bitmap can fit in at all rotation angles.

For example, if the image is 10px wide and high, the RotBitmapLayer will be 14px wide ( sqrt(10^2+10^2) ).

By default, the center of rotation in the source bitmap is the center of the bitmap but you can call rot_bitmap_set_src_ic() to change the center of rotation.

Function Documentation

RotBitmapLayer * rot_bitmap_layer_create(GBitmap * bitmap)

Creates a new RotBitmapLayer on the heap and initializes it with the default values:

  • Angle: 0

  • Compositing mode: GCompOpAssign

  • Corner clip color: GColorClear

Parameters

bitmap

The bitmap to display in this RotBitmapLayer

Returns

A pointer to the RotBitmapLayer. NULL if the RotBitmapLayer could not be created

void rot_bitmap_layer_destroy(RotBitmapLayer * bitmap)

Destroys a RotBitmapLayer and frees all associated memory.

Note

It is the developer responsibility to free the GBitmap.

Parameters

bitmap

The RotBitmapLayer to destroy.

void rot_bitmap_layer_set_corner_clip_color(RotBitmapLayer * bitmap, GColor color)

Defines what color to use in areas that are not covered by the source bitmap. By default this is GColorClear.

Parameters

bitmap

The RotBitmapLayer on which to change the corner clip color

color

The corner clip color

void rot_bitmap_layer_set_angle(RotBitmapLayer * bitmap, int32_t angle)

Sets the rotation angle of this RotBitmapLayer.

Parameters

bitmap

The RotBitmapLayer on which to change the rotation

angle

Rotation is an integer between 0 (no rotation) and 0x10000 (360 degree rotation).

See Also

sin_lookup()
void rot_bitmap_layer_increment_angle(RotBitmapLayer * bitmap, int32_t angle_change)

Change the rotation angle of this RotBitmapLayer.

Parameters

bitmap

The RotBitmapLayer on which to change the rotation

angle_change

The rotation angle change

void rot_bitmap_set_src_ic(RotBitmapLayer * bitmap, GPoint ic)

Defines the only point that will not be affected by the rotation in the source bitmap.

For example, if you pass GPoint(0, 0), the image will rotate around the top-left corner.

This point is always projected at the center of the RotBitmapLayer. Calling this function automatically adjusts the width and height of the RotBitmapLayer so that the entire bitmap can fit inside the layer at all rotation angles.

Parameters

bitmap

The RotBitmapLayer on which to change the rotation

ic

The only point in the original image that will not be affected by the rotation.

void rot_bitmap_set_compositing_mode(RotBitmapLayer * bitmap, GCompOp mode)

Sets the compositing mode of how the bitmap image is composited onto what has been drawn beneath the RotBitmapLayer. By default this is GCompOpAssign. The RotBitmapLayer is automatically marked dirty after this operation.

Parameters

bitmap

The RotBitmapLayer on which to change the rotation

mode

The compositing mode to set

See Also

GCompOp

Typedef Documentation

typedef struct RotBitmapLayer RotBitmapLayer

Need some help?

Functions

  • rot_bitmap_layer_create
  • rot_bitmap_layer_destroy
  • rot_bitmap_layer_set_corner_clip_color
  • rot_bitmap_layer_set_angle
  • rot_bitmap_layer_increment_angle
  • rot_bitmap_set_src_ic
  • rot_bitmap_set_compositing_mode

Typedefs

  • RotBitmapLayer

Getting Help

Do you have questions about the Pebble SDK?

Do you need some help understanding something on this page?

You can either take advantage of our awesome developer community and check out the SDK Help forums, or you can send us a message through the website!