1

私は現在、「Tiny Wings」http://www.raywenderlich.com/3857/how-to-create-dynamic-textures-with-ccrendertextureなどのエフェクトに取り組んでおり、 CCRenderTextureが解決策であることがわかりました。だから私はAndroidでこの効果を出す方法を知りたいのですが、ついにこのリンクを見つけました https://github.com/ZhouWeikuan/cocos2d/blob/master/cocos2d-android/src/org/cocos2d/opengl/CCRenderTexture.java ItそのGL11ExtensionPackを示しています

GL11ExtensionPack egl = (GL11ExtensionPack)CCDirector.gl;
        egl.glGetIntegerv(GL11ExtensionPack.GL_FRAMEBUFFER_BINDING_OES, oldFBO_, 0);
...

しかし、GLWrapperBase.javaでは、次のように表示されます。

// Unsupported GL11ExtensionPack methods
public void glBindFramebufferOES (int target, int framebuffer) {
        throw new UnsupportedOperationException();
}

gdxはこの関数を実装していないようです。libgdxの同じ機能とは何か、またはデスクトップでGL11ExtensionPackを使用する方法を知りたいです 〜ありがとう

4

2 に答える 2

1

libGDXでは、FrameBufferオブジェクトを使用して「CCRenderTexture」と同等の処理を実行します。FrameBufferを使用すると、基本的にOpenGLコマンドを使用して画面外のバッファーに描画し、後でそのバッファーの内容をテクスチャとして表示できます。http://code.google.com/p/libgdx/wiki/OpenGLFramebufferObjectを参照してください。FrameBufferオブジェクトは、アプリでOpenGLES2.0が必要な場合にのみ使用できることに注意してください。

描画したいものに応じてPixmap、libGDXのクラスも確認できます。これは、いくつかの単純な実行時の描画操作(線、長方形、ピクセルなど)をサポートします。繰り返しになりますが、このテクスチャに描画し、後で結果のテクスチャを画面にレンダリングするという考え方です。これはOpenGLES1.0でも利用できます。

FrameBufferとPixmapはどちらも、Androidとデスクトップで正常に動作するはずです(GWTとiOSでも動作すると思います)。

アプリが一時的にフォーカスを失ったときにAndroidで何が起こるかを理解するように注意してください(OpenGLコンテキストが失われると、一部のテクスチャコンテンツが消えます)。

于 2012-11-12T15:23:04.050 に答える