2012-03-16 3 views
0

Renderscript로 rsgDrawText를 사용하여 90도 회전 한 텍스트를 표시하려고합니다. Font 클래스 및 rsgDrawText 호출이 텍스트 방향을 지원하지 않는 것 같습니다. 활동을 세로/가로로 회전 할 수 없으므로이를 달성하기위한 또 다른 방법을 알아 내기 위해 Ineed를 참조하십시오. rsMatrixRotate를 사용하여 버텍스 쉐이더에 몇 가지 실험을 시도했지만 텍스트가이 변환의 영향을받지 않는 것 같습니다. 다른 활동 위에 Renderscript로만 텍스트를 그리는 투명한 표면을 사용하고 있습니다. 따라서 표면 방향 자체를 변경하는 것과 같은 것은 아마도 잘 작동합니다. Renderscript로 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; 
}