Algoritmos para jogos eletrônicos/Caixa de texto

Algoritmo para a criação de uma caixa de texto 2D que irá receber um texto (string) e formatá-lo a fim de colocar seu conteudo dentro de uma caixa desenhada pelo programador. Caso o texto utrapasse a linha da caixa será automaticamente continuado na linha abaixo, também as palavras não serão cortadas de uma linha para outra.

void caixaDeTexto (BufferGrafico bg, string texto, int getX, int getY, int getLargura, int getAltura)
{
    int tamanhoDoTexto = strlen (texto);
    string bufferDeTexto;
    for (int i=0; i<tamanhoDoTexto; i++)
    {
         bufferDeTexto = bufferDeTexto + bg.drawText (textoBuffer);
    }
}