• Content count

  • Joined

  • Last visited

Community Reputation

106 Neutral

About Zexanima

  • Rank
  1. I just started learning OpenGL and I'm using SDL with it. I'm having problems including glew. I've made sure it's included before SDL_opengl.h . I'm getting errors such as: [quote]undefined referance to '_imp___GlewGenBuffers'[/quote] here is the code [b]Graphics.h[/b] [source lang="cpp"]#ifndef GRAPHICS_H #define GRAPHICS_H #define NO_SDL_GLEXT #include "GL/glew.h" #include "SDL/SDL.h" #include "SDL/SDL_opengl.h" #include "Texture.h" #include <iostream> namespace ColdFusion { class Graphics { public: Graphics(); bool initScreen(int w, int h, int bpp, std::string caption); void drawSquare(int w, int h, int x, int y, GLuint tex); void clearBuffer(); void swapBuffer(); ~Graphics(); protected: private: bool initGL(int w, int h); }; } #endif // GRAPHICS_H [/source] [b]Graphics.cpp[/b](Line 60 is where I hit the first error.) [source lang="cpp"]#include "Graphics.h" #include "SDL/SDL.h" #include "SDL/SDL_opengl.h" #include "Texture.h" namespace ColdFusion { Graphics::Graphics() { } bool Graphics::initScreen(int w, int h, int bpp, std::string caption) { if(SDL_Init(SDL_INIT_EVERYTHING) < 0) { return false; } if(SDL_SetVideoMode(w,h,bpp,SDL_OPENGL) == NULL) { return false; } if(initGL(w,h) == NULL) { return false; } SDL_WM_SetCaption(caption.c_str(),NULL); return true; } bool Graphics::initGL(int w, int h) { glEnable(GL_TEXTURE_2D); glClearColor(0,0,0,0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glOrtho(0,w,h,0,-1,1); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); if(glGetError() != GL_NO_ERROR) { return false; } return true; } void Graphics::drawSquare(int w, int h, int x, int y, GLuint tex) { static const GLfloat g_vertex_buffer_data[] = { 1.0f,-1.0f,0.0f, -1.0f,-1.0f,0.0f, -1.0f,1.0f,0.0f }; GLuint vertex_buffer; glGenBuffers(1, &vertex_buffer); glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer); glBufferData(GL_ARRAY_BUFFER, sizeof(g_vertex_buffer_data), g_vertex_buffer_data,GL_STATIC_DRAW); // 1rst attribute buffer : vertices glEnableVertexAttribArray(0); glBindBuffer(GL_ARRAY_BUFFER, vertex_buffer); glVertexAttribPointer( 0, // attribute 0. No particular reason for 0, but must match the layout in the shader. 3, // size GL_FLOAT, // type GL_FALSE, // normalized? 0, // stride (void*)0 // array buffer offset ); // Draw the triangle ! glDrawArrays(GL_TRIANGLES, 0, 3); // Starting from vertex 0; 3 vertices total -> 1 triangle glDisableVertexAttribArray(0); } void Graphics::clearBuffer() { glClear(GL_COLOR_BUFFER_BIT); } void Graphics::swapBuffer() { SDL_GL_SwapBuffers(); } Graphics::~Graphics() { } } [/source] [b]Errors[/b] [CODE] D:\cold-fusion-engine\ColdFusion\src\Handler.cpp||In member function 'int ColdFusion::Handler::Execute()':| D:\cold-fusion-engine\ColdFusion\src\Handler.cpp|29|warning: control reaches end of non-void function| D:\cold-fusion-engine\ColdFusion\src\Graphics.cpp||In member function 'bool ColdFusion::Graphics::initScreen(int, int, int, std::string)':| D:\cold-fusion-engine\ColdFusion\src\Graphics.cpp|25|warning: NULL used in arithmetic| obj\Debug\src\Graphics.o:D:\cold-fusion-engine\ColdFusion\src\Graphics.cpp|60|undefined reference to `_imp____glewGenBuffers'| obj\Debug\src\Graphics.o:D:\cold-fusion-engine\ColdFusion\src\Graphics.cpp|61|undefined reference to `_imp____glewBindBuffer'| obj\Debug\src\Graphics.o:D:\cold-fusion-engine\ColdFusion\src\Graphics.cpp|63|undefined reference to `_imp____glewBufferData'| obj\Debug\src\Graphics.o:D:\cold-fusion-engine\ColdFusion\src\Graphics.cpp|66|undefined reference to `_imp____glewEnableVertexAttribArray'| obj\Debug\src\Graphics.o:D:\cold-fusion-engine\ColdFusion\src\Graphics.cpp|67|undefined reference to `_imp____glewBindBuffer'| obj\Debug\src\Graphics.o:D:\cold-fusion-engine\ColdFusion\src\Graphics.cpp|75|undefined reference to `_imp____glewVertexAttribPointer'| obj\Debug\src\Graphics.o:D:\cold-fusion-engine\ColdFusion\src\Graphics.cpp|80|undefined reference to `_imp____glewDisableVertexAttribArray'| ||=== Build finished: 7 errors, 2 warnings ===| [/CODE] Any idea's to what I could be doing wrong? I realize others have asked questions very similar to this but their solution didn't help me.