Basic ios development

Size: px
Start display at page:

Download "Basic ios development"

Transcription

1 Basic ios development The minimal ios appication "Keep it as small and simple as possible" - me, all the time Xcode, New Project -> Application -> Window Based Application, name it Minimal, and Save. What you see in xcode now is the plain iphone application. But there are still too many unnecessary things there. We are real programmers, we won't need the interface builder descriptor, so right click on MainWindow.xib, select delete, and move to trash. Open Minimal-Info.plist as plain text file, and delete the last key-string node from it ( with MSMainNibFile and MainWindow ). Let's remove Coregraphics.framework from frameworks, we don't need it. Right click on it, delete, move to trash. Let's check main.m. Delete NSAutoreleasePool initialization and the release lines, we are real programmers, we want total control, not autorelease sh*t. :) Without these two lines we can simplify this function, move UIApplicationMain init after return, and remove UIKit import from the top, its already in the prefix header. We also have to tell UIApplicationMain which is our Delegate class. The result should look like this : int main ( int countx, char *wordsx[ ] )! return UIApplicationMain( countx, wordsx, ); Let's check MinimalAppDelegate.h. Delete line, we don't want to set, get and synthesize the window. Also remove UIKit import. MinimalAppDelegate.m comes. window. Let's create it "manually". Normally it is synthesized based on the interface builder file, but we deleted that. Let's create an UIWindow instance with the screen's dimensions : window = [ [ UIWindow alloc ] initwithframe : [ [ UIScreen mainscreen ] bounds ] ]; The result MinimalAppDelegate - ( void ) applicationdidfinishlaunching : ( UIApplication* ) application! window = [ [ UIWindow alloc ] initwithframe : [ [ UIScreen mainscreen ] bounds ] ];! [ window makekeyandvisible ]; - ( void ) dealloc! [ window release ];! [ super dealloc ];

2 You can debug and run the application. Let's check the project's folder. We have three files in the root, the prefix, the plist and main.m, and two files for MinimalAppDelegate class under classes folder. If you do a release build, you will find that the size of the binary is bytes, so this seems the minimal size of a compiled application, of course you can short it with one-char method and attribute names, but it won't be readable then, so it won't be that simple to work with, and our first and only rule would be harmed. The minimal iphone opengl ES application We will need an opengl ES framework. Right click on Frameworks folder, Add -> Existing Frameworks, select an OpenGLES framework, click Add. If you don't know how to locate one, create a new opengles project, right click on OpenGLES.framework under frameworks, and check the full path. We also need the QuartzCore framework for CAEAGLLayer. Do as above. To show an opengl output, we need a core animation gl layer to bind the renderbuffer to, and UIView has this. So we need an UIView instance. But its not that simple, by default UIView's layer is a CALayer instance, but opengl context needs a CAEAGLLayer instance to work, so we have to mimic it. We need a new class which extends UIView, and we have to override UIView's "layerclass" class method definition. Right click on Classes, Add -> New File -> Objective-C class -> Next -> name it GLView.m, click Finish. Delete the #import from the header file. Extend it from GLView : UIView Only one thing is needed in the implementation file, the layerclass override GLView + ( Class ) layerclass return [ CAEAGLLayer class ]; So from now on it will tell that its layer is a caeagllayer instance. Great. We made two additional files for almost nothing. Quite a shitty solution from Apple. Yesokay, lets get back to MinimalAppDelegate. We have to instantiate our layer. We need a new property in the header :

3 GLView* glview; don't forget to import we also need to import the opengl ES1 extensions #import <OpenGLES/ES1/glext.h> The result : #import MinimalAppDelegate : NSObject! UIWindow*! window;! GLView*!! glview; And in the implementation we instantiate our newly created GLView class: glview = [ [ GLView alloc ] initwithframe : [ [ UIScreen mainscreen ] bounds ] ]; Lets add this view as a subview to the main window. [ window addsubview : glview ]; now we can create our opengl ES1 context. EAGLContext* context = [ [ EAGLContext alloc ] initwithapi : keaglrenderingapiopengles1 ]; Set it as the active context : [ EAGLContext setcurrentcontext : context ]; From now on we can work with the context. We need a color and a frame buffer. Let's generate names for them. GLuint colorbuffer; GLuint framebuffer; glgenframebuffersoes( 1, &framebuffer ); glgenrenderbuffersoes( 1, &colorbuffer ); Bind framebuffer as framebuffer, colorbuffer as renderbuffer. glbindframebufferoes( GL_FRAMEBUFFER_OES, framebuffer ); glbindrenderbufferoes( GL_RENDERBUFFER_OES, colorbuffer ); We have to attach the colorbuffer to the framebuffer as color attachment. glframebufferrenderbufferoes( GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, colorbuffer );

