Mercurial > sdlxcode4templates
changeset 1:545ef7038418 tip
Added initial template for iOS. It still doesn't work. I don't know how to add a library (not framework dependency). I think the library should be embedded in the template.
For Mac, embedding the framework in the template might be a good idea too, but I don't know how to embed that either. And I don't know how to access the copy bundle phase to copy the framework into the app bundle.
author | Eric Wing <ewing . public |-at-| gmail . com> |
---|---|
date | Sun, 02 Oct 2011 21:41:39 -0700 |
parents | b0b91cadc484 |
children | |
files | SDL 1.3 iOS Application.xctemplate/Default.png SDL 1.3 iOS Application.xctemplate/TemplateInfo.plist SDL 1.3 iOS Application.xctemplate/main.c |
diffstat | 3 files changed, 187 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SDL 1.3 iOS Application.xctemplate/TemplateInfo.plist Sun Oct 02 21:41:39 2011 -0700 @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>Ancestors</key> + <array> + <string>org.libsdl.SDLApplicationBase</string> + <string>com.apple.dt.unit.iPhoneBase</string> + </array> + <key>Identifier</key> + <string>org.libsdl.SDL13ApplicationiOS</string> + <key>Kind</key> + <string>Xcode.Xcode3.ProjectTemplateUnitKind</string> + <key>Targets</key> + <array> + <dict> + <key>Frameworks</key> + <array> + <string>UIKit</string> + <string>Foundation</string> + <string>AudioToolbox</string> + <string>QuartzCore</string> + <string>OpenGLES</string> + <string>CoreGraphics</string> + </array> + <key>BuildPhases</key> + <array> + <dict> + <key>Class</key> + <string>Sources</string> + </dict> + <dict> + <key>Class</key> + <string>Frameworks</string> + </dict> + <dict> + <key>Class</key> + <string>Resources</string> + </dict> + </array> + <key>Configurations</key> + <dict> + <key>Debug</key> + <dict> + <key>COPY_PHASE_STRIP</key> + <string>NO</string> + <key>GCC_DYNAMIC_NO_PIC</key> + <string>NO</string> + </dict> + <key>Release</key> + <dict> + <key>COPY_PHASE_STRIP</key> + <string>YES</string> + </dict> + </dict> + <key>ProductType</key> + <string>com.apple.product-type.application</string> + <key>SharedSettings</key> + <dict/> + </dict> + </array> + <key>Concrete</key> + <true/> + <key>Definitions</key> + <dict> + <key>main.c</key> + <dict> + <key>Group</key> + <string>Supporting Files</string> + <key>Path</key> + <string>main.c</string> + </dict> + <key>Default.png</key> + <dict> + <key>Group</key> + <string>Resources</string> + <key>Path</key> + <string>Default.png</string> + </dict> + </dict> + <key>Nodes</key> + <array> + <string>main.c</string> + <string>Default.png</string> + </array> + <key>Description</key> + <string>This template provides a starting point for an application that uses SDL 1.3 for iOS.</string> +</dict> +</plist>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SDL 1.3 iOS Application.xctemplate/main.c Sun Oct 02 21:41:39 2011 -0700 @@ -0,0 +1,98 @@ +/* + * rectangles.c + * written by Holmes Futrell + * use however you want + */ + +#include "SDL.h" +#include <time.h> + +#define SCREEN_WIDTH 320 +#define SCREEN_HEIGHT 480 + +int +randomInt(int min, int max) +{ + return min + rand() % (max - min + 1); +} + +void +render(SDL_Renderer *renderer) +{ + + Uint8 r, g, b; + + /* Clear the screen */ + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); + SDL_RenderClear(renderer); + + /* Come up with a random rectangle */ + SDL_Rect rect; + rect.w = randomInt(64, 128); + rect.h = randomInt(64, 128); + rect.x = randomInt(0, SCREEN_WIDTH); + rect.y = randomInt(0, SCREEN_HEIGHT); + + /* Come up with a random color */ + r = randomInt(50, 255); + g = randomInt(50, 255); + b = randomInt(50, 255); + SDL_SetRenderDrawColor(renderer, r, g, b, 255); + + /* Fill the rectangle in the color */ + SDL_RenderFillRect(renderer, &rect); + + /* update screen */ + SDL_RenderPresent(renderer); +} + +int +main(int argc, char *argv[]) +{ + + SDL_Window *window; + SDL_Renderer *renderer; + int done; + SDL_Event event; + + /* initialize SDL */ + if (SDL_Init(SDL_INIT_VIDEO) < 0) { + printf("Could not initialize SDL\n"); + return 1; + } + + /* seed random number generator */ + srand(time(NULL)); + + /* create window and renderer */ + window = + SDL_CreateWindow(NULL, 0, 0, SCREEN_WIDTH, SCREEN_HEIGHT, + SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN); + if (!window) { + printf("Could not initialize Window\n"); + return 1; + } + + renderer = SDL_CreateRenderer(window, -1, 0); + if (!renderer) { + printf("Could not create renderer\n"); + return 1; + } + + /* Enter render loop, waiting for user to quit */ + done = 0; + while (!done) { + while (SDL_PollEvent(&event)) { + if (event.type == SDL_QUIT) { + done = 1; + } + } + render(renderer); + SDL_Delay(1); + } + + /* shutdown SDL */ + SDL_Quit(); + + return 0; +}