C++ Direct2d。纹理图谱创建

C++ Direct2d。纹理图谱创建,c++,windows-store-apps,directx,uwp,direct2d,C++,Windows Store Apps,Directx,Uwp,Direct2d,我的目标是在directx应用程序中创建纹理图集。我有一个ID2D1PathGeometrics向量,需要放在纹理图集上。所以我创建了一个ID2D1Bitmap1,但我不知道下一步是什么。换句话说,-如何准确地将ID2D1PathGeometry放置在需要的ID2D1Bitmap1上 p/s/值得一提的是,我是directx的新手,当我试图在msdn上寻找答案时,我总是迷失在direct2d提供给您的一切中。 屠 请求的p/p/s代码: 正如我已经提到的那样,没有多少东西可以展示 std::ve

我的目标是在directx应用程序中创建纹理图集。我有一个ID2D1PathGeometrics向量,需要放在纹理图集上。所以我创建了一个ID2D1Bitmap1,但我不知道下一步是什么。换句话说,-如何准确地将ID2D1PathGeometry放置在需要的ID2D1Bitmap1上

p/s/值得一提的是,我是directx的新手,当我试图在msdn上寻找答案时,我总是迷失在direct2d提供给您的一切中。 屠

请求的p/p/s代码: 正如我已经提到的那样,没有多少东西可以展示

std::vector<Microsoft::WRL::ComPtr<ID2D1PathGeometry>> atlasGeometries; // so i have my geometries
////than i fill the vector
{
....
}
////Creating Bitmap for font sheet
Microsoft::WRL::ComPtr<ID2D1Bitmap1> bitmap;
D2D1_SIZE_U dimensions;
dimensions.height = 1024;
dimensions.width = 1024;

D2D1_BITMAP_PROPERTIES1  d2dbp;
D2D1_PIXEL_FORMAT d2dpf;
FLOAT dpiX;
FLOAT dpiY;

d2dpf.format = DXGI_FORMAT_A8_UNORM;
d2dpf.alphaMode = D2D1_ALPHA_MODE_PREMULTIPLIED;

this->dxDevMt.GetD2DFactory()->GetDesktopDpi(&dpiX, &dpiY);

d2dbp.pixelFormat = d2dpf;
d2dbp.dpiX = dpiX;
d2dbp.dpiY = dpiY;
d2dbp.bitmapOptions = D2D1_BITMAP_OPTIONS_TARGET;
d2dbp.colorContext = nullptr;

newCtx->CreateBitmap(dimensions, nullptr, 0, d2dbp, bitmap.GetAddressOf());
std::矢量地图几何体;//所以我有我的几何学
////然后我填充向量
{
....
}
////为字体表创建位图
Microsoft::WRL::ComPtr位图;
D2D1_尺寸_尺寸;
尺寸.高度=1024;
尺寸.宽度=1024;
D2D1_位图_属性1 d2dbp;
D2D1_像素_格式d2dpf;
浮动dpiX;
浮动dpiY;
d2dpf.format=DXGI_format_A8_UNORM;
d2dpf.alphaMode=D2D1α模式预乘;
这->dxDevMt.GetD2DFactory()->GetDesktopDpi(&dpiX,&dpiY);
d2dbp.pixelFormat=d2dpf;
d2dbp.dpiX=dpiX;
d2dbp.dpiY=dpiY;
d2dbp.bitmapOptions=D2D1_位图_选项_目标;
d2dbp.colorContext=nullptr;
newCtx->CreateBitmap(维度、空ptr、0、d2dbp、bitmap.GetAddressOf());

但我接下来要做的是寻找我。我想,我应该使用RenderTarget来处理这类事情。但我没能弄清楚到底是怎么回事。

这个问题是通过使用位图作为渲染目标来解决的。 其想法是创建一个新的d2d设备 创建新的DeviceContext 将位图设置为渲染目标
并渲染所有内容,需要渲染的thta

您能给我们看一下您的代码吗?