4 The only thing left is binding glview's layer to opengl's renderbuffer. [ context renderbufferstorage : GL_RENDERBUFFER_OES fromdrawable : ( CAEAGLLayer * ) glview.layer ]; Now we can do something spectacular, for example, setting the background color to dark green. glclearcolor( 0,.3, 0, 1.0 ); glclear( GL_COLOR_BUFFER_BIT ); And display the render buffer : [ context presentrenderbuffer : GL_RENDERBUFFER_OES ]; Yaaaay! If you run/debug the application, you will see a beautiful dark green color on your opengl layer. ios opengl ES basics - textures as point sprites Let's go to the point in MinimalAppDelegate where we bind glview's layer to opengl's renderbuffer. [ context renderbufferstorage : GL_RENDERBUFFER_OES fromdrawable : ( CAEAGLLayer * ) glview.layer ]; So we want some texture. The simplest form of a texture in opengl is a point sprite. OpenGL maps the given texture to the wanted point with the wanted size. Sounds simple, and it is. First we have to load an image we want to use as a texture. Create a gradient sphere with alpha in a photo editor, save it as a transparent png. We use UIImage for loading the image. CGImageRef brushimage = [ UIImage imagenamed ].CGImage; We have to extract the raw byte data from the image, we use Core Foundation's DataGetBytePointer function to get the pointer to the byte array provided by CGImage's dataprovider. GLubyte* brushdata = ( GLubyte * ) CFDataGetBytePtr( CGDataProviderCopyData ( CGImageGetDataProvider ( brushimage ) ) ); We have it now, texture generation comes GLuint brushtexture; glgentextures( 1, &brushtexture ); glbindtexture( GL_TEXTURE_2D, brushtexture ); Let's set up a linear filter for the texture gltexparameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); And finally create the texture from our bytearray

5 glteximage2d( GL_TEXTURE_2D, 0, GL_RGBA, CGImageGetWidth( brushimage ), CGImageGetHeight( brushimage ), 0, GL_RGBA, GL_UNSIGNED_BYTE, brushdata ); Yaaay. Don't forget to free brushdata array. We have the texture, let's draw it as point sprites.we want to see smooth alpha transitions, so we have to enable alpha blending. glenable(gl_blend); glblendfunc(gl_src_alpha, GL_ONE); Let's set up the screen's dimensions for orthographic projection and for the viewport. glmatrixmode( GL_PROJECTION ); glorthof( 0, 320, 0, 480, -1, 1 ); glviewport( 0, 0, 320, 480 ); Enable 2D textures and point sprites. glenable( GL_TEXTURE_2D ); glenable( GL_POINT_SPRITE_OES ); gltexenvf(gl_point_sprite_oes, GL_COORD_REPLACE_OES, GL_TRUE ); Set up points for the sprites glpointsize( 100 ); GLfloat points [ ] = 130, 200, 100, 204 ; Enable vertex array for writing glenableclientstate(gl_vertex_array); Assign vertex pointer glvertexpointer( 2, GL_FLOAT, 0, points ); And finally, draw vertexes. gldrawarrays( GL_POINTS, 0, 2 ); And display renderbuffer. [ context presentrenderbuffer : GL_RENDERBUFFER_OES ]; Run/debug it, you'll see two beautiful intersecting clouds :D ios opengl ES basics - animation Lets move our point sprites around. We need a few instance variables for this in the header. We need an array of GLfloats to store coordinates, two float for storing the two particles directions, the EAGLContext, and a NSTimer for simulation/screen refresh. #import MinimalAppDelegate : NSObject

6 ! NSTimer*!timer;! UIWindow*! window;! GLView*! glview;! GLfloat*!points;! EAGLContext*! context;! float! anglea;! float! angleb; - ( void ) update; Go back to MinimalAppDelegate implementation. We have to remove the drawing part from the bottom of applicationdidfinishlaunching method. We have to setup movement variables and the timer there instead. anglea = ( float ) rand( ) / RAND_MAX * M_PI * 2; angleb = ( float ) rand( ) / RAND_MAX * M_PI * 2; points = malloc( sizeof( GLfloat ) * 4 ); points[ 0 ] = ( GLfloat ) rand( ) / RAND_MAX * 320; points[ 1 ] = ( GLfloat ) rand( ) / RAND_MAX * 480; points[ 2 ] = ( GLfloat ) rand( ) / RAND_MAX * 320; points[ 3 ] = ( GLfloat ) rand( ) / RAND_MAX * 480; // START TIMER timer = [ NSTimer scheduledtimerwithtimeinterval! : ( NSTimeInterval ) 1.0 / 20.0 target!!!!! : self selector!!!! ( update ) userinfo!!!! : nil repeats!!!! : YES ]; We have to move the drawing part to a separate function, which will be called by our NSTimer simultaneously. This will be "update". First we need to refresh particle positions. // modify direction anglea += ( float ) rand( ) / RAND_MAX * 1; angleb += ( float ) rand( ) / RAND_MAX * 1; // update position points[ 0 ] += sin( anglea ) * 10; points[ 1 ] += cos( anglea ) * 10; points[ 2 ] += sin( angleb ) * 10; points[ 3 ] += cos( angleb ) * 10; // check borders if ( points[0] > 320 points[0] < 0 points[1]> 480 points[1] < 0 ) anglea -= M_PI; if ( points[2] > 320 points[2] < 0 points[3]> 480 points[3] < 0 ) angleb -= M_PI; Then let's move the texture sprite drawing code below

7 // enable texturing glenable( GL_TEXTURE_2D ); // assig vertex pointer glvertexpointer( 2, GL_FLOAT, 0, points ); // set point size glpointsize( 150 ); // draw vertexes gldrawarrays( GL_POINTS, 0, 2 ); Then, to make things more spectacular, we darken the whole scene, and we get a nice "glowing trail" effect. We will draw a simple square with the help of a triangle strip, we will use vertex coloring, so we have to switch off textures, and enable color array access. The last part is : // disable texturing gldisable( GL_TEXTURE_2D ); // enable color array for writing glenableclientstate( GL_COLOR_ARRAY ); // define screen sized square with transparency GLfloat square [ ] = 0, 0, 0, 480, 320, 0, 320, 480 ; GLubyte colors [ ] = 0, 0, 0, 200, 0, 0, 0, 200, 0, 0, 0, 200, 0, 0, 0, 200 ; // assign vertex and color pointer glvertexpointer( 2, GL_FLOAT, 0, square ); glcolorpointer( 4, GL_UNSIGNED_BYTE, 0, colors ); // draw gldrawarrays( GL_TRIANGLE_STRIP, 0, 4 ); // disable color array before using texture gldisableclientstate( GL_COLOR_ARRAY ); // display renderbuffer content [ context presentrenderbuffer : GL_RENDERBUFFER_OES ]; If you move the darkening part before the sprite drawing, you get brighter glows, check it in the source

