2012-03-16 75 views
0

我試圖使用帶Renderscript的rsgDrawText旋轉90度文字。 Font類和rsgDrawText調用似乎不支持任何文本方向。 我無法旋轉縱向/橫向的活動,因此需要找出另一種方法來實現這一點。 我通過使用rsMatrixRotate對頂點着色器進行了一些實驗,但文字似乎沒有受到這種轉換的影響。 我使用了一個透明表面,它只在另一個活動之上用Renderscript繪製文本。因此,改變表面方向本身的任何東西都可能正常工作。 什麼是最好的方式來繪製與Renderscript旋轉90度的文字?使用Renderscript繪製旋轉文字

回答

2

您可以使用glMatrixRotate來創建一個旋轉矩陣,然後使用rsgProgramVertexLoadModelMatrix來加載該矩陣作爲模型矩陣。我懷疑這是你在實驗中錯過的後一部分。

例如,這個簡單的renderscript將繪製「你好!」在屏幕上的(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; 
}