тест асинхронной загрузки текстур:
в заголовке окна пишется время на создание сцены потраченное
Async грузит текстуры во втором потоке
Sync грузит сразу
просьба проверить на корректность работы оба екзешника
архив тяжелый (~10 метров)
http://axelynx.googlecode.com/files/...yncLoading.zip
свой формат текстур будет подерживать постепенную загрузку мипов. но до етого времени пока...
текстура грузится асинхронно так:
Texture *tex = eng->LoadTexture(tname,Texture::Desc().ASync(true));
вот весь исходник теста:
#include <axelynx.h>
using namespace axelynx;
int main()
{
Engine *eng = Engine::Init();
Window *wnd = eng->AddWindow(800,600);
Scene *scene = eng->AddScene();
Camera *cam = scene->AddCamera();
Surface *cube = StandartSurfaces::Cube();
Material *m = eng->CreateMaterial();
m->SetShader(StandartShaders::Render::TexturingLighting());
StandartShaders::Render::TexturingLighting()->SetUniform(Shader::SU_LIGHTPOS,vec3(100,100,100));
m->UseEntityTextures(true);
Texture *tex[16];
Timer::Delta();
for(int i = 0; i<16; ++i)
{
wchar_t tname[80];
swprintf(tname,L"%d.jpg",i);
tex[i] = eng->LoadTexture(tname,Texture::Desc().ASync(false));
Entity *ent = scene->Add(cube);
ent->SetPosition((i/4) * 5 - 12.5,(i%4) * 5 - 12.5,-40);
ent->SetMaterial(m);
ent->SetTexture(tex[i]);
}
float loading_time = Timer::Delta();
wchar_t wbuff[80];
swprintf(wbuff,L"loading time: %f ms",loading_time);
wnd->SetText(wbuff);
while(wnd->isRunning())
{
cam->Turn(0,0,0.2);
scene->Render();
wnd->Flip();
}
eng->Free();
}