У меня есть метод, который я использую для рендеринга небольшой карты с использованием плиток, но когда я заканчиваю рендеринг и хочу сделать перевод, изменяющий переменную «transY», используя другой метод, ничего не происходит, поэтому я должен снова вызвать RenderTesture(), чтобы сделать это. Как я могу сделать это без ненужного рендеринга, потому что это может замедлить работу приложения при использовании большего количества тайлов?
void RenderTexture ()
{
MakeCurrent ();
GL.Clear((int)All.ColorBufferBit | (int)All.DepthBufferBit);
GL.MatrixMode(All.Modelview);
GL.LoadIdentity();
GL.Translate(-transX, transY, -10);
for (int i = 0; i < tileRows; i++)
{
for (int j = 0; j < tileColumns; j++)
{
GL.BindTexture(All.Texture2D, textureIds [i*tileColumns + j]);
GL.EnableClientState(All.VertexArray);
GL.EnableClientState(All.TextureCoordArray);
GL.PushMatrix ();
GL.Translate(j*2, -i*2, 0);
GL.VertexPointer(3, All.Float, 0, frontV);
GL.TexCoordPointer(2, All.Float, 0, frontT);
GL.DrawArrays (All.TriangleFan, 0, 4);
GL.PopMatrix ();
}
}
GL.DisableClientState(All.VertexArray);
GL.DisableClientState(All.TextureCoordArray);
SwapBuffers ();
}
Если у кого-то есть совет для меня, я буду очень благодарен!
Заранее спасибо!