小编Ben*_*n Y的帖子

C#返回局部变量

来自C++,返回一个局部变量是一个坏主意(当在堆栈上分配内存时).

现在使用C#我得到的印象不是一个坏主意(返回值时,而不是引用).

这是为什么?我理解C#使用GC,但我不确定在这种情况下会产生什么不同.

c# local-variables

7
推荐指数
1
解决办法
1757
查看次数

渲染到纹理时的 DX11 Alpha 混合

最终编辑:

已解决...只需深入了解 alpha 混合如何工作。我应该有: oBlendStateDesc.RenderTarget[a].DestBlendAlpha = D3D11_BLEND_ZERO; ...设置为 D3D11_BLEND_ONE 以保留 Alpha。

当渲染到后台缓冲区时,问题不会被注意到,因为颜色混合正常,这就是最终输出。当渲染到纹理时,同样的情况也适用,然后将纹理渲染到后缓冲区,不正确的 alpha 会导致错误地将纹理混合到后缓冲区。

然后我遇到了另一个问题,阿尔法似乎在减少。这是因为颜色混合了两次,例如......

Source.RBGA = 1.0f, 0.0f, 0.0f, 0.5f
Dest.RGBA   = 0.0f, 0.0f, 0.0f, 0.0f
Run Code Online (Sandbox Code Playgroud)

渲染成纹理...

Result.RGB = Source.RBG * Source.A +  Dest.RGB * (1 - Source.A) = 0.5f, 0.0f, 0.0f
Result.A   = Source.A * 1 + Dest.A * 1 = 0.5f
Run Code Online (Sandbox Code Playgroud)

现在...

Source.RBGA = 0.5f, 0.0f, 0.0f, 0.5f
Dest.RGBA   = 0.0f, 0.0f, 0.0f, 0.0f
Run Code Online (Sandbox Code Playgroud)

渲染到后台缓冲区...

Result.RGB = Source.RBG * Source.A +  Dest.RGB * (1 - Source.A) = …
Run Code Online (Sandbox Code Playgroud)

c++ alphablending directx-11 render-to-texture rendertarget

5
推荐指数
0
解决办法
3548
查看次数

线程同时读/写

如果我不关心同时的变化是否会Thread1发生变化,除了逻辑错误还有什么可担心的吗?如果:它会导致崩溃等:Flag1Thread2Flag1

  1. Thread1并在同一时间Thread2阅读Flag1
  2. Thread1正在读书Flag1的同时写信?Thread2Flag1

在这些例子中,Flag1是一个bool.

c++ multithreading

2
推荐指数
1
解决办法
2526
查看次数

按位与逻辑

编辑:在C++如果我有,我需要测试8个标志.哪个在处理速度方面更有效:

在单个if语句中检查8个bool变量或者使用表示标志的char,每个标志使用1位并在单个if语句中使用单个按位运算?

如果我有1个标志要测试,那会有所作为吗?

c++ bit-manipulation

2
推荐指数
1
解决办法
2582
查看次数