Code: Alles auswählen
      static const Matrix4x4<T> PerspectiveLH( T width,
                                               T height,
                                               T near,
                                               T far )
      {
        std::cout << "near=" << near << "far=" << far << std::endl;
        T dist = near-far;
        if(    dist > -0.00005 || near < 0.00005
            || width < 0.00005 || height < 0.00005 )
          return Identity();
        T inv_dist = 1/dist;
        return Matrix4x4<T>(
          2*near/width, 0,             0,                    0,
          0,            2*near/height, 0,                    0,
          0,            0,             (near+far)*inv_dist, -1,
          0,            0,             2*near*far*inv_dist,  0 );
      }
 Irgendwann bin ich dann darauf gekommen, dass der Fehler nur dann auftritt wenn die 'windows.h' eingebunden ist. Ich brauche sie zwar selber nicht, sie wird aber indirekt über die 'SDL_opengl.h' eingebunden. Nagut, dann habe ich einfach das 'include' etwas nach hinten verschoben und es hat funktioniert.
 Irgendwann bin ich dann darauf gekommen, dass der Fehler nur dann auftritt wenn die 'windows.h' eingebunden ist. Ich brauche sie zwar selber nicht, sie wird aber indirekt über die 'SDL_opengl.h' eingebunden. Nagut, dann habe ich einfach das 'include' etwas nach hinten verschoben und es hat funktioniert.Aber irgendwie hat es mich interessiert was jetzt wirklich schuld daran ist, und deshalb bin ich dem noch etwas genauer nachgegangen bis ich in der 'windef.h' fündig geworden bin. Dort bin ich dann auf zwei sehr sinnvolle Zeilen gestoßen:
Code: Alles auswählen
#define far
#define near





