]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/iphone/glcanvas.mm
bracketing msw enhanced metafile usage
[wxWidgets.git] / src / osx / iphone / glcanvas.mm
index 98e97dcc7942e964ab6dd9239ce6f41163639a99..ca71c5bda33fd6db03f3a7f1b9d971d2fb793c6d 100644 (file)
@@ -46,6 +46,7 @@
 
 @interface wxUICustomOpenGLView : UIView
 {
+    CGRect oldRect;
     EAGLContext* context;
 
     /* The pixel dimensions of the backbuffer */
@@ -61,6 +62,7 @@
 
 - (BOOL) createFramebuffer;
 - (void) destroyFramebuffer;
+- (id) initWithFrame:(CGRect) rect;
 
 @end
 
     }
 }
 
+- (id) initWithFrame:(CGRect)rect
+{
+    if ( !(self=[super initWithFrame:rect]) )
+        return nil;
+    
+    oldRect = rect;
+    return self;
+}
+
 - (BOOL)isOpaque
 {
     return YES;
 - (void) setContext:(EAGLContext*) ctx {
     context = ctx;
     [EAGLContext setCurrentContext:ctx];
-    [self destroyFramebuffer];
-    [self createFramebuffer];
+#if 0
+    CGRect newRect = [self frame];
+    if ( /* (CGRectEqualToRect(newRect, oldRect) == NO && ![self isHidden] && newRect.size.width > 0 && newRect.size.height > 0 ) 
+        || */ viewFramebuffer == 0 )
+    {
+        [self destroyFramebuffer];
+        [self createFramebuffer];        
+    }
+#endif
     glBindFramebufferOES(GL_FRAMEBUFFER_OES, viewFramebuffer);
 }
  
     [context presentRenderbuffer:GL_RENDERBUFFER_OES];
 }
 
+- (void)layoutSubviews {
+    [EAGLContext setCurrentContext:context];
+    [self destroyFramebuffer];
+    [self createFramebuffer];
+}
+
 @end