Tag: eaglview

检查iOS XCode项目文件:GLKit的openGL粒子发射器

我试图将Michael Daley的粒子发射器移植到GLKView, 并在github上find了一个XCode项目,不幸的是,这个项目在一个漂亮的小游戏里面很严重。 现在我试着只把粒子发射器从他的游戏项目中重新使用(我需要它在2D中),我把它做成了一个没有任何编译错误的状态 – 但是看不到任何东西。 这是项目文件 。 有谁能告诉我为什么没有粒子发射器可见? 日Thnx!

EAGLView到UIImage计时问题

我有一个EAGLView,我想转换成一个UIImage。 我可以用这里发布的解决scheme来做到这一点: 如何从EAGLView获取UIImage? 但是,如果在创buildEAGLView和UIImage之间经过一段时间,我只能做到这一点。 这个代码创build了一个EAGLView,然后是一个UIImageView,但是不能正常工作: EAGLView *EAGLphoto = [[EAGLView alloc] initWithImage:photo.workAreaImage]; [theWorkArea.photoArea1 addSubview:EAGLphoto]; //I put a glfinish() here but it didn't help UIImageView *photoView = [[UIImageView alloc] initWithImage:[self glToUIImage]]; //glToUIImage is taken from the link above [theWorkArea.photoArea2 addSubview:photoView]; 我假设UIImageView尝试在EAGLView完成创build之前创build。 我试图把glfinish()放在中间,但是什么也没做。 当我运行代码时,EAGLView显示正常,但UIImageView显示为黑色。 但是,上述代码的这个修改版本的工作原理是: EAGLView *EAGLphoto = [[EAGLView alloc] initWithImage:photo.workAreaImage]; [theWorkArea.photoArea1 addSubview:EAGLphoto]; [self performSelector:@selector(getUIImage) withObject:nil afterDelay:0.1]; – […]

多个EAGLViews,但每个纹理只有一个副本 – 如何?

我有一个在iPad上运行的应用程序,它使用了大量的纹理,渲染成一个EAGLView。 现在我需要第二个EAGLView,与第一个共享纹理。 我可以在屏幕上通过修复苹果代码中的一些devise错误(例如,默认的ViewController需要一些调整来支持多个子EAGLView对象)来同时呈现两个视图。 但是我无法获得共享的纹理。 我不能复制纹理(这会增加内存使用量,而且我们已经使用了大部分内存)。 我找不到任何有关如何在多个EAGLView之间共享纹理的文档 – 有一些“提示”,这就是EAGLShareGroup的作用,允许每个GLView有自己的上下文,但是共享一个ShareGroup的两个上下文没有明确的我可以find。 我试着按照这个问题的答案: 如果使用多个EAGLViews,则不绘制纹理 …但这不是一个真正的答案。 它指出EAGLSharegroup没有真正解释如何使用它 – 这似乎没有任何区别。 它也间接地指向了一个关于从多个线程渲染的页面 – 这是一个完全不同的问题,我没有任何列出的问题(应用程序崩溃等)。

EAGLView到UIImage颜色转换问题

我有一个EAGLView(取自苹果的例子),我可以成功地转换为UIImage使用此代码: – (UIImage *)glToUIImage:(CGSize)size { NSInteger backingWidth = size.width; NSInteger backingHeight = size.height; NSInteger myDataLength = backingWidth * backingHeight * 4; // allocate array and read pixels into it. GLuint *buffer = (GLuint *) malloc(myDataLength); glReadPixels(0, 0, backingWidth, backingHeight, GL_RGBA, GL_UNSIGNED_BYTE, buffer); // gl renders “upside down” so swap top to bottom into new array. […]