Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Browse files Browse the repository at this point in the history
SDL_uikitopengles is responsible for OpenGLES related functions in th…
…e UIKit video driver. The main thing to note is UIKit_GL_CreateContext which creates an instance of the SDL_uikitopenglview class, an OpenGL ES View. Most the real functionality is in SDL_uikitopenglview.
  • Loading branch information
Holmes Futrell committed Jul 17, 2008
1 parent 0d76765 commit 6083f7e
Show file tree
Hide file tree
Showing 2 changed files with 115 additions and 0 deletions.
23 changes: 23 additions & 0 deletions src/video/uikit/SDL_uikitopengles.h
@@ -0,0 +1,23 @@
/*
* SDL_uikitopengles.h
* iPodSDL
*
* Created by Holmes Futrell on 5/29/08.
* Copyright 2008 __MyCompanyName__. All rights reserved.
*
*/

#include "SDL_config.h"

#ifndef _SDL_uikitopengles
#define _SDL_uikitopengles

#include "SDL_uikitvideo.h"

extern int UIKit_GL_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context);
extern void UIKit_GL_SwapWindow(_THIS, SDL_Window * window);
extern SDL_GLContext UIKit_GL_CreateContext(_THIS, SDL_Window * window);
extern void UIKit_GL_DeleteContext(_THIS, SDL_GLContext context);
extern void *UIKit_GL_GetProcAddress(_THIS, const char *proc);
extern int UIKit_GL_LoadLibrary(_THIS, const char *path);
#endif
92 changes: 92 additions & 0 deletions src/video/uikit/SDL_uikitopengles.m
@@ -0,0 +1,92 @@
/*
* SDL_uikitopengles.c
* iPodSDL
*
* Created by Holmes Futrell on 5/29/08.
* Copyright 2008 __MyCompanyName__. All rights reserved.
*
*/

#include "SDL_uikitopengles.h"
#include "SDL_uikitopenglview.h"
#include "jump.h"
#include "SDL_sysvideo.h"
#include "SDL_loadso.h"
#include <dlfcn.h>

extern SDL_uikitopenglview *uikitEAGLView;
extern UIWindow *uikitWindow;

static int UIKit_GL_Initialize(_THIS);

void *
UIKit_GL_GetProcAddress(_THIS, const char *proc)
{
/* Look through all SO's for the proc symbol. Here's why:
-Looking for the path to the OpenGL Library seems not to work in the iPhone Simulator.
-We don't know that the path won't change in the future.
*/
return SDL_LoadFunction(RTLD_DEFAULT, proc);
}

int UIKit_GL_MakeCurrent(_THIS, SDL_Window * window, SDL_GLContext context)
{
[uikitEAGLView setCurrentContext];
return 0;
}

int
UIKit_GL_LoadLibrary(_THIS, const char *path)
{
/* shouldn't be passing a path into this function */
if (path != NULL) {
SDL_SetError("iPhone GL Load Library just here for compatibility");
return -1;
}
return 0;
}


void UIKit_GL_SwapWindow(_THIS, SDL_Window * window)
{

[uikitEAGLView swapBuffers];

/* since now we've got something to draw
make the window visible */
[uikitWindow makeKeyAndVisible];

/* we need to let the event cycle run, or the OS won't update the OpenGL view! */
SDL_PumpEvents();

}

SDL_GLContext UIKit_GL_CreateContext(_THIS, SDL_Window * window)
{

uikitEAGLView = [[SDL_uikitopenglview alloc] initWithFrame: [[UIScreen mainScreen] applicationFrame] \
retainBacking: _this->gl_config.retained_backing \
rBits: _this->gl_config.red_size \
gBits: _this->gl_config.green_size \
bBits: _this->gl_config.blue_size \
aBits: _this->gl_config.alpha_size \
depthBits: _this->gl_config.depth_size];

[uikitWindow addSubview: [uikitEAGLView autorelease]];
uikitEAGLView.multipleTouchEnabled = YES;

if ( UIKit_GL_MakeCurrent(_this, window, NULL) < 0 ) {
//Cocoa_GL_DeleteContext(_this, context);
return NULL;
}

return [uikitEAGLView context];
}

void UIKit_GL_DeleteContext(_THIS, SDL_GLContext context)
{

return;
}


0 comments on commit 6083f7e

Please sign in to comment.