Methodology for Lecture. Review of Last Demo

Methodology for Lecture. Review of Last Demo Basic Geometry Setup Methodology for Lecture Make mytest1 more ambitious Sequence of steps Demo Review of Last Demo Changed floor to all white, added global for teapot and teapotloc, moved geometry to

More information

iphone Objective-C Exercises

iphone Objective-C Exercises iphone Objective-C Exercises About These Exercises The only prerequisite for these exercises is an eagerness to learn. While it helps to have a background in object-oriented programming, that is not a

More information

INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011

INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 INTRODUCTION TO OBJECTIVE-C CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 12 09/29/2011 1 Goals of the Lecture Present an introduction to Objective-C 2.0 Coverage of the language will be INCOMPLETE

More information

ios Development Tutorial Nikhil Yadav CSE 40816/60816: Pervasive Health 09/09/2011

ios Development Tutorial Nikhil Yadav CSE 40816/60816: Pervasive Health 09/09/2011 ios Development Tutorial Nikhil Yadav CSE 40816/60816: Pervasive Health 09/09/2011 Healthcare iphone apps Various apps for the iphone available Diagnostic, Diet and Nutrition, Fitness, Emotional Well-being

More information

This documentation is made available before final release and is subject to change without notice and comes with no warranty express or implied.

This documentation is made available before final release and is subject to change without notice and comes with no warranty express or implied. Hyperloop for ios Programming Guide This documentation is made available before final release and is subject to change without notice and comes with no warranty express or implied. Requirements You ll

More information

INTRODUCTION TO IOS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 13 02/22/2011

INTRODUCTION TO IOS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 13 02/22/2011 INTRODUCTION TO IOS CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 13 02/22/2011 1 Goals of the Lecture Present an introduction to ios Program Coverage of the language will be INCOMPLETE We

More information

OpenGL Insights. Edited by. Patrick Cozzi and Christophe Riccio

OpenGL Insights. Edited by. Patrick Cozzi and Christophe Riccio OpenGL Insights Edited by Patrick Cozzi and Christophe Riccio Browser Graphics Analysis and Optimizations 36 Chris Dirks and Omar A. Rodriguez 36.1 Introduction Understanding performance bottlenecks in

More information

ios App Development for Everyone

ios App Development for Everyone ios App Development for Everyone Kevin McNeish Table of Contents Chapter 2 Objective C (Part 6) Referencing Classes Now you re ready to use the Calculator class in the App. Up to this point, each time

More information

Advanced Graphics and Animations for ios Apps

Advanced Graphics and Animations for ios Apps Tools #WWDC14 Advanced Graphics and Animations for ios Apps Session 419 Axel Wefers ios Software Engineer Michael Ingrassia ios Software Engineer 2014 Apple Inc. All rights reserved. Redistribution or

More information

Creating a Custom Class in Xcode

Creating a Custom Class in Xcode Creating a Custom Class in Xcode By Mark Mudri March 28, 2014 Executive Summary: Making an ios application requires the use of Xcode, an integrated development environment (IDE) developed by Apple. Within

More information

How To Develop An App For Ios (Windows)

How To Develop An App For Ios (Windows) Mobile Application Development Lecture 14 ios SDK 2013/2014 Parma Università degli Studi di Parma Lecture Summary ios operating system ios SDK Tools of the trade ModelViewController MVC interaction patterns

More information

Learn iphone and ipad game apps development using ios 6 SDK. Beginning. ios 6 Games. Development. Lucas Jordan. ClayWare Games tm

Learn iphone and ipad game apps development using ios 6 SDK. Beginning. ios 6 Games. Development. Lucas Jordan. ClayWare Games tm Learn iphone and ipad game apps development using ios 6 SDK Beginning ios 6 Games Development Lucas Jordan ClayWare Games tm This book was purchased by dstannard@oregonmba.com For your convenience Apress

More information

Your First ios Application

Your First ios Application Your First ios Application General 2011-06-06 Apple Inc. 2011 Apple Inc. All rights reserved. Some states do not allow the exclusion or limitation of implied warranties or liability for incidental or consequential

More information

How To Draw A Billiards Ball In Gta 3D With Texture Mapping (Gta 3) On A Computer Or 2D Or Gta 2D (Gt) On Your Computer Or Computer Or Your Computer (Or Your Computer)

How To Draw A Billiards Ball In Gta 3D With Texture Mapping (Gta 3) On A Computer Or 2D Or Gta 2D (Gt) On Your Computer Or Computer Or Your Computer (Or Your Computer) Pool Billiard An OpenGL-based billiard simulation Stefan HUBER Kamran SAFDAR Andreas SCHRÖCKER Fachbereich Computerwissenschaften Universität Salzburg June 10, 2009 S. Huber, K. Safdar, A. Schröcker: Pool

More information

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg

Image Processing and Computer Graphics. Rendering Pipeline. Matthias Teschner. Computer Science Department University of Freiburg Image Processing and Computer Graphics Rendering Pipeline Matthias Teschner Computer Science Department University of Freiburg Outline introduction rendering pipeline vertex processing primitive processing

