Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 编码时BeginDraw()(Direct2D)的位置重要吗?_C++_Visual C++_Direct2d - Fatal编程技术网

C++ 编码时BeginDraw()(Direct2D)的位置重要吗?

C++ 编码时BeginDraw()(Direct2D)的位置重要吗?,c++,visual-c++,direct2d,C++,Visual C++,Direct2d,我目前正在学习如何使用Direct2D创建应用程序,我想知道在调用BeginDraw后放置大量“非图形”代码是否重要。我不完全理解BeginDraw实际上做什么,所以我的问题主要是关于执行时间。它会减缓其他进程吗?在调用EndDraw之前,是不是一直在“吃掉”CPU?在BeginDraw中花费的时间内,您不会得到额外的成本 调用它要付出代价,就像调用任何其他函数一样,因为它需要准备材料和处理状态。在这方面,开始的块越少越好 但是,由于区块的作用域更长,所以不会产生成本。事实上,如果需要的话,可以

我目前正在学习如何使用Direct2D创建应用程序,我想知道在调用BeginDraw后放置大量“非图形”代码是否重要。我不完全理解BeginDraw实际上做什么,所以我的问题主要是关于执行时间。它会减缓其他进程吗?在调用EndDraw之前,是不是一直在“吃掉”CPU?

在BeginDraw中花费的时间内,您不会得到额外的成本

调用它要付出代价,就像调用任何其他函数一样,因为它需要准备材料和处理状态。在这方面,开始的块越少越好

但是,由于区块的作用域更长,所以不会产生成本。事实上,如果需要的话,可以提前调用它,因为它为Direct2D库提供了进行后台处理的时间。可能只是需要获取内存。我希望这只是一个微小的改变,或者没有影响,但是如果这是唯一的改变,那么早点做就不会有什么坏处


在实践中,尽量少使用块。并使用任何可用的命令缓冲API来执行即时绘制命令。很抱歉,这里缺少详细信息,我自己对DirectDraw不太熟悉,更像是OpenGL/Vulkan dev

@AlexF,听起来像是一个答案。你可能想把它作为一个帖子发出去。@AlexF谢谢你的回答。如果你发布它,我会验证它我想这就是这个网站的工作方式?