开发者

Is it possible to make an OpenGL ES layer transparent?

开发者 https://www.devze.com 2023-01-06 04:05 出处:网络
Is it possible to make the backgroun开发者_如何转开发d of an OpenGL ES layer transparent so you can see what is behind the OpenGL ES content? You have to do two things:

Is it possible to make the backgroun开发者_如何转开发d of an OpenGL ES layer transparent so you can see what is behind the OpenGL ES content?


You have to do two things:

  1. When you initialize your CAEAGLLayer, set the opaque property to NO (or FALSE).

    You may also need to make sure your drawableProperties uses a color format that supports transparency (kEAGLColorFormatRGBA8 does, but kEAGLColorFormatRGB565 does not).

    eaglLayer.opaque = NO;

    eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking, kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];

    If you are using XCode's OpenGL project template, this will be in [EAGLView's initWithCoder].

  2. Draw the background in a transparent color and alpha.

    glClearColor(0.0f, 0.0f, 0.0f, 0.0f);

    If you are using XCode's OpenGL project template, this will be in the "render" methods: [ES1Renderer render] and [ES2Renderer render].
0

精彩评论

暂无评论...
验证码 换一张
取 消