More information

Cross-Compiling Android Applications to the iphone

Cross-Compiling Android Applications to the iphone Cross-Compiling Android Applications to the iphone Arno Puder San Francisco State University arno@sfsu.edu The Team Core team: Arno Puder, SFSU Sascha Haeberling, Google Inc Wolfgang Korn, bluecarat AG

More information

Fireworks 3 Animation and Rollovers

Fireworks 3 Animation and Rollovers Fireworks 3 Animation and Rollovers What is Fireworks Fireworks is Web graphics program designed by Macromedia. It enables users to create any sort of graphics as well as to import GIF, JPEG, PNG photos

More information

Graphics Pipeline in a Nutshell

Graphics Pipeline in a Nutshell Graphics Pipeline in a Nutshell How do we create a rendering such as this? CS334 Spring 2008 Design the scene (technical drawing in wireframe ) Apply perspective transformations to the scene geometry for

More information

Android and OpenGL. Android Smartphone Programming. Matthias Keil. University of Freiburg

Android and OpenGL. Android Smartphone Programming. Matthias Keil. University of Freiburg Android and OpenGL Android Smartphone Programming Matthias Keil Institute for Computer Science Faculty of Engineering 16. Dezember 2013 Outline 1 OpenGL Introduction 2 Displaying Graphics 3 Interaction

More information

View Controller Programming Guide for ios

View Controller Programming Guide for ios View Controller Programming Guide for ios Contents About View Controllers 10 At a Glance 11 A View Controller Manages a Set of Views 11 You Manage Your Content Using Content View Controllers 11 Container

More information

Application Programming on the Mac COSC346

Application Programming on the Mac COSC346 Application Programming on the Mac COSC346 OS X Application An application is a complex system made of many subcomponents Graphical interface Event handling Multi-threading Data processing Storage 2 Cocoa

More information

Objective C and iphone App

Objective C and iphone App Objective C and iphone App 6 Months Course Description: Understanding the Objective-C programming language is critical to becoming a successful iphone developer. This class is designed to teach you a solid

More information

OpenGL & Delphi. Max Kleiner. http://max.kleiner.com/download/openssl_opengl.pdf 1/22

OpenGL & Delphi. Max Kleiner. http://max.kleiner.com/download/openssl_opengl.pdf 1/22 OpenGL & Delphi Max Kleiner http://max.kleiner.com/download/openssl_opengl.pdf 1/22 OpenGL http://www.opengl.org Evolution of Graphics Assembler (demo pascalspeed.exe) 2D 3D Animation, Simulation (Terrain_delphi.exe)

More information

Praktikum Entwicklung von Mediensystemen mit ios

Praktikum Entwicklung von Mediensystemen mit ios Praktikum Entwicklung von Mediensystemen mit ios SS 2011 Michael Rohs michael.rohs@ifi.lmu.de MHCI Lab, LMU München Timeline Date Topic/Activity 5.5.2011 Introduction and Overview of the ios Platform 12.5.2011

More information

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer About the Tutorial ios is a mobile operating system developed and distributed by Apple Inc. It was originally released in 2007 for the iphone, ipod Touch, and Apple TV. ios is derived from OS X, with which

More information

Introduction to Objective-C. Kevin Cathey

Introduction to Objective-C. Kevin Cathey Introduction to Objective-C Kevin Cathey Introduction to Objective-C What are object-oriented systems? What is the Objective-C language? What are objects? How do you create classes in Objective-C? acm.uiuc.edu/macwarriors/devphone

More information

Xcode Project Management Guide. (Legacy)

Xcode Project Management Guide. (Legacy) Xcode Project Management Guide (Legacy) Contents Introduction 10 Organization of This Document 10 See Also 11 Part I: Project Organization 12 Overview of an Xcode Project 13 Components of an Xcode Project

More information

Im360 SDK ios v5.x and newer

Im360 SDK ios v5.x and newer im360 ios Mobile PDF generated using the open source mwlib toolkit. See http://code.pediapress.com/ for more information. PDF generated at: Thu, 13 Feb 2014 01:54:30 UTC Im360 SDK ios v5.x and newer 1

More information

QCD as a Video Game?

QCD as a Video Game? QCD as a Video Game? Sándor D. Katz Eötvös University Budapest in collaboration with Győző Egri, Zoltán Fodor, Christian Hoelbling Dániel Nógrádi, Kálmán Szabó Outline 1. Introduction 2. GPU architecture

More information

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group

Shader Model 3.0. Ashu Rege. NVIDIA Developer Technology Group Shader Model 3.0 Ashu Rege NVIDIA Developer Technology Group Talk Outline Quick Intro GeForce 6 Series (NV4X family) New Vertex Shader Features Vertex Texture Fetch Longer Programs and Dynamic Flow Control

More information

Web Editing Tutorial. Copyright 1995-2010 Esri All rights reserved.

Web Editing Tutorial. Copyright 1995-2010 Esri All rights reserved. Copyright 1995-2010 Esri All rights reserved. Table of Contents Tutorial: Creating a Web editing application........................ 3 Copyright 1995-2010 Esri. All rights reserved. 2 Tutorial: Creating

More information

OpenGL Performance Tuning

OpenGL Performance Tuning OpenGL Performance Tuning Evan Hart ATI Pipeline slides courtesy John Spitzer - NVIDIA Overview What to look for in tuning How it relates to the graphics pipeline Modern areas of interest Vertex Buffer

More information

OpenGL "Hello, world!"

