본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] OpenGL Text 출력하기. ( with sample code )

by 돼지왕 왕돼지 2012. 2. 27.
반응형


안녕하세요 돼지왕 왕돼지입니다.
 

안드로이드에서 OpenGL 을 사용하여 Text 를 출력할 일이 많으시죠?
 

어떤 방법으로 하면 될까 샘플코드와 함께 알아보시죠.



Text Bitmap 만들기.


Bitmap bitmap = Bitmap.createBitmap( 64, 64, Bitmap.Config.ARGB_4444 );

Canvas canvas = new Canvas( bitmap );

bitmap.eraseColor( 0 );


Paint textPaint = new Paint();

textPaint.setTextSize( 18 );

textPaint.setAntiAlias( true );

textPaint.setARGB( 0xff, 0xff, 0xff, 0xff );

textPaint.setTextAlign( Paint.Align.LEFT );

textPaint.setTextScaleX( 0.5f );

canvas.drawText( str, 0.f, 15.f , textPaint);





Bitmap Texture 에 bind 하기.


gl.glGenTextures( 1, mTextures, 0 );

gl.glBindTexture( GL10.GL_TEXTURE_2D, mTextures[ 0 ] );


gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST );

gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR );


gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_REPEAT );

gl.glTexParameterf( GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_REPEAT );


GLUtils.texImage2D( GL10.GL_TEXTURE_2D, 0, bitmap, 0 );

bitmap.recycle();





Texture 입히기.


gl.glEnableClientState( GL10.GL_VERTEX_ARRAY );

gl.glEnableClientState( GL10.GL_TEXTURE_COORD_ARRAY );


gl.glVertexPointer( NUMBER_OF_AXIS, GL10.GL_FLOAT, 0, mImageRectVertexBuffer );
gl.glBindTexture( GL10.GL_TEXTURE_2D, mTextures[ 0 ] );  

gl.glTexCoordPointer( 2, GL10.GL_FLOAT, 0, mUVBuffer );

gl.glDrawElements( GL10.GL_TRIANGLES, INDICES.length, GL10.GL_UNSIGNED_SHORT, mIndicesBuffer );



로그인 없이 추천 가능합니다. 손가락 꾸욱~

반응형

댓글