小编Fiz*_*izz的帖子

如何在没有清单的情况下启用视觉样式

根据文件:

"如果您希望应用程序使用ComCtl32.dll版本6,则必须添加应用程序清单或编译器指令,以指定如果版本6可用,则应使用该版本."

注意上面的逻辑OR?那么这个神秘的编译器指令是什么?

我有一个原生的Win32 C++应用程序,它完全包含在一个.cpp文件中.没有资源文件,清单文件等.我想保持这种方式,但我也想使用视觉样式.

c++ winapi comctl32 visual-styles

11
推荐指数
3
解决办法
1万
查看次数

Direct3D 11.1 的目标独立光栅化 (TIR) 等效于 OpenGL(包括扩展)

目标独立光栅化 (TIR) 是DirectX 11.1 中的一项新硬件功能,Microsoft用它来改进 Windows 8 中的 Direct2D。AMD 声称TIR 将 2D 矢量图形的性能提高了约 500%。并且与 Nvidia 发生了一些“口水战”,因为Kepler GPU 显然不支持 TIR(以及其他 DirectX 11.1 功能)。TIR 的想法似乎起源于微软,因为他们已经为它申请专利

现在 Direct2D 很好,您的操作系统是 Windows,但是是否有一些 OpenGL(可能是供应商/AMD)扩展可以提供对相同硬件/驱动程序 TIR 的访问?我认为 AMD 的处境有点奇怪,因为 OpenGL 没有独立于供应商的 2D 矢量图形扩展;目前只有 Nvidia 正在推广NV_path_rendering,它的架构与 Direct2D 有很大不同。因此,与 Direct2D+Direct3D 世界不同,目前尚不清楚 AMD 为加速 2D 矢量图形而制作的任何东西可以插入(或显示)在 OpenGL 中的什么地方。我希望我的悲观情绪会被下面一个简单的答案所打破。

我实际上在这里发布了各种更新,因为在评论式帖子中没有足够的空间来做这个。关于 TIR 的作用似乎有点混乱,这不仅仅是“没有附加存储的帧缓冲区”。这可能是因为我只在上面链接了最糟糕的专利(但是这是我能在 TIR 上找到的最详细的文件)。我发现最好的 TIR 高级概述是以下来自Sinofsky 博客文章的片段:

为了提高渲染不规则几何体(例如地图上的地理边界)时的性能,我们使用了一种称为目标独立光栅化或 TIR 的新图形硬件功能。

TIR …

opengl nvidia ati directx-11 direct2d

6
推荐指数
1
解决办法
1519
查看次数

是否有 GitHub 支持的 git 预告片的完整参考列表记录在某处?

GitHub 支持一些 git(提交)预告片,尽管它不这样称呼它们,例如支持Co-authored-by:,出于 GitHub 的目的,必须用两个空行与提交消息分隔。git commit --trailer(顺便说一下,我不确定是否添加那些空行。)

显然还有更多,例如Relates-to: [#12312312],但我不太确定 GitHub 是否对后者有更多的魔力,如果你在其他任何地方包含 #12312312 ,这意味着它可能会在任何上下文中创建一个链接。

是否有GitHub 支持的此类预告片的完整参考列表,这意味着它们在 GitHub 上做了一些值得注意的事情,并在某处记录了?

github

6
推荐指数
0
解决办法
425
查看次数

Intel i7处理器上的CPUID

我在基于i7的新机器上遇到基于CPUID的代码问题.它将CPU检测为具有8个HT单元的单个核心,而不是4个核心,每个核心具有2个HT单元.

我必须误解从CPU返回的CPUID信息的结果,但我看不出如何.

基本上,我遍历Windows可见的每个处理器,为该线程设置线程关联,然后进行一系列CPUID调用.

args = new CPUID_Args();
args.eax = 1;
executeHandler(ref args);
if (0 != (args.edx & (0x1 << 28)))
{
  //If the 28th bit in EDX is flagged, this processor supports multiple logical processors per physical package
  // in this case bits 23:16 of EBX should give the count.
//** EBX here is 0x2100800
  logicalProcessorCount = (args.ebx & 0x00FF0000) >> 16;
//** this tells me there are 16 logical processors (wrong)
}
else
{ logicalProcessorCount = 1; }
apic …
Run Code Online (Sandbox Code Playgroud)

cpu cpu-registers cpuid

5
推荐指数
1
解决办法
3529
查看次数

DirectWrite (CreateTextFormat) 如何选择后备字体?

CreateTextFormat的文档没有说明字体回退选择,但如果选择了默认(NULL = 系统)集合,那么 DirectWrite 清楚地实现了字体回退。例如,如果我将 Gabriola 字体中未找到的两个字形添加到 DirectWrite SDK 演示应用程序使用的测试字符串中,则 DirectWrite 会从 Segoe UI Symbol 字体中选择丢失的字形。这发生在基本DrawText调用和自定义渲染器(对字体回退不做任何自定义)时,如下所示(唯一的修改是测试字符串):

在此处输入图片说明

复选标记和白星来自 Segoe UI Symbol,而不是来自 Gabriola,即使在演示应用程序中只指定了 Gabriola。那么,有谁知道 DirectWrite (CreateTextFormat) 是如何选择后备字体的?

更新。我看到有一个GetSystemFontFallback可以列出后备字体,但它只在 Windows 8.1 中可用(因为它在 IDWriteFactory2 中)。我猜他们已经注意到 API 在枚举后备字体方面的差距。所以我猜在 Windows 8.1 之前没有办法做到这一点,但如果有人知道黑客/解决方法......

更新2。引用MSFT 员工的话

DirectWrite 具有无法从注册表读取或以任何方式配置的回退数据。但是,在 Windows 8.1 中,引入了允许应用指定其自己的回退的 API。(它类似于用于创建复合字体定义的 WPF API。)

这仍然不能准确解释硬编码算法/替换方案实际上是什么。

fonts directwrite

5
推荐指数
1
解决办法
1889
查看次数

如何更改Win32 API应用程序中的控件主题?

如果我在Win32 API中创建一个按钮,默认的conrol主题看起来像Windows 95/98按钮.我记得过去微软论坛告诉我如何获得XP风格,但我不记得如何做到这一点.有没有办法以编程方式或手动更改Win32应用程序中的控件主题?谢谢.

c c++ api winapi visual-styles

3
推荐指数
1
解决办法
5177
查看次数