Skip to content
  • Benjamin Otte's avatar
    cairo: Add colorstate to GskRenderNode::draw and use it · 6287eaa7
    Benjamin Otte authored
    This adds the following:
    - ccs argument to GskRenderNode::draw
      This is the compositing color state to use when drawing.
    
    - make implementations use the CCS argument
      FIXME: Some implementations are missing
    
    - gsk_render_node_draw_with_color_state()
      Draws a node with any color state, by switching to its compositing
      color state, drawing in that color state and then converting to the
      desired color state.
      This does draw the result OVER the previous contents in the passed in
      color state, so this function should be called with the target being
      empty.
    
    - gsk_render_node_draw_ccs()
      This needs to be passed a css and then draws with that ccs.
      The main use for this is chaining up in rendernode draw()
      implementations.
    
    - split out shared Cairo functions into gdkcairoprivate.h
      gskrendernode.c and gskrendernodeimpl.c need the same functions.
      Plus, there's various code in GDK that wants to use it, so put it in
      gdk/ not in gsk/
    
    gsk_render_node_draw() now calls gsk_render_node_draw_with_color_state()
    with GDK_COLOR_STATE_SRGB.
    6287eaa7