Skip to content
  1. Sep 15, 2011
  2. Sep 14, 2011
    • Neil Roberts's avatar
      cogl-journal: Fix software clipping for non-intersecting rectangles · 52aa3866
      Neil Roberts authored
      When the clip contains two rectangles which do not intersect it was
      generating a clip bounds where the bottom-right corner was above or to
      the left of the top-left corner. This would end up allowing the pixels
      between the two rectangles instead of clipping everything like it
      should. To fix this there is now an extra check which detects this
      situation and just clears the clip bounds to all zeroes in a similar
      way to what cogl-clip-stack does.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=659029
      
      
      
      Reviewed-by: default avatarRobert Bragg <robert@linux.intel.com>
      
      Backported from e81c1f3e9 on the Cogl master branch
      52aa3866
    • Emmanuele Bassi's avatar
      Post-release version bump to 1.6.19 · b9141d9d
      Emmanuele Bassi authored
      b9141d9d
    • Emmanuele Bassi's avatar
      Release Clutter 1.6.18 (release) · df7ed38e
      Emmanuele Bassi authored
      1.6.18
      df7ed38e
    • Emmanuele Bassi's avatar
      build: Link Cogl directly against libdl · 41ec1c6d
      Emmanuele Bassi authored
      Cogl uses dlopen() directly but doesn't link against dl, thus linking
      against Clutter fails when using --as-needed.
      41ec1c6d
    • Emmanuele Bassi's avatar
      animation: Use ::destroy with animate() · 8ac7bcb2
      Emmanuele Bassi authored
      ClutterAnimation uses the weak ref machinery of GObject when associated
      to ClutterActor by clutter_actor_animate() and friends - all the while
      taking a reference on the actor itself. In order to trigger the weak ref
      callback, external code would need to unref the Actor at least twice,
      which has slim chance of happening. Plus, the way to destroy an Actor is
      to call destroy(), not call unref().
      
      The destruction sequence of ClutterActor emits the ::destroy signal, which
      should be used by classes to release external references the might be
      holding. My oh my, this sounds *exactly* the case!
      
      So, let's switch to using the ::destroy signal for clutter_actor_animate()
      and friends, since we know that the object bound to the Animation is
      an Actor, and has a ::destroy signal.
      
      This change has the added benefit of allowing destroying an actor as the
      result of the Animation::completed signal without getting a segfault or
      other bad things to happen.
      
      Obviously, the change does not affect other GObject classes, or Animation
      instances created using clutter_animation_new(); for those, the current
      "let's take a reference on the object to avoid it going away in-flight"
      mechanism should still suffice.
      
      Side note: it would be interesting if GObject had an interface for
      "destructible" objects, so that we could do a safe type check. I guess
      it's a Rainy Day Project(tm)...
      (cherry picked from commit 57ebce80
      
      )
      
      Signed-off-by: default avatarEmmanuele Bassi <ebassi@linux.intel.com>
      8ac7bcb2
  3. Sep 12, 2011
  4. Aug 22, 2011
  5. Aug 04, 2011
    • Neil Roberts's avatar
      cogl-blend-string: Fix TEXTURE_N sources · 76fc6d94
      Neil Roberts authored
      
      
      The parser couldn't cope with TEXTURE_N source arguments because the
      sources are checked in turn to find one that matches the beginning of
      the argument. The TEXTURE_N source was checked last so it would end up
      matching the regular 'TEXTURE' source and then the parser would choke
      when it tries to parse the trailing parts.
      
      This patch just moves the check for TEXTURE_ to the top. It also also
      changes it so that the argument only needs to be at least 8 characters
      long instead of 9. This is necessary because the parser doesn't
      consider the digits to be part of the name of the argument so while we
      are parsing 'TEXTURE_0' the length is only 8.
      
      Reviewed-by: default avatarRobert Bragg <robert@linux.intel.com>
      
      Backported from 92704124957 of Cogl master
      76fc6d94
  6. Jul 29, 2011
  7. Jul 18, 2011
  8. Jul 13, 2011
  9. Jul 12, 2011
    • Damien Lespiau's avatar
      pipeline: NULLify deprecated_get_layers_list on copy · ed300481
      Damien Lespiau authored
      That list is tracking the layers for get_layers_list() and needs to be
      freed later on. However _copy() did not initialize it and we ended up
      trying to free some garbage pointer.
      
      Cherry picked from Cogl master	221850ec
      ed300481
    • Damien Lespiau's avatar
      pipeline: Plug a leak of GLists · c72afc27
      Damien Lespiau authored
      _cogl_pipeline_get_layers() allocates a list on the pipeline to be able
      to get the pointer valid as long as possible and store that list in the
      pipeline object.
      
      You need to free that list when freeing the pipeline.
      
      Cherry picked from cogl master 711a817
      c72afc27
  10. Jul 07, 2011
    • Neil Roberts's avatar
      cogl-pipeline: Fix reference counting on promoting weak parents · 2cfe64db
      Neil Roberts authored
      When a copy is made of a weak pipeline it tries to promote the weak
      parent by taking a reference on that weak pipeline's parent. However
      promote_weak_ancestors was instead always taking a reference on the
      first parent, regardless of whether it was weak. The corresponding
      revert_weak_ancestors function which is supposed to undo the effect of
      promote_weak_ancestors only unref'd the parent if was weak. This meant
      that any non-weak pipeline copy would end up leaking a reference on
      its parent.
      
      This patch changes both functions to have a similar loop. It loops
      through all of the parents of the pipeline until it finds one that is
      not weak and refs or unrefs the *parent* of that pipeline instead of
      the pipeline itself.
      
      This is cherry-picked from 17a558a386 on Cogl git master.
      2cfe64db
  11. Jun 14, 2011
  12. Jun 10, 2011
    • Neil Roberts's avatar
      cogl-texture-pixmap-x11: Fix the can_hardware_repeat wrapper · de1114ff
      Neil Roberts authored
      The wrapper for the can_hardware_repeat had a cut and paste error so
      it would call the wrong function on the child texture.
      
      Many thanks to Owen Taylor for finding this bug.
      
      This is backported from 6d1371e0e9291a on the Cogl master branch.
      de1114ff
    • Neil Roberts's avatar
      cogl-pango-render: Use the glyph size for unknown glyphs · 2ec7f748
      Neil Roberts authored
      When rendering a box for an unknown glyph it would previously just use
      the average glyph size for the font. This causes problems because the
      size calculations for the layout assume a different size so it can end
      up rendering outside of the expected ink rectangle. This patch changes
      it to query the size of the glyph in the font. Pango should end up
      reporting the size of what would be the hex box which should be the
      same as the sized used for the extents calculation.
      
      http://bugzilla.clutter-project.org/show_bug.cgi?id=2599
      
      This is backported from commit db954565d4e9ffeb in Cogl master.
      2ec7f748
    • Neil Roberts's avatar
      clutter-text: Use the ink rect in the paint volume · 49448d09
      Neil Roberts authored
      Previously ClutterText was just reporting the allocation as the paint
      volume. The preferred size of a ClutterText is just the logical
      rectangle of the layout. A pango layout can sometimes draw outside of
      its logical rectangle for example with an italicised font with large
      serifs. Additionally, ClutterText doesn't make any attempt to clip the
      text if the actor gets allocated a size too small for the text so it
      would also end up drawing outside of the paint volume in that case. To
      fix this, the paint volume is now reported as the ink rect of the
      Pango layout. The rectangle for the cursor and selection is also
      unioned into that because it won't necessarily be within the ink
      rectangle.
      
      The function for drawing the selection rectangles has been split up
      into a generic function that calculates the rectangles that need to be
      drawn and a function that draws them. That way the get_paint_volume
      virtual can share the code to calculate the rectangles.
      
      http://bugzilla.clutter-project.org/show_bug.cgi?id=2599
      
      (cherry picked from commit fe83dee71246ef6fdad07c4cd59d59b433023ebd)
      49448d09
    • Neil Roberts's avatar
      clutter-text: Don't move the cursor to the left when at pos 0 · f2f68d50
      Neil Roberts authored
      When the cursor is at the leftmost position in the text the drawn
      pixel position is moved to the left by the size of the cursor. There's
      no explanation for why this happens and it doesn't seem to make any
      sense so this patch removes it. It makes multi-line texts looks odd
      because the cursor ends up at a different horizontal position when it
      is on the first line from any other line. It also makes using
      priv->cursor_pos difficult in any other part of the code because the
      paint function modifies it.
      
      The original patch that added this can be traced back to Tidy commit
      c356487c15. There's no explanation in the commit message either.
      
      http://bugzilla.clutter-project.org/show_bug.cgi?id=2599
      
      (cherry picked from commit 2505f5b0)
      f2f68d50
  13. Jun 08, 2011