ARX2015中AcGs类的一些变化

这两天正在编译一个工程,正好用到了AcGs的一些类,于是知道了如下的一些事情:
ARX2015中AcGs类的一些变化:
1、AcGsGraphicsKernel替换掉了AcGsClassFactory 类。创建它需要用另外一个函数acquireGraphicsKernel,如下:

AcGsKernelDescriptor descriptor;
descriptor.addRequirement(AcGsKernelDescriptor::k3DDrawing);

//这里的参数要特别注意,貌似只能使用AcGsKernelDescriptor::k3DDrawing

//如果使用AcGsKernelDescriptor::k2DDrawing

//因为我的图只需要做二维预览就OK了,所以我选了2D的,结果就是下面的acquireGraphicsKernel返回NULL
AcGsGraphicsKernel *pGraphicsKernel =
AcGsManager::acquireGraphicsKernel(descriptor);
AcGsDevice *offDevice = pGraphicsKernel->createOffScreenDevice();

2、AcGsManager的一些函数也相应地发生了变化:
譬如getGSClassFactory不再存在,已经被上面所说的替代。
createAutoCADDevice函数现在有两个参数,
createAutoCADDevice         (AcGsGraphicsKernel &, HWND hWnd)
第一个参数就是上面提到的AcGsGraphicsKernel类。
新增函数在帮助中已经说明。
3、RenderMode 被废弃,改用visual style
以前的AcGsView的setMode 函数应该用 setVisualStyle
AcGsView *                mpView;

mpView->setVisualStyle(AcGiVisualStyle::k2DWireframe);
//mpView->setMode(AcGsView::kWireframe);   不对!
AcGiCisualStyle提供了32种显示方式,远远超出以前的显示模式的数量。具体用法请参考其相应的include文件。
4、编译中的错误纠正:
error LNK2001: unresolved external symbol “__declspec(dllimport) public: static class AcGsGraphicsKernel * __cdecl AcGsManager::acquireGraphicsKernel
当出现这个错误的时候,请在库的依赖项中添加:AcDrawBridge.lib即可。

此条目发表在ObjectArx分类目录。将固定链接加入收藏夹。

发表评论