Освободить текстуры (объекты GLKTextureInfo), выделенные GLKTextureLoader

Новое в разработке для iOS и, в частности, новые функции, связанные с OpenGL, в iOS 5, поэтому прошу прощения, если какой-либо из моих вопросов настолько прост.

Приложение, над которым я работаю, предназначено для приема кадров камеры и отображения их на экране через OpenGL ES (графические специалисты возьмут на себя это и добавят фактический рисунок OpenGL, о котором я очень мало знаю). Приложение разработано XCode4, а целью является iPhone4 под управлением iOS 5. На данный момент я использовал функции ARC и GLKit, и все работает нормально, за исключением утечки памяти при загрузке изображений в виде текстуры. Очень скоро приложение получит «предупреждение о памяти».

В частности, я хотел бы спросить, как освободить текстуры, выделенные

@property(retain) GLKTextureInfo *texture;

-(void)setTextureCGImage:(CGImageRef)image 
{
    NSError *error;

    self.texture = [GLKTextureLoader textureWithCGImage:image options:nil error:&error];

    if (error) 
    {
        NSLog(@"Error loading texture from image: %@",error);
    }
}

Изображение - это кварцевое изображение, созданное из кадра камеры (пример кода от Apple). Я знаю, что проблема не в этой части кода, поскольку, если я отключу назначение, приложение не получит предупреждение.

11
задан RedBlueThing 4 April 2013 в 01:30
поделиться