@Artur Jarosik,
post #149
tris.vertices[i].uv.x = (tris.vertices[i].uv.x / t->size.x) * t->scale.x;
tris.vertices[i].uv.y = (tris.vertices[i].uv.y / t->size.y) * t->scale.y;
Wrzuć sobie do struktury tekstury pola t->normalize.xy = 1.0 / size * scale; i po prostu przez to możesz mnożyć.
if(tris.vertices[i].color.a == 0){
continue;
}
Wywal kompletnie. Tylko spowalniasz.
Ale ok, przynajmniej nie robi się 2x transformacja czy inne dziwaki. Zobaczyłbym jak często robiony jest flush() bo imo tam niepotrzebnie co chwilę ustawiasz vertex arrays (wskaźnik i tak się nie zmienia). Ogólnie niestety jest tu nieco za daleko posunięta abstrakcja (jak na 68k). Wrzucanie pojedynczych trójkątów, do tego bez współdzielenia wierzchołków to kiepski pomysł. Plus sam OGL na 68k. Ktoś pewnie by musiał przepisać to na W3D. Ale w sumie jak to jest robione pod emulację to po co się spinać;)