KrL
Участник
Offline
|
|
« : 11-05-2009 14:14 » |
|
В общем какая-то странная ошибка.. Пишу код для вывода конуса: #include <windows.h>
#include <GL/gl.h> #include <GL/glu.h> #include <GL/glaux.h> #include "stdlib.h" double R = 1, H = 2;
void CALLBACK Key_UP(void) { R = R + 0.2; H = H + 0.4; } void CALLBACK Key_DOWN(void) { R = R - 0.2; H = H - 0.4; } void DrawCone() { glPushMatrix(); // сохраняем текущие координаты glTranslated(0.1,0,0); // сдвигаемся в точку (2,0,0) glRotated(-75, 0.1,0,0); // поворачиваем систему координат glColor3d(0,1,0); auxWireCone(R, H); // рисуем конус glPopMatrix(); // возвращаемся к старым координатам }
void CALLBACK resize(int width,int height) { glViewport(0,0,width,height); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); glOrtho(-5,5, -5,5, 2,12); gluLookAt( 0,0,5, 0,0,0, 0,1,0 ); glMatrixMode( GL_MODELVIEW ); }
void CALLBACK display(void) { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); DrawCone(); auxSwapBuffers(); }
void main() { float pos[4] = {3,3,3,1}; float dir[3] = {-1,-1,-1};
GLfloat mat_specular[] = {1,1,1,1};
auxInitPosition( 50, 10, 400, 400); auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE ); auxInitWindow( "Glaux Template" ); auxIdleFunc(display); auxReshapeFunc(resize);
auxKeyFunc(AUX_UP, Key_UP); auxKeyFunc(AUX_DOWN, Key_DOWN);
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING); glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_POSITION, pos); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialf(GL_FRONT, GL_SHININESS, 128.0);
/* * Enter your cod here */ auxMainLoop(display); }
Далее создаю новый .cpp для цилиндра, копипаст меняю функцию вывода конуса на ф-ю для цилиндра и вылетает.. error C2664: 'auxInitWindowW' : cannot convert parameter 1 from 'const char [15]' to 'LPCWSTR' #include <windows.h>
#include <GL/gl.h> #include <GL/glu.h> #include <GL/glaux.h> #include "stdlib.h" double r = 1,height = 1;
void CALLBACK Key_UP(void) { height = height + 0.5; r = r + 0.4; } void CALLBACK Key_DOWN(void) { height = height - 0.5; r = r - 0.4; } void DrawCylinder() { glPushMatrix(); // сохраняем текущие координаты glTranslated(0.1,0,0); // сдвигаемся в точку (2,0,0) glRotated(15, 0.1,0,0); // поворачиваем систему координат glColor3d(0,1,0); auxSolidCylinder(r,height); // рисуем glPopMatrix(); // возвращаемся к старым координатам }
void CALLBACK resize(int width,int height) { glViewport(0,0,width,height); glMatrixMode( GL_PROJECTION ); glLoadIdentity(); glOrtho(-5,5, -5,5, 2,12); gluLookAt( 0,0,5, 0,0,0, 0,1,0 ); glMatrixMode( GL_MODELVIEW ); }
void CALLBACK display(void) { glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); DrawCylinder(); auxSwapBuffers(); }
void main() { float pos[4] = {3,3,3,1}; float dir[3] = {-1,-1,-1};
GLfloat mat_specular[] = {1,1,1,1};
auxInitPosition( 50, 10, 400, 400); auxInitDisplayMode( AUX_RGB | AUX_DEPTH | AUX_DOUBLE ); auxInitWindow( "Glaux Template" ); auxIdleFunc(display); auxReshapeFunc(resize);
auxKeyFunc(AUX_UP, Key_UP); auxKeyFunc(AUX_DOWN, Key_DOWN);
glEnable(GL_DEPTH_TEST);
glEnable(GL_COLOR_MATERIAL);
glEnable(GL_LIGHTING); glEnable(GL_LIGHT0);
glLightfv(GL_LIGHT0, GL_POSITION, pos); glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, dir);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); glMaterialf(GL_FRONT, GL_SHININESS, 128.0);
/* * Enter your cod here */ auxMainLoop(display); }
В чем причина? Основа кода из учебника тарасова по OpenGL. Пишу в VS 2005
|
|
|
Записан
|
|
|
|