iOS 平台开发OpenGL ES程序注意事项
本人最近从Android平台的OpenGL ES开发转到iOS平台的OpenGL ES开发,由于平台不同,所以开发中会有一些区别,再次列出需要注意的几点。
1.首先需要了解iOS主要开发框架,再次仅介绍开发OpenGL ES应用常用的几个:
CoreGraphics.framework ——包含Quartz 2D接口(Core Graphics框架参考)
Foundation.framework ——包含Cocoa Foundation层的类和方法(Foundation框架参考)
OpenGLES.framework ——OpenGLES框架是OpenGL跨平台2D和3D渲染库的跨平台版本(OpenGL ES框架参考)
UIKit.framework ——包含iOS应用程序用户界面层使用的类和方法(UIKit框架参考)
============================================
Foundation.framework——为所有的应用程序提供基本系统服务,作用如下:
*创建和管理集合,例如创建数组和字典。
*访问存储在应用程序里的图片和吉他资源。
*创建和管理字符串。
*提交和接收通知。
*创建日期和时间对象。
*自动发现IP网络上的设备。
*操作URL流。
*执行异步代码。
UIKit.framework——创建基于用户触摸界面的类,作用如下:
*构建和管理用户界面。
*捕获触摸和移动的事件。
*呈现文字和web内容。
*优化多任务程序。
*创建定制的界面元素。
CoreGraphics.framework——帮助构建图形,作用如下:
*创建基于路径的绘图。
*抗锯齿渲染。
*添加梯度,图片和颜色。
*创建,显示和分析pdf文件。
OpenGLES.framework——提供2D和3D的绘图工具
参考博客:
http://www.open-open.com/lib/view/open1343210425380.html
============================================
2.创建iOS平台的工程:
(1)选择iOS:Application->Single View Application->next。

(2)填写工程名称。

(3)导入framework:选择Build Phases中的Link Binary With Libraries,点击"+"添加,点击“-”删除。

(4)将ViewController改为继承GLKViewController的子类,如下图所示。

(5)此时直接运行会出现运行错误,后台报出如下的错误,

(6)导致该错误的主要原因是main.storyboard没有绑定到GLKView,具体解决方法如下:
选中视图中view项,找到右侧Custom Class,将Class由原来的UIView改为GLKView。

修改之后即可正常运行。
后续过程中,本人也会不断地发现问题,并及时更新帮助跟我一样从头开始的人。
iOS 平台开发OpenGL ES程序注意事项的更多相关文章
- 没有苹果电脑打包iOS平台的 Ionic 2程序——《Ionic 2 实例开发》更新内容
没有苹果电脑打包iOS平台的 Ionic 2程序--<Ionic 2 实例开发>更新内容春节刚过,祝各位新的一年里万事如意,一帆风顺.<Ionic 2 实例开发>在这段时间里更 ...
- iOS开发- OpenGL ES屏幕截图
之前写过一个常规的屏幕截图:http://blog.csdn.net/hitwhylz/article/details/17189351 可是发现这个办法对于OpenGL 无用. 获取到的数据为空. ...
- iOS开发-OpenGL ES入门教程1
http://www.jianshu.com/p/750fde1d8b6a 这里是一篇新手教程,环境是Xcode7+OpenGL ES 2.0,目标写一个OpenGL ES的hello world.O ...
- (译)cocos2d-x跨android&ios平台开发入门教程
免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作 ...
- CMake结合Visual Studio中开发Qt应用程序注意事项
Qt工程管理 个人比较偏爱于使用CMake来管理C++工程,因为只要编写一个CMakeLists.txt文件,就可以在Windows和Mac上生成各自的IDE工程.在Windows上, CMake自然 ...
- 在苹果iOS平台中获取当前程序进程的进程名等信息
本文由EasyDarwin开源团队成员Penggy供稿: Objective-C 提供 NSProcessInfo 这个类来获取当前 APP 进程信息, 然而我们的静态库是 pure C++ 工程. ...
- 在OpenShift平台开发Node.js程序
设置process.env方便本地调试 --------------------- 修改~/.profile,增加下面两行,然后执行`. ~/.profile`: export OPENSHIFT_N ...
- OpenGL ES应用开发实践指南:iOS卷
<OpenGL ES应用开发实践指南:iOS卷> 基本信息 原书名:Learning OpenGL ES for iOS:A Hands-On Guide to Modern 3D Gra ...
- 《React Native 精解与实战》书籍连载「iOS 平台与 React Native 混合开发」
此文是我的出版书籍<React Native 精解与实战>连载分享,此书由机械工业出版社出版,书中详解了 React Native 框架底层原理.React Native 组件布局.组件与 ...
随机推荐
- UVa 10801 - Lift Hopping(dijkstra最短路)
根据题意,以每一层楼为顶点,每个电梯可以到达的两层楼之间的秒数为每一条边的权值,以此构建一个无向图.然后利用dijkstra求出最短的时间,注意每次换乘电梯需要等待60s(因为同一个电梯上的楼层是相互 ...
- 对CSS中的Position属性的一些深入探讨
转:http://www.cnblogs.com/coffeedeveloper/p/3145790.html Position属性 Position的属性值共有四个static.relative.a ...
- GCD信号量并发控制
/** * 当我们在处理一系列线程的时候,当数量达到一定量,在以前我们可能会选择使用NSOperationQueue来处理并发控制,但如何在GCD中快速的控制并发呢?答案就是dispatch_sem ...
- ubuntu14.04 wifi驱动安装
重装linux后,一直搜不到wlan0,无法启动wifi,经过重重努力,终于成功,在此简单记录一下. 1. 查看网卡类型: ~$ lspci -nn -d 14e4: :]: Broadcom Cor ...
- git重写历史记录
1 修改上一次历史提交,替换掉上次的提交git commit --amend 2 git rebase 将不同分支路径合并到同一分支路径上eg:将master分支上的 conflic rebase合并 ...
- 支付宝&腾讯的OpenID之路
10年前上网很简单,那时我只用记住三个账号:QQ.21cn邮箱和中国联众.10年后的今天,应用或服务层次不穷:盛大网游.淘宝.豆瓣.人人.微博……太多的账号和密码我已经没办法记住.如果有一个 ...
- linux内核设计与实现--从内核出发
linux内核有两种版本:稳定的和处于开发中的. linux通过一种简单的命名机制来区分稳定的和处于开发中的内核,使用3个或者4个“.”分割的数字来代表不同内核版本. 如:2.6.26.1:第一个数字 ...
- django 获取系统当前时间 和linux 系统当前时间不一致 问题处理。
问题场景: 在django admin models 实体对象添加一个属性最后修改时间,用户在添加.修改是系统自动修改操作时间. UpdateTime自动获取系统时间.并且自动修改. 代码设置如下. ...
- 立体匹配:关于OpenCV读写middlebury网站的给定的视差并恢复三维场景的代码
Middlebury是每个研究立体匹配算法的人不可能不使用的网站,Middlebury提供了许多标准的测试库,这极大地推进了立体匹配算法的进展.Middlebury提供的标准库,其计算出的视差保存在后 ...
- python实现线程池
线程池 简单线程池 import queue import threading import time class ThreadPool(object): #创建线程池类 def __init__(s ...