平台相关函数的隔离

本文讨论了在游戏引擎开发中如何通过宏定义隔离不同平台(iOS, Android, Win32)的OpenGL函数差异。针对Android平台缺少GL_BGR等问题,采取预处理宏定义来解决,如定义glClearDepth为glClearDepthf,并引入相应的扩展函数声明。通过这种方式,实现了在不同平台上的代码兼容性。" 116603883,10538792,CentOS内核编译与签名机制详解,"['Linux内核', '系统安全', '驱动开发', 'CentOS', '内核配置']
摘要由CSDN通过智能技术生成
平台相关函数的隔离
以为通过EGLView类隔离平台相关性,已经可以了,结果发现gl在三个平台居然定义也有差别。比如GL_BGR,android居然没有。好吧,我们的渲染类renderer里面要根据三个不同的平台选择编译代码。肿么破?
  
考虑了下,决定用宏隔开好了。在编译之前,还有一个预处理阶段。来看代码。
//
//PlatformConfig.h
//


#pragma once

#define PLATFORM_UNKNOWN            0
#define PLATFORM_IOS                1
#define PLATFORM_ANDROID            2
#define PLATFORM_WIN32              3


// Determine target platform by compile environment macro.
#define TARGET_PLATFORM             PLATFORM_UNKNOWN



// iphone
#if defined(TARGET_OS_IPHONE)
#undef  TARGET_PLATFORM
#define
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值