如何在MFC中应用AGG

摘自:http://sourceforge.net/p/vector-agg/mailman/vector-agg-general/?viewmonth=200801&page=0

rendering_bufferrendering_buffer.h文件中声明。

rendering_buffer提供了抽象的接口访问内存块的每一行像素,内存块可以是位图或者渲染的一些接口。

Window,你可以这样做:

为输出到界面的图像,分配一个内存块(例如:CreateDIBSection)。然后创建一个agg::rendering_buffer对象实例,通过attach函数,指向该内存块,然后使用合适的DC将内存块输出到屏幕。

我不想继承platform support,所以开始绘制的时候,没有得到rendering_buffer实例。结果什么也画不出来。到底rendering_buffer是什么?是否有一个合适的方法创建?

实际上你根本没有这个必要使用platform support,只是作为一个简单的显示例子而已。

是否必须继承platform support,我只是想切换渲染的方法。

现在有一个项目,要显示一些东西到屏幕上。在MFCview或者doc中,可以在OnDraw函数中通过获取CDC指针去描绘。现在当你使用Agg2D,你正在渲染图像到一个内置的缓冲区中。我认为没有显示的原因是没有拷贝渲染内存块到Windows DC中。

代码如下:

#include "platform/win32/agg_win32_bmp.h"

 

void Draw(HWND hWnd,HDC hDC)

{

    // example only, inefficient

    agg::pixel_map pixmap;

    pixmap.create(window width, window height, agg::org_color32);

    m_graphics.attach(pixmap.buf(),pixmap.width(),pixmap.height(),pixmap.stride());

    // ... drawing commands here

    // blit into DC

    pixmap.draw(hDC);

}


你可能感兴趣的:(mfc,agg)