我正在做一个使用Cairo将旧的Windows95MFC代码翻译成C++11的项目。由于我不熟悉MFC,我对原始程序中用于绘图的不同坐标空间感到困惑,并且很难找到解释这些函数的信息和示例。
这就是我所看到的。在代码中,似乎有一个新的CDC设备上下文正在使用CreateCompatibleDC创建。然后创建一个位图对象。然后使用SelectObject函数将该位图设置为新的设备上下文。据我所知,这是一个依赖于DDB设备的位图。
例如:
bmp_dc = new CDC();
bmp_dc->CreateCompatibleDC(NULL);
int num_bit
我正在将.contents的CALayer设置为CGImage,这是从绘制到NSBitMapImageRep中派生的。
据我从docs和WWDC视频中了解到,将图层的.contentsCenter设置为{0.5、0.5}、{0、0}等NSRect,再加上.contentsGravity of kCAGravityResize,将使核心动画调整图层的大小,方法是将中间像素、上、下水平和侧面垂直拉伸。
这几乎是可行的,但不完全有效。图层大小大小或多或少是正确的,但是如果我在位图的边缘画线,当我调整窗口的大小时,可以看到线条在厚度上有很小的波动。这是足够微妙的问题,几乎几乎是一个问题,直到调整大小下