Delphi 直接调用 OpenGL ES 的函数

本文介绍如何在Delphi的FireMonkey框架下利用OpenGLES实现自定义3D效果。适用于Android和iOS平台,通过引入特定单元并在OnRender事件中调用OpenGLES函数来实现。

在 Delphi 的 FireMonkey 底下写 APP,如果想要 3D 效果,当然它提供了直接的支持,但底层实际上是使用了 OpenGL ES。

问题是,如果只是采用 FireMonkey 的 3D 框架,使用它的控件,有一些效果可能做不出来。如果自己直接调用 OpenGL ES 的函数,那就没问题。

如何在 APP 里面直接调用 OpenGL ES 的函数呢?请继续往下看:


1. 首先,建立一个 3D Form 的 APP(备注:基于 FireMonkey),设置编译目标是安卓或 iOS;

2. 在这个 3D Form 里面,引用相关单元:

uses
  // 这里是引用 OpenGL ES 的单元,FireMonkey 自带的。目标平台一定是安卓或 iOS。如果是 Windows,这里不行。
  FMX.Context.GLES,
{$IFDEF ANDROID}

  Androidapi.Gles, FMX.Context.GLES.Android,
  , FMX.Platform.Android, Androidapi.Gles2, Androidapi.JNI.OpenGL,
   Androidapi.Glesext, Androidapi.Gles2ext;
{$ENDIF}
{$IFDEF IOS}

  iOSapi.OpenGLES, FMX.Context.GLES.iOS,
  , iOSapi.GLKIT, FMX.Platform.iOS;
{$ENDIF}


有了以上的引用。接下来就可以在代码里面直接使用 OpenGL ES 的函数了。比如,3D Form 有一个 OnRender 事件。在该事件里面可以添加代码:


procedure TForm2.Form3DRender(Sender: TObject; Context: TContext3D);
begin
  glClearColor(1, 1, 0, 1);
  glClear(GL_COLOR_BUFFER_BIT);
end;

编译发布到手机上,测试通过。


注意:这个只能是 Android 或 iOS,在 Windows 底下,上述 use 的 FMX.Context.GLES 不存在,FireMonkey 木有为 Windows 准备 OpenGL ES 相关的东西。


原文:

http://delphi.org/2014/04/opengl-es-support-on-mobile-with-xe6/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值