タグ

errorとOpenGLに関するastk_fのブックマーク (2)

  • JUNO通信: Android + OpenGL の戦い その1

    いま「Battle Tank Sword」を Windows に移植するためにコネコネいじくり回している最中なのですが、その途中、Java のソースを眺めていた時にふと目に止まった部分がありました。 それは度重なる不具合で皆様に御迷惑をおかけした原因とも言える場所であり、その作業過程がもしかしたら誰かの役に立つかもしれないと思い、ここに文章化することにしました。 Android 向けゲーム「Battle Tank SWORD」は、初めて OpenGL + NDK で作ったアプリだったので色々と大変だったのですが、一番苦労したのはほかでもない OpenGL の初期化部分でした。はじめは解説サイトなどを参考にしてさらっと mGLSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 0, 1); と記述してあり、手元の端末では正しく動いていたのですが、実はこれが

  • Indirect Buffer - そこはかとなく書くよ。

    E/OpenGLES( 351): Application (SDK target 0) called a GL11 Pointer method with an indirect Buffer.というエラーが出ました。 これは、描画にbufferがdirectである必要があるのにindirect Bufferを使っているから起きることらしいです。 Direct Bufferは、ヒープ(Javaアプリケーション用に確保されるメモリ領域)外のメモリを使うものであり、パフォーマンスが高くなります。ただ、割り当てや開放にはコストがかかるようです。 direct bufferを作るには、ByteBuffer.allocateDirect() を使えばいいようです。 具体的には、以下のようにしました。 import java.nio.ByteBuffer; import java.nio.Float

    Indirect Buffer - そこはかとなく書くよ。
  • 1