zoukankan      html  css  js  c++  java
  • KJAVA虚拟机Hack笔记实现mutable image

    转载时请注明出处和作者联系方式
    文章出处:http://www.limodev.cn/blog
    作者联系方式:李先静 <xianjimli at hotmail dot com>

    mutable image在这里的意思是说可以在上面进行绘制操作的图片,它有点像VC中的DC,可以在上面贴图或者画直线填充矩形等等。在GTK+中实现的话,自然就 用GdkPixmap了,GdkPixmap从GdkDrawable继承过来的,提供了各种常用的绘图操作。

    gxpport_create_mutable 调用gdk_pixmap_new创建一个pixmap就好了,当然要记得检查资源限制,这个检查都是一样的,后面不再重复了。

    gxpport_render_mutableregion 把一个pixmap绘制到另外一个pixmap上,调用gdk_draw_drawable就行了。transform的实现也不难,不过我还没有做,想到时候用cairo的变换来实现。

    gxpport_render_mutableimage 先取出source的宽高,再调用gxpport_render_mutableregion。

    gxpport_get_mutable_argb 先调用gdk_drawable_get_image,再调用gdk_image_get_pixel取出pixel数据。

    gxpport_destroy_mutable 调用g_object_unref就行了。

    gxpport_render_immutableimage和gxpport_render_immutableregion 调用gdk_draw_pixbuf就行了。在基于DirectFB的GTK+中,我遇到一点小问题,基本图形操作,比如画直线和显示文字等是调用 cairo实现的。结果发现显示文字之后,再显示图片时颜色就不对了。调试了好久,才发现是因为显示文字时修改了Surface的Blit Flag。为了正常显示图片,在draw_pixbuf时需要调用gdk_gc_set_function设置blit flag为正常拷贝。


    欢迎到Linux mobile development上交流

  • 相关阅读:
    802.11标准及无线网运行模式
    linux中top命令使用及查看tcp连接
    DNS信息收集命令nslookup
    Openvas安装
    nc高级应用
    poj 1411 Calling Extraterrestrial Intelligence Again(超时)
    poj 1046 Color Me Less
    1215 迷宫
    2666 Accept Ratio(打表AC)
    2021 中庸之道
  • 原文地址:https://www.cnblogs.com/zhangyunlin/p/6167583.html
Copyright © 2011-2022 走看看