- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在过去,我会创建一个 TForm,在其上放置一个 TMyPanel(使用覆盖的 WM_PAINT 消息)并将其句柄传递给一堆 WGL 函数,这些函数查找兼容的像素格式并创建渲染上下文。就像 NeHe 教程所做的那样。
现在 FireMonkey 应用程序出现了。如何获取适用于 Win 和 iOS 的 OpenGL 1.4 渲染上下文?
编辑:一直试图通过传递 TForm.Handle (即 NativeUInt)来使其工作。好消息 - OpenGL 端没有错误,但坏消息 - TForm 上也没有输出。我显然在这里遗漏了一些关键部分,有人在 FireMonkey 应用程序中拥有可用的 OpenGL 吗?
最佳答案
Firemonkey 提供了一个抽象层。
因此,在 Windows 上您使用 DirectX,在 OSX 和 iOS 上您使用 OpenGL/Quartz。在 Windows 上,也可以回退到 GDI+
考虑到这一点,必须考虑到渲染目标可能并不总是 OpenGL,而且即使在同一平台上,它也可能并不总是相同。
TCanvas
在此抽象层的一部分。
当前有 3 个 TCanvas
实现,您的应用程序可能正在使用其中任何一个。
FMX.Canvas.D2D.pas
- Direct2dFMX.Canvas.GDIP.pas
- GDI+FMX.Canvas.Mac.pas
- Mac平台实现细节通常隐藏在私有(private)部分中,无法访问。
您还在 FMX.Platform.pas
中拥有 TPlatform
,它隐藏了实现细节并发布了一个旨在在所有平台上工作的 API(范围有限) .
如果您使用FMX.Platform.Win.pas
,您可以获得给定TFmxHandle
的窗口句柄
如果您使用FMX.Platform.Mac.pas
,您可以获得给定TFmxHandle
的IObjectiveC
但是在 IOS 上,FMX_Platform_iOS.pas
中没有等效函数
关于delphi - 如何在Firemonkey App中设置OpenGL1.4环境?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7744540/
我是一名优秀的程序员,十分优秀!