PC6001V for IS01 その4

2DのP6画面をCのOpenGLで書いて、VSurfaceをテクスチャにして貼ってみました。

f:id:tanam:20130504185242p:image:w360

OpenGLで苦戦しています。ここら辺を参考に無理やりコーディング、、、

http://labs.beatcraft.com/ja/index.php?Android%20%A4%C7%20OpenGL%20ES%20%20%A4%F2%BB%C8%CD%D1%A4%B9%A4%EB

static GLfloat vertices[] = {
-0.843f, -1.125f, 0.0f,
 0.843f, -1.125f, 0.0f,
-0.843f,  1.125f, 0.0f,
 0.843f,  1.125f, 0.0f};

static GLfloat texcoord[] = {
 0.0f, 1.0f,
 1.0f, 1.0f,
 0.0f, 0.0f,
 1.0f, 0.0f,
};

GLuint textures;
unsigned char gBuffer[512][512][2];
extern "C" jint Java_org_libsdl_app_SDLActivity_NativeRender
  (JNIEnv * env, jclass cls)
{
	static int initialized = 0;
	if ( initialized == 0 ) {
		memset(gBuffer, 0, 512*512*2);
		initialized = 1;
	}
	glMatrixMode( GL_PROJECTION );
	glLoadIdentity();
	glGenTextures( 1, &textures );
	glBindTexture( GL_TEXTURE_2D, textures );
	glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST );
	glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR );
	glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, 512, 512, 0, GL_RGBA, GL_UNSIGNED_SHORT_4_4_4_4, gBuffer );
	glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
	glMatrixMode(GL_MODELVIEW);
	glLoadIdentity();
	glEnable( GL_TEXTURE_2D );
	glVertexPointer( 3,GL_FLOAT,0,vertices);
	glTexCoordPointer( 2, GL_FLOAT, 0, texcoord );
	glDrawArrays(GL_TRIANGLE_STRIP,0,4);
	glDeleteTextures( 1, &textures );
	return 1;
}