Project

General

Profile

Feature #560

Updated by Hammel over 7 years ago

This is relatively easy although the rotation of the hands is a little confusing (to me, so far).    But the background face and overlay (like adding a glass highlight) are straightforward. 

 How this needs to be done: 
 * Add support for a theme directory 
 * Add support for a current theme configuration, defaulting to original drawn face and hands 
 * Design theme config file format, including validation of the content 
 ** Maximum face size: 512 
 ** Scale hands: face size * {.97 second, .85 minute, .65 hour} 
 ** Hands have rotation point: x/y offset for where rotation should occur 
 * Write functions for loading hands and rotating them 
 * If theme available, do drawing: 
 ** Draw background 
 ** Call hour hand, draw it 
 ** Call minute hand, draw it 
 ** Call second hand, draw it 
 ** Draw overlay 

 The hand functions have to 
 * Be loaded into their own cairo surface 
 * Scale the hand 
 * Rotate the hand 
 * position the hand after the call 
 * merged into the main cairo surface 

 See http://zetcode.com/gfx/cairo/compositing/ 

 Also see this for how to translate and rotate the hands: http://stackoverflow.com/a/35996791. Note that this also shows the use of a Cairo pattern that is generated from the source and is used for translating/rotating.

Back