GTK+中文社区(gtk.awaysoft.com)

 找回密码
 马上加入

QQ登录

只需一步,快速开始

查看: 3459|回复: 8

用cairo绘图 类似内存泄漏的问题

[复制链接]
  • TA的每日心情
    奋斗
    2016-7-24 12:40
  • 签到天数: 125 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2012-4-13 10:21:34 | 显示全部楼层 |阅读模式
    我用cairo在窗口或子组件上绘图 其中有动画
    在鼠标移动事件或时钟事件中更新数据 , 用gtk_widget_draw()或gtk_widget_queue_draw()引发窗口重绘事件。
    现在是问题是:发现每一次更新窗口时,内存就增加几百K. 起初以为是GLIB在缓冲,但这是一只不断的累加上去。
    那么怎么解决这个问题。
  • TA的每日心情
    奋斗
    2016-10-11 09:20
  • 签到天数: 271 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2012-4-13 15:17:33 | 显示全部楼层
    你代码呢?
  • TA的每日心情
    奋斗
    2016-7-24 12:40
  • 签到天数: 125 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2012-4-14 11:32:05 | 显示全部楼层
    代码没带 我没网 我写个精简版的。

    画板暴露事件()
    {
          /*Cairo的绘制代码和论坛里的教程的代码一个路数*/
         /*每当执行cairo绘制后 内存就向上累加*/
          /*cairo 绘图代码;*/
          cairo_t cr = gdk_cairo_create();
           //绘制矩形
          释放对象(cr);

    }

    /*作用 让窗口重绘*/
    鼠标移动事件(GtkWidget widget)
    {
       
          /*不是这里的问题 是我粗心*/
          变量 re;
          //re 设置代码
          gtk_widget_draw(widget, &re);
         
          
          /*后改成如下函数问题依旧存在*/
          gtk_widget_queue_draw(widget);

    }

    /*主函数*/

    int main()
    {
          //创建窗口函数
          //创建画板函数

          /*真正的问题在暴露事件里*/
           连接 画板暴露事件;

           连接 鼠标移动事件;
    }
  • TA的每日心情
    奋斗
    2016-10-11 09:20
  • 签到天数: 271 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2012-4-14 13:23:04 | 显示全部楼层
    你试试gtk_widget_queue_draw_area()
  • TA的每日心情
    奋斗
    2016-7-24 12:40
  • 签到天数: 125 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2012-4-14 13:42:50 | 显示全部楼层
    这个好像也试过 跟gtk_widget_draw()类似;
    还有一个 gtk_widget_queue_clear() 也试过 遭遇相同

    不知还有无其他方法引发窗口重绘事件,主要是cairo绘制的图像能实时更新。
  • TA的每日心情
    奋斗
    2016-7-24 12:40
  • 签到天数: 125 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2012-4-18 10:59:41 | 显示全部楼层
    求救
  • TA的每日心情
    奋斗
    2016-7-24 12:40
  • 签到天数: 125 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2012-4-20 12:30:25 | 显示全部楼层
    再次求救
  • TA的每日心情
    奋斗
    2016-7-24 12:40
  • 签到天数: 125 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2012-4-22 09:48:21 | 显示全部楼层
  • TA的每日心情
    奋斗
    2016-7-24 12:40
  • 签到天数: 125 天

    连续签到: 1 天

    [LV.7]常住居民III

     楼主| 发表于 2012-4-26 11:11:11 | 显示全部楼层
    解决了 谢天谢地
    *滑块验证:
    您需要登录后才可以回帖 登录 | 马上加入

    本版积分规则

    申请友链|Archiver|小黑屋|手机版|GTK+中文社区 ( 粤ICP备13080851号 )

    我要啦免费统计

    GMT+8, 2024-12-22 02:05 , Processed in 0.044634 second(s), 7 queries , Redis On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表