2012-03-16 21 views
0

RenderscriptでrsgDrawTextを使用して90度回転したテキストを表示しようとしています。 FontクラスとrsgDrawText呼び出しは、テキストの向きをサポートしていないようです。 アクティビティを縦方向/横方向に回転させることはできませんので、これを達成する別の方法を考えてください。 rsMatrixRotateを頂点シェーダに使用していくつかの実験を試みましたが、テキストはこの変換の影響を受けていないようです。 私は、別のアクティビティの上にレンダスクリプトを使用してテキストを描画するだけの透明なサーフェスを使用しています。表面の向き自体を変えるようなものは、うまくいくでしょう。 レンダスクリプトで90度回転したテキストを描画するにはどうすればよいでしょうか?Renderscriptで回転したテキストを描画する

答えて

2

glMatrixRotateを使用して回転行列を作成し、rsgProgramVertexLoadModelMatrixを使用してその行列をモデル行列として読み込むことができます。私はそれがあなたの実験で逃したのは後者の部分だと思う。

たとえば、このシンプルなレンダスクリプトは「Hello!」を描画します。画面上の(200,200)で、テキストの左下隅を90度回転して表示されます。

int root() { 
    rsgClearColor(0.0, 0.0, 0.0, 0.0); 
    rsgFontColor(1.0, 1.0, 1.0, 1.0); 
    rsgDrawText("Hello!", 200, 200); 

    rs_matrix4x4 matrix; 
    rsMatrixLoadIdentity(&matrix); 
    rsMatrixTranslate(&matrix, 200, 200, 0); 
    rsMatrixRotate(&matrix, 90, 0, 0, 1); 
    rsgProgramVertexLoadModelMatrix(&matrix); 
    rsgDrawText("Hello!", 0, 0); 

    return 0; 
} 
関連する問題