Тема: Странное.
Показать сообщение отдельно
Старый 08.11.2011, 20:52   #225
dsd
Мастер
 
Аватар для dsd
 
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений
(для 1,836 пользователей)
Ответ: Странное.

В общем ай гот а проблем.

В дебаге запускается. В релизе компилится, но падает если запускать из кодеблокс. Если запускать кликая на скомпилином экзешнике, то запускается. Причем такая фигня случается если я создаю меш с меньше чем 64х64 вертексов и после создания гружу текстуру в пнг или ддс.

Handle MakeMesh(int segments, float size, float radius){
       Handle mesh=xCreateMesh();
       Handle surf=xCreateSurface(mesh);
        //создание плоскости
            for(int i=0;i<=segments;i++){for(int j=0;j<=segments;j++){xAddVertex(surf,i,0,j,(double)i*3/segments,(double)j*3/segments);}}
            int qvert=xCountVertices(surf);
    for(int i=0;i<qvert-segments-1;i++){
        int v0=i;
        int v1=i+1;
        int v2=i+segments+1;
        int v3=v2+1;
            if(v3<qvert && xMod(i,segments+1)!=segments){

                xAddTriangle(surf,v2,v1,v3); xAddTriangle(surf,v2,v0,v1);
                 }}
    for(int i=0;i<=segments;i++){for(int j=0;j<=segments;j++){
    int index=i*(segments+1)+j;

    //в 360 градусах 2*m_pi радиан

    double crad=radius*((segments-0.55*i)/segments);
    double disp=3.5*sin(M_PI*i/(double)segments);

    double sn=crad*sin(2*M_PI*j/(double)segments);
    double cs=crad*cos(2*M_PI*j/(double)segments);

    xVertexCoords(surf,index,sn,i*size/segments,cs);
    if(i==segments){xVertexCoords(surf,index,0,i*size/segments,0);}}}
xUpdateN(mesh);
xCalculateFrustumVolume(mesh);
return mesh;
}
Что такого неправильного в выше приведенном коде, что загрузкой текстуры при количестве сегментов 32 или меньше оно падает?
(Offline)
 
Ответить с цитированием