В общем какая-то странная ошибка.. Пишу код для вывода конуса:
#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