#import <UIKit/UIKit.h>
#import <OpenGLES/EAGL.h>
#import <OpenGLES/ES1/gl.h>
#import <OpenGLES/ES1/glext.h>

#import "drawContext.h"

/*
 This class wraps the CAEAGLLayer from CoreAnimation into a convenient UIView subclass.
 The view content is basically an EAGL surface you render your OpenGL scene into.
 Note that setting the view non-opaque will only work if the EAGL surface has an alpha channel.
 */
@interface EAGLView : UIView {

  @private
  /* The pixel dimensions of the backbuffer */
  GLint backingWidth;
  GLint backingHeight;

  EAGLContext *context;

  /* OpenGL names for the renderbuffer and framebuffers used to render to this view */
  GLuint viewRenderbuffer, viewFramebuffer;

  /* OpenGL name for the depth buffer that is attached to viewFramebuffer, if it
     exists (0 if it does not exist) */
  GLuint depthRenderbuffer;

  BOOL rendering;

  @public
  /* our GModel drawing class */
  drawContext *mContext;
  BOOL rotate;
}

- (void)drawView;

- (void)load:(NSString*) file;

@end