OpenGL Hello, world! OpenGL "Hello, world!" by Ian Romanick This work is licensed under the Creative Commons Attribution Non-commercial Share Alike (by-nc-sa) License. To view a copy of this license, (a) visit http://creativecommons.org/licenses/by-nc-sa/3.0/;

More information

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine

Blender Notes. Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine Blender Notes Introduction to Digital Modelling and Animation in Design Blender Tutorial - week 9 The Game Engine The Blender Game Engine This week we will have an introduction to the Game Engine build

More information

Making natural looking Volumetric Clouds In Blender 2.48a

Making natural looking Volumetric Clouds In Blender 2.48a I think that everyone using Blender has made some trials about making volumetric clouds. The truth is that a kind of volumetric clouds is already available in Blender for a long time, thanks to the 3D

More information

A product of Byte Works, Inc. http://www.byteworks.us. Credits Programming Mike Westerfield. Art Karen Bennett. Documentation Mike Westerfield

A product of Byte Works, Inc. http://www.byteworks.us. Credits Programming Mike Westerfield. Art Karen Bennett. Documentation Mike Westerfield A product of Byte Works, Inc. http://www.byteworks.us Credits Programming Mike Westerfield Art Karen Bennett Documentation Mike Westerfield Copyright 2013 By The Byte Works, Inc. All Rights Reserved Apple,

More information

Website Builder Overview

Website Builder Overview Website Builder Overview The Website Builder tool gives users the ability to create and manage their own website, which can be used to communicate with students and parents outside of the classroom. Users

More information

Tutorial 9: Skeletal Animation

Tutorial 9: Skeletal Animation Tutorial 9: Skeletal Animation Summary In the last couple of tutorials, you ve seen how to create a scene graph, and implemented a simple animating cube robot using them. You re probably wondering how

More information

Start Developing ios Apps Today

Start Developing ios Apps Today Start Developing ios Apps Today Contents Introduction 6 Setup 7 Get the Tools 8 Review a Few Objective-C Concepts 9 Objects Are Building Blocks for Apps 9 Classes Are Blueprints for Objects 9 Objects Communicate

More information

Appendix K Introduction to Microsoft Visual C++ 6.0

Appendix K Introduction to Microsoft Visual C++ 6.0 Appendix K Introduction to Microsoft Visual C++ 6.0 This appendix serves as a quick reference for performing the following operations using the Microsoft Visual C++ integrated development environment (IDE):

More information

Your First App Store Submission

Your First App Store Submission Your First App Store Submission Contents About Your First App Store Submission 4 At a Glance 5 Enroll in the Program 5 Provision Devices 5 Create an App Record in itunes Connect 5 Submit the App 6 Solve

More information

Star Micronics Cloud Services ios SDK User's Manual

Star Micronics Cloud Services ios SDK User's Manual Star Micronics Cloud Services ios SDK User's Manual General Outline This document provides information about the Star Micronics Cloud Services ios SDK, showing guidelines for our customers to build the

More information

Blender addons ESRI Shapefile import/export and georeferenced raster import

Blender addons ESRI Shapefile import/export and georeferenced raster import Blender addons ESRI Shapefile import/export and georeferenced raster import This blender addon is a collection of 4 tools: ESRI Shapefile importer - Import point, pointz, polyline, polylinez, polygon,

More information

Character Creation You can customize a character s look using Mixamo Fuse:

Character Creation You can customize a character s look using Mixamo Fuse: Using Mixamo Fuse, Mixamo, and 3ds Max, you can create animated characters for use with FlexSim. Character Creation You can customize a character s look using Mixamo Fuse: After creating the character,

More information

Sprite Kit Programming Guide

Sprite Kit Programming Guide Sprite Kit Programming Guide Contents About Sprite Kit 9 At a Glance 10 Sprite Content is Drawn by Presenting Scenes Inside a Sprite View 11 A Node Tree Defines What Appears in a Scene 11 Textures Hold

More information

Aston University. School of Engineering & Applied Science

Aston University. School of Engineering & Applied Science CS2150 Aston University School of Engineering & Applied Science CS2150: Computer Graphics January Examinations 2010 Date: XXX Time: XXX Instructions to Candidates: 1. Answer Question ONE and any other

More information

The OpenGL Framebuffer Object Extension. Simon Green. NVIDIA Corporation

The OpenGL Framebuffer Object Extension. Simon Green. NVIDIA Corporation The OpenGL Framebuffer Object Extension Simon Green NVIDIA Corporation Overview Why render to texture? P-buffer / ARB render texture review Framebuffer object extension Examples Future directions Why Render

More information

Interaction. Triangles (Clarification) Choice of Programming Language. Display Lists. The CPU-GPU bus. CSCI 480 Computer Graphics Lecture 3

Interaction. Triangles (Clarification) Choice of Programming Language. Display Lists. The CPU-GPU bus. CSCI 480 Computer Graphics Lecture 3 CSCI 480 Computer Graphics Lecture 3 Triangles (Clarification) Interaction January 18, 2012 Jernej Barbic University of Southern California http://www-bcf.usc.edu/~jbarbic/cs480-s12/ [Angel Ch. 3] 1 Can

More information

Development of Computer Graphics and Digital Image Processing on the iphone Luciano Fagundes (luciano@babs2go.com.

Development of Computer Graphics and Digital Image Processing on the iphone Luciano Fagundes (luciano@babs2go.com. Development of Computer Graphics and Digital Image Processing on the iphone Luciano Fagundes (luciano@babs2go.com.br) Rafael Santos (rafael.santos@lac.inpe.br) Motivation ios Devices Dev Basics From Concept

More information

Beginning Android 4. Games Development. Mario Zechner. Robert Green

Beginning Android 4. Games Development. Mario Zechner. Robert Green Beginning Android 4 Games Development Mario Zechner Robert Green Contents Contents at a Glance About the Authors Acknowledgments Introduction iv xii xiii xiv Chapter 1: Android, the New Kid on the Block...

More information

ios Dev Crib Sheet In the Shadow of C

ios Dev Crib Sheet In the Shadow of C ios Dev Crib Sheet As you dive into the deep end of the ios development pool, the first thing to remember is that the mother ship holds the authoritative documentation for this endeavor http://developer.apple.com/ios

More information

NVFX : A NEW SCENE AND MATERIAL EFFECT FRAMEWORK FOR OPENGL AND DIRECTX. TRISTAN LORACH Senior Devtech Engineer SIGGRAPH 2013

NVFX : A NEW SCENE AND MATERIAL EFFECT FRAMEWORK FOR OPENGL AND DIRECTX. TRISTAN LORACH Senior Devtech Engineer SIGGRAPH 2013 NVFX : A NEW SCENE AND MATERIAL EFFECT FRAMEWORK FOR OPENGL AND DIRECTX TRISTAN LORACH Senior Devtech Engineer SIGGRAPH 2013 nvfx : Plan What is an Effect New Approach and new ideas of nvfx Examples Walkthrough

More information

The Rocket Steam Locomotive - Animation

The Rocket Steam Locomotive - Animation Course: 3D Design Title: Rocket Steam Locomotive - Animation Blender: Version 2.6X Level: Beginning Author; Neal Hirsig (nhirsig@tufts.edu) (May 2012) The Rocket Steam Locomotive - Animation In this tutorial

More information

Please note that this SDK will only work with Xcode 3.2.5 or above. If you need an SDK for an older Xcode version please email support.

Please note that this SDK will only work with Xcode 3.2.5 or above. If you need an SDK for an older Xcode version please email support. Mobile Application Analytics ios SDK Instructions SDK version 3.0 Updated: 12/28/2011 Welcome to Flurry Analytics! This file contains: 1. Introduction 2. Integration Instructions 3. Optional Features 4.

More information

How To Use An Amd Graphics Card In Greece 2.5.1 And 2.4.1 (Amd) With Greege 2.3.5 (Greege) With An Amd Greeper 2.2.

How To Use An Amd Graphics Card In Greece 2.5.1 And 2.4.1 (Amd) With Greege 2.3.5 (Greege) With An Amd Greeper 2.2. AMD GPU Association Targeting GPUs for Load Balancing in OpenGL The contents of this document are provided in connection with Advanced Micro Devices, Inc. ( AMD ) products. THE INFORMATION IN THIS PUBLICATION

More information

Sweet Home 3D user's guide

Sweet Home 3D user's guide 1 de 14 08/01/2013 13:08 Features Download Online Gallery Blog Documentation FAQ User's guide Video tutorial Developer's guides History Reviews Support 3D models Textures Translations Forum Report a bug

More information

MovieClip, Button, Graphic, Motion Tween, Classic Motion Tween, Shape Tween, Motion Guide, Masking, Bone Tool, 3D Tool

MovieClip, Button, Graphic, Motion Tween, Classic Motion Tween, Shape Tween, Motion Guide, Masking, Bone Tool, 3D Tool 1 CEIT 323 Lab Worksheet 1 MovieClip, Button, Graphic, Motion Tween, Classic Motion Tween, Shape Tween, Motion Guide, Masking, Bone Tool, 3D Tool Classic Motion Tween Classic tweens are an older way of

More information

OpenGL Insights. Edited by. Patrick Cozzi and Christophe Riccio

OpenGL Insights. Edited by. Patrick Cozzi and Christophe Riccio OpenGL Insights Edited by Patrick Cozzi and Christophe Riccio ARB debug output: A Helping Hand for Desperate Developers 33 António Ramires Fernandes and Bruno Oliveira 33.1 Introduction Since the inception

More information

4D Plugin SDK v11. Another minor change, real values on 10 bytes is no longer supported.

4D Plugin SDK v11. Another minor change, real values on 10 bytes is no longer supported. 4D Plugin SDK v11 4D Plugin API 4D Plugin API v11 is a major upgrade of 4D Plugin API. The two major modifications are that it is now fully Unicode compliant, and that it gives support to the new 4D pictures.

More information

Maya 2014 Still Life Part 1 Texturing & Lighting

Maya 2014 Still Life Part 1 Texturing & Lighting Maya 2014 Still Life Part 1 Texturing & Lighting Realistic lighting and texturing is the key to photorealism in your 3D renders. Objects and scenes with relatively simple geometry can look amazing with

More information

Praktikum Entwicklung von Mediensystemen mit

Praktikum Entwicklung von Mediensystemen mit Praktikum Entwicklung von Mediensystemen mit Wintersemester 2013/2014 Christian Weiß, Dr. Alexander De Luca Today Organization Introduction to ios programming Hello World Assignment 1 2 Organization 6

More information

Overview of the Adobe Flash Professional CS6 workspace

Overview of the Adobe Flash Professional CS6 workspace Overview of the Adobe Flash Professional CS6 workspace In this guide, you learn how to do the following: Identify the elements of the Adobe Flash Professional CS6 workspace Customize the layout of the

More information

Hands-On Lab. Building a Data-Driven Master/Detail Business Form using Visual Studio 2010. Lab version: 1.0.0. Last updated: 12/10/2010.

Hands-On Lab. Building a Data-Driven Master/Detail Business Form using Visual Studio 2010. Lab version: 1.0.0. Last updated: 12/10/2010. Hands-On Lab Building a Data-Driven Master/Detail Business Form using Visual Studio 2010 Lab version: 1.0.0 Last updated: 12/10/2010 Page 1 CONTENTS OVERVIEW... 3 EXERCISE 1: CREATING THE APPLICATION S

More information

ios App Development for Everyone

ios App Development for Everyone ios App Development for Everyone Kevin McNeish Table of Contents Chapter 2 Objective C (Part 1) When I first started writing ios Apps, coding in Objective-C was somewhat painful. Like stuck-in-acheckout-line-behind-the-old-woman-writing-a-personal-check

More information

Quick Start Guide Simple steps for editing and manipulating your photo.

Quick Start Guide Simple steps for editing and manipulating your photo. PhotoPlus Quick Start Guide Simple steps for editing and manipulating your photo. In this guide, we will refer to specific tools, toolbars, tabs, or menus. Use this visual reference to help locate them

More information

An Introduction to. Graphics Programming

An Introduction to. Graphics Programming An Introduction to Graphics Programming with Tutorial and Reference Manual Toby Howard School of Computer Science University of Manchester V3.3, January 13, 2010 Contents 1 About this manual 1 1.1 How

More information

IV3Dm provides global settings which can be set prior to launching the application and are available through the device settings menu.

IV3Dm provides global settings which can be set prior to launching the application and are available through the device settings menu. ImageVis3D Mobile This software can be used to display and interact with different kinds of datasets - such as volumes or meshes - on mobile devices, which currently includes iphone and ipad. A selection

More information

TakeMySelfie ios App Documentation

TakeMySelfie ios App Documentation TakeMySelfie ios App Documentation What is TakeMySelfie ios App? TakeMySelfie App allows a user to take his own picture from front camera. User can apply various photo effects to the front camera. Programmers

More information

An Introduction to Modern Software Development Tools Creating A Simple GUI-Based Tool Appleʼs XCode Version 3.2.6

An Introduction to Modern Software Development Tools Creating A Simple GUI-Based Tool Appleʼs XCode Version 3.2.6 1 2 3 4 An Introduction to Modern Software Development Tools Creating A Simple GUI-Based Tool Appleʼs XCode Version 3.2.6 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Charles J. Ammon / Penn State August, 2011

More information

Open icon. The Select Layer To Add dialog opens. Click here to display

Open icon. The Select Layer To Add dialog opens. Click here to display Mosaic Introduction This tour guide gives you the steps for mosaicking two or more image files to produce one image file. The mosaicking process works with rectified and/or calibrated images. Here, you

More information

Copyright 2010 The Pragmatic Programmers, LLC.

Copyright 2010 The Pragmatic Programmers, LLC. Extracted from: ipad Programming A Quick-Start Guide for iphone Developers This PDF file contains pages extracted from ipad Programming, published by the Pragmatic Bookshelf. For more information or to

More information

MA-WA1920: Enterprise iphone and ipad Programming

MA-WA1920: Enterprise iphone and ipad Programming MA-WA1920: Enterprise iphone and ipad Programming Description This 5 day iphone training course teaches application development for the ios platform. It covers iphone, ipad and ipod Touch devices. This

More information

Creating OpenGL applications that use GLUT

Creating OpenGL applications that use GLUT Licenciatura em Engenharia Informática e de Computadores Computação Gráfica Creating OpenGL applications that use GLUT Short guide to creating OpenGL applications in Windows and Mac OSX Contents Obtaining

More information

Knappsack ios Build and Deployment Guide

Knappsack ios Build and Deployment Guide Knappsack ios Build and Deployment Guide So you want to build and deploy an ios application to Knappsack? This guide will help walk you through all the necessary steps for a successful build and deployment.

More information

Graphic Objects and Loading Them into TGF2/MMF2

Graphic Objects and Loading Them into TGF2/MMF2 Graphic Objects and Loading Them into TGF2/MMF2 There are a couple of ways of ensuring graphics appear in a game. Types of objects you can use: Active Object: Consider the active object any image that

More information

The mouse callback. Positioning. Working with Callbacks. Obtaining the window size. Objectives

The mouse callback. Positioning. Working with Callbacks. Obtaining the window size. Objectives Objectives Working with Callbacks Learn to build interactive programs using GLUT callbacks - Mouse - Keyboard - Reshape Introduce menus in GLUT The mouse callback glutmousefunc(mymouse) void mymouse(glint

More information

Publishing Geoprocessing Services Tutorial

Publishing Geoprocessing Services Tutorial Publishing Geoprocessing Services Tutorial Copyright 1995-2010 Esri All rights reserved. Table of Contents Tutorial: Publishing a geoprocessing service........................ 3 Copyright 1995-2010 ESRI,

More information

Chapter 1. Xcode Projects

Chapter 1. Xcode Projects Chapter 1 Xcode Projects Every program you create in Xcode requires a project, even a simple command-line program with one file. Because every program requires a project, covering projects is a good way

More information

Finger Paint: Cross-platform Augmented Reality

Finger Paint: Cross-platform Augmented Reality Finger Paint: Cross-platform Augmented Reality Samuel Grant Dawson Williams October 15, 2010 Abstract Finger Paint is a cross-platform augmented reality application built using Dream+ARToolKit. A set of

More information

geniusport mobility training experts

geniusport mobility training experts geniu po About Geniusport: GeniusPort is a Pioneer and India's No. 1 Training Center for Mobile Technologies like Apple ios, Google Android and Windows 8 Applications Development. A one stop destination

More information

Scripting in Unity3D (vers. 4.2)

Scripting in Unity3D (vers. 4.2) AD41700 Computer Games Prof. Fabian Winkler Fall 2013 Scripting in Unity3D (vers. 4.2) The most basic concepts of scripting in Unity 3D are very well explained in Unity s Using Scripts tutorial: http://docs.unity3d.com/documentation/manual/scripting42.html

More information

Secrets of Event Viewer for Active Directory Security Auditing Lepide Software

Secrets of Event Viewer for Active Directory Security Auditing Lepide Software Secrets of Event Viewer for Active Directory Security Auditing Windows Event Viewer doesn t need any introduction to the IT Administrators. However, some of its hidden secrets, especially those related

More information

ios App Performance Things to Take Care

ios App Performance Things to Take Care ios App Performance Things to Take Care Gurpreet Singh Sachdeva Engineering Manager @ Yahoo Who should attend this session? If you are developing or planning to develop ios apps and looking for tips to

More information

LionPATH Mobile: Android

LionPATH Mobile: Android LionPATH Mobile: Android LionPATH Mobile lets you use your mobile device to view class and grade information. The LionPATH Mobile app is available in the public app store for Android. Installation will

More information

HOW TO LINK AND PRESENT A 4D MODEL USING NAVISWORKS. Timo Hartmann t.hartmann@ctw.utwente.nl

HOW TO LINK AND PRESENT A 4D MODEL USING NAVISWORKS. Timo Hartmann t.hartmann@ctw.utwente.nl Technical Paper #1 HOW TO LINK AND PRESENT A 4D MODEL USING NAVISWORKS Timo Hartmann t.hartmann@ctw.utwente.nl COPYRIGHT 2009 VISICO Center, University of Twente visico@utwente.nl How to link and present

More information

Illustration 1: Diagram of program function and data flow

Illustration 1: Diagram of program function and data flow The contract called for creation of a random access database of plumbing shops within the near perimeter of FIU Engineering school. The database features a rating number from 1-10 to offer a guideline

More information

ios Audio Programming Guide

ios Audio Programming Guide ios Audio Programming Guide A Guide to Developing Applications for Real-time Audio Processing and Playback izotope, Inc. izotope ios Audio Programming Guide This document is meant as a guide to developing

More information

Assignment I Walkthrough

Assignment I Walkthrough Assignment I Walkthrough Objective Reproduce the demonstration (building a calculator) given in class. Goals 1. Downloading and installing the ios4 SDK. 2. Creating a new project in Xcode. 3. Defining

More information

Introduction to iphone Development

Introduction to iphone Development Introduction to iphone Development Introduction to iphone Development Contents Task 1 2 3 4 Application Runtime Core Architecture and Life-cycles What s in a bundle? The resources in an app bundle Customizing

More information

Optimizing AAA Games for Mobile Platforms

Optimizing AAA Games for Mobile Platforms Optimizing AAA Games for Mobile Platforms Niklas Smedberg Senior Engine Programmer, Epic Games Who Am I A.k.a. Smedis Epic Games, Unreal Engine 15 years in the industry 30 years of programming C64 demo

More information

www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk

www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling

More information

Linear Referencing Tutorial

Linear Referencing Tutorial Copyright 1995-2010 Esri All rights reserved. Table of Contents An overview of the linear referencing tutorial........................ 3 Exercise 1: Organizing your linear referencing data in ArcCatalog...............

More information

Unit and Functional Testing for the ios Platform. Christopher M. Judd

Unit and Functional Testing for the ios Platform. Christopher M. Judd Unit and Functional Testing for the ios Platform Christopher M. Judd Christopher M. Judd President/Consultant of leader Columbus Developer User Group (CIDUG) Remarkable Ohio Free Developed for etech Ohio

More information

Working With Animation: Introduction to Flash

Working With Animation: Introduction to Flash Working With Animation: Introduction to Flash With Adobe Flash, you can create artwork and animations that add motion and visual interest to your Web pages. Flash movies can be interactive users can click

More information

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C Embedded Systems A Review of ANSI C and Considerations for Embedded C Programming Dr. Jeff Jackson Lecture 2-1 Review of ANSI C Topics Basic features of C C fundamentals Basic data types Expressions Selection

More information

Copyright 2006 TechSmith Corporation. All Rights Reserved.

Copyright 2006 TechSmith Corporation. All Rights Reserved. TechSmith Corporation provides this manual as is, makes no representations or warranties with respect to its contents or use, and specifically disclaims any expressed or implied warranties or merchantability

More information

MicroStation V8i Training Manual 3D Level 3

MicroStation V8i Training Manual 3D Level 3 You are viewing sample pages from our textbook: MicroStation V8i Training Manual 3D Level 3 The sample subject matter includes pages from Modules 15 and 17, and range from material assignments and attachment,

More information

Customizing Confirmation Text and Emails for Donation Forms

Customizing Confirmation Text and Emails for Donation Forms Customizing Confirmation Text and Emails for Donation Forms You have complete control over the look & feel and text used in your donation confirmation emails. Each form in Sphere generates its own confirmation

More information

Praktikum Entwicklung von Mediensystemen mit ios

Praktikum Entwicklung von Mediensystemen mit ios Praktikum Entwicklung von Mediensystemen mit ios WS 2011 Prof. Dr. Michael Rohs michael.rohs@ifi.lmu.de MHCI Lab, LMU München Today Alerts, Action Sheets, text input Application architecture Table views

More information