覆盖OpenGL渲染参数

来自RAD Studio
跳转到:航行,搜索

转到FireMonkey应用指南


为了提高图形应用程序的性能,您可以在iOS和Android平台上覆盖OpenGL渲染参数。

例如,如果不使用三维模型,可以禁用深度缓冲区。同样,如果不使用填充路径或其他矢量画布形状,则可以安全地禁用模具缓冲区。如果您更喜欢高性能而不是视觉质量,那么您可能希望使用16位色深,而不是24位或32位色深。

要覆盖OpenGL参数,请执行以下步骤:

德尔福:

  1. 添加FMX公司。平台.pas添加到您所在单位的用途列表中。
  2. 编写渲染设置过程:
    程序 渲染设置回调(常数 发件人, 上下文: TObject(目标); 无功功率,无功功率 颜色位, 深度位: 整数;
    无功功率,无功功率 模具: 布尔值; 无功功率,无功功率 多个样本: 整数);
    开始
        //覆盖OpenGL渲染设置以使用自定义值。
        颜色位 以下为:= 16; //默认值为24
        深度位 以下为:= 0; //默认值为24
        模具 以下为:= False(错误); //默认值为True
        多个样本 以下为:= 0; //默认值取决于TForm。质量或TForm3D。多重采样
    结束;
    
  3. 编写注册程序:
    程序 注册渲染设置;
    无功功率,无功功率
        设置服务: IFMX渲染设置服务;
    开始
        如果 T平台服务.当前.支持平台服务(IFMX渲染设置服务, I接口(设置服务)) 然后
        设置服务.订阅(渲染设置回调);
        //还有SetupService。取消订阅,这将删除挂钩。
    结束;
    
  4. 致电注册渲染设置在中初始化单元的部分。


C类++:

  1. 编写渲染和注册过程:
     TCpp渲染设置回调 : 公众的 TCpp接口对象<TRenderingSetupCallback(发送设置回拨)>
    {
    公众的:
      空隙 __快速呼叫 调用(系统::TObject(目标)* 常数 发件人, 系统::TObject(目标)* 常数 上下文, 整数 &颜色位,
    						 整数 &深度位, 布尔 &模具, 整数 &多个样本)
      {
    	//覆盖OpenGL渲染设置以使用自定义值。
    	颜色位 = 16; //默认值为24
    	深度位 = 0; //默认值为24
    	模具 = ; //默认为true
    	多个样本 = 0; //默认值取决于TForm。质量或TForm3D。多重采样
      }
    }; 
    
    空隙 注册渲染设置()
    {
      _di_IFMX投标安装服务 设置服务;
      如果 (T平台服务::当前->支持平台服务(__乌伊多夫(IFMX渲染设置服务), &设置服务))
      {
    	设置服务->订阅(新的 TCpp渲染设置回调());
      }
    }
    
  2. 功能注册渲染设置()应在中调用FMX主,在呼叫之前应用程序->初始化,如下所示:
    外部 “C” 整数 FMX主()
    {
        注册渲染设置();
    	尝试
    	{
    		应用程序->初始化();
    		应用程序->创建表单(__分类的(T形式8), &表格8);
    		应用程序->运行();
    

    另请参见