Рисуем UIImage используя OpenGL из подкласса UIView - PullRequest
1 голос
/ 23 апреля 2011

Я просто пытаюсь нарисовать backgroung_pic.png на весь вид, используя OpenGL.Пожалуйста помоги!Я новичок в OpenGL и пытаюсь создать приложение для фотошопа, и я только учусь OpenGL для рисования изображений.

Мой код пока что.

[EAGLContext setCurrentContext:context];

CGContextRef    imageContext;
GLubyte         *imageData;
size_t          width, height;
CGImageRef      backgroundImage;

backgroundImage = [UIImage imageNamed:@"background_pic.png"].CGImage;

// Get the width and height of the image
width = CGImageGetWidth(backgroundImage);
height = CGImageGetHeight(backgroundImage);

// Make sure the image exists
if(backgroundImage) {
    // Allocate  memory needed for the bitmap context
    imageData = (GLubyte *) calloc(width * height * 4, sizeof(GLubyte));
    // Use  the bitmatp creation function provided by the Core Graphics framework. 
    imageContext = CGBitmapContextCreate(imageData, width, height, 8, width * 4, CGImageGetColorSpace(backgroundImage), kCGImageAlphaPremultipliedLast);
    // After you create the context, you can draw the  image to the context.
    CGContextDrawImage(imageContext, CGRectMake(0.0, 0.0, (CGFloat)width, (CGFloat)height), backgroundImage);
    // You don't need the context at this point, so you need to release it to avoid memory leaks.
    CGContextRelease(imageContext);

    //I'm thinking the drawing goes in here

    free(imageData);
}

// Display the buffer
glBindRenderbufferOES(GL_RENDERBUFFER_OES, viewRenderbuffer);
[context presentRenderbuffer:GL_RENDERBUFFER_OES];
...