КАЖЕТСЯ, СЕЙЧАС РАБОТАЕТ, СПАСИБО.
Моя проблема в том, что в одной из функций теряются параметры.< /p>
Я использую Code::Blocks с компилятором GNU GCC в Windows 7.
Хорошо, у меня есть функция, принимающая 6 параметров GLfloat.
void ProMesh::gen_quad_world(GLfloat _w,GLfloat _h,GLfloat _x1,GLfloat _y1,GLfloat _x2,GLfloat _y2);
Как видите, это часть класса ProMesh.
В ProMesh у меня есть функция инициализатора, которая вызывает проблемную функцию gen_quad_world.
void ProMesh::initialize(GLfloat _w, GLfloat _h,GLfloat _x1,GLfloat _y1,GLfloat _x2,GLfloat _y2)
{
numverts = 18;
numtexcoords = 12;
vert_array = NULL;
tex_array = NULL;
id = glGenLists(1);
gen_quad_world(_w,_h,_x1,_y1,_x2,_y2);
}
Как видите, он просто передает параметры в gen_quad_world.
Пока все в порядке?< /p>
Независимо от значений _w и _h, gen_quad_world вместо этого получает глупые длинные числа.
Пример:
ЗВОНЮ
gen_quad_world(1,2,345,4,5,6);
Я ПОЛУЧАЮ
_w: 3.7648e-039
_h: 7.4044e+031
_x1: 345
_y1: 4
_x2: 5
_y2: 6
в функции gen_quad_world. Как это может произойти? Это очень странно. Кроме того, иногда он работает правильно, когда я прохожу его построчно в режиме отладки.
Что еще больше усложняет ситуацию, у меня есть почти идентичная функция под названием gen_quad_local, которая требует того же самого параметры. если я использую его вместо него, то все работает нормально.
-------------------- -----чтобы увидеть функцию gen_quad_world, посмотрите ниже--------------------
void ProMesh::gen_quad_world(GLfloat _w,GLfloat _h,GLfloat _x1,GLfloat _y1,GLfloat _x2,GLfloat _y2)
{
std::ofstream myfile("gen_quad_world.txt");
myfile
Подробнее здесь: https://stackoverflow.com/questions/115 ... -constants