AGG第八课 MFC工程中应用AGG

发布时间:2020-08-11 16:54:28 作者:fengyuzaitu
来源:网络 阅读:705

前言

        除了pure_api例子外,其他的都是基于agg::platform_support之上进行开发的。这些例子通过调用agg::platform_support,隐藏了如何创建渲染缓存buffer以及关联agg::rendering_buffer的细节。一句话,通过继承agg::platform_support,就可以直接调用rbuf_window(),获取渲染的缓存。而pure_api是一个最原始的程序,通过调用系统API函数,构建一个最完整详细的例子程序,而这些所做的事情,已经全部封装到agg::platform_support里面。在wx章节中,有详细介绍如何应用AGG进行渲染。


要求

        本意是希望获取当前位图的渲染缓存,然后传递给agg::rendering_bufer,然后开始进行AGG的渲染。


结果

         查询了很多资料,还是只能够创建兼容DC,然后创建兼容位图,然后选入位图,获取渲染缓存,绘制之后,贴图到当前的兼容DC上

                HDC mem_dc = ::CreateCompatibleDC(hdc); //创建兼容DC


                void* buf = 0; 


                HBITMAP bmp = ::CreateDIBSection( //创建兼容位图,获取缓存

                    mem_dc, 

                    &bmp_info, 

                    DIB_RGB_COLORS, 

                    &buf, 

                    0, 

                    0 

                ); 


                // Selecting the object before doing anything allows you 

                // to use AGG together with native Windows GDI.

                HBITMAP temp = (HBITMAP)::SelectObject(mem_dc, bmp);

     //贴图到当前DC上,减去100,是不希望覆盖右边的一小块区域

                ::BitBlt(

                  hdc,  

                  rt.left,      

                  rt.top,      

                  width - 100,  

                  height, 

                  mem_dc,

                  0,

                  0,     

                  SRCCOPY

                );

 

总结

        详细的流程请参考源码目录下的examples提供了完整的测试用例 


推荐阅读:
  1. AGG第二十七课 agg::conv_clip_polyline裁剪线区域
  2. AGG第二十三课 ctrl目录下agg_slider_ctrl基本使用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

api agg pure

上一篇:C#过滤关键字,js过滤关键字

下一篇:换新iPhone前,旧设备上数据怎样迁移,最后一个很多人没用过

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》