制作纯虚函数是不是好的还是坏的做法?我一直认为我们不应该对它的实现类施加额外的限制,因为它实现应该没有抛出,因为这可能导致实现中的修改和不必要的try catch块以防止异常转移.我认为实现应该决定函数是否可以标记为no而不是异常规范应该决定实现?
如果我错了,有人可以纠正我吗?
一种方法是:
CGImageRef scaledImage(CGImageref, destination rect)
{
context = CGBitmapContextCreate(rect...);
CGContextDrawImage(context, rect);
return CGBitmapContextCreateImage(context)
}
Run Code Online (Sandbox Code Playgroud)
问题:
如果图像缩放操作非常频繁,则创建位图上下文可能非常昂贵.有没有其他方法可以扩展CGimage?或者缓存这样的位图上下文以进行缩放操作是唯一的选择吗?
我正在实现一些功能,需要我实现一个 API 来等待 d3d10 完成渲染。基本上我正在尝试实现对共享纹理的同步访问,这样我就可以在 d3d10 成功呈现给后台缓冲区后更新纹理。通过调用这个黑盒 api,我认为这可以实现,我认为它类似于 glfinish()。我读过我们可以使用 ID3D10Query 查询来实现同步访问。
D3D10_QUERY_DESC queryDesc;
... // Fill out queryDesc structure
ID3D10Query * pQuery;
pDevice->CreateQuery( &queryDesc, &pQuery );
pQuery->Begin();
... // Issue graphis commands, do whatever
pQuery->End();
UINT64 queryData; // This data type is different depending on the query type
while( S_OK != pQuery->GetData( &queryData, sizeof( UINT64 ), 0 ) )
{
}
Run Code Online (Sandbox Code Playgroud)
我应该在开始和结束之间放置一些虚拟命令吗?因为我想将此功能公开为名为 waitforgraphiscompletion 的公共 API
这里的虚拟命令应该是什么?
direct3d ×2
graphics ×2
c++ ×1
c++11 ×1
directx ×1
directx-10 ×1
directx-11 ×1
ios ×1
opengl ×1