平台相关函数的隔离
以为通过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