10
votes

iPhone: superposez une vue transparente opengl au-dessus d'un UIView?

Je travaille sur l'application iPhone et j'ai une vue sur OpenGL Rendu sur un UIView régulier. Cela fonctionne, mais je ne peux pas sembler obtenir la vue OpenGL pour avoir un arrière-plan transparent qui montre l'UIView en dessous. Au lieu de cela, je reçois une grosse boîte noire.

J'ai essayé de régler la couleur d'arrière-plan à Uicolor ClearColor, j'ai défini opaque à non, j'ai défini Glclearcolor sur 0,0,0,0,0,0,0,0,0.0.

Je pense que je suis mal compris / abuser des quelque chose liés aux modes de mélange, mais je ne suis pas sûr. Quelqu'un peut-il me donner un peu de code qui montre comment faire cela?

Merci d'avance.


1 commentaires

Avez-vous déjà eu ce travail? J'ai un problème similaire. J'utilise keaglcolorformatrgba8 dans des pure-propres.


3 Réponses :


2
votes

Vérifiez le format de couleur de votre vue. Si vous l'avez défini sur keaglcolorformatrgb565 via le dictionnaire drawableProperties , le canal alpha du contenu de la vue sera traité implicitement comme 1,0, quel que soit ce que vous en tirez. < / p>


0 commentaires

12
votes

Voici ce que je devais faire pour que cela fonctionne pour travailler:

eaglLayer.opaque = NO;      
eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
                                kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];
glClearColor(0.0f, 0.0f, 0.0f, 0.0f);


2 commentaires

J'ai trouvé que les "diguesProperties" étaient inutiles dans iOS 5 et plus


Cependant ... je veux souligner que vous devez appeler "opaque = n °" dans "ViewDidLoad" ou similaire - Si vous le définissez dans le fichier NIB, Apple écrase en silence à l'exécution (mal!)



4
votes

ajoutez ceux dans eagglview.m xxx


0 commentaires