Monday 15 April 2013

glfw - OpenGL - Cannot find mistake -



glfw - OpenGL - Cannot find mistake -

i tried code little opengl app, on window displayed nothing. cannot find mistakes. did wrong ? , error checks negative, there occur no errors.

i generated opengl 3.3 header tool: https://bitbucket.org/alfonse/glloadgen/wiki/home

#include "opengl.hpp" #include <iostream> #include <glfw/glfw3.h> #include "world.hpp" int main(void) { glfwinit(); glfwwindowhint(glfw_context_version_major, 3); glfwwindowhint(glfw_context_version_minor, 3); glfwwindowhint(glfw_opengl_forward_compat, gl_true); glfwwindowhint(glfw_opengl_profile, glfw_opengl_core_profile); glfwwindow * window = glfwcreatewindow(800, 600, "project x", nullptr, nullptr); glfwmakecontextcurrent(window); world = new world(); { world->render(); glfwswapbuffers(window); glfwpollevents(); } while(glfwwindowshouldclose(window) == false); delete world; glfwterminate(); homecoming 0; } #include "world.hpp" world::world() { glclearcolor(0.5f, 0.5f, 0.5f, 1); gluint vertex_shader = glcreateshader(gl_vertex_shader); const glchar * vertex_source = "#version 330\n" "layout(location = 0)in vec3 in_vertex_position;\n" "void main()\n" "{\n" "gl_position = vec4(in_vertex_position, 1);\n" "}\n"; glshadersource(vertex_shader, 1, &vertex_source, nullptr); glcompileshader(vertex_shader); glint vertex_result; glgetshaderiv(vertex_shader, gl_compile_status, &vertex_result); if(vertex_result != gl_true) { std::cerr<<"could not compile vertex shader !"<<std::endl; } gluint fragment_shader = glcreateshader(gl_fragment_shader); const glchar * fragment_source = "#version 330\n" "out vec4 out_fragment_color;\n" "void main()\n" "{\n" "out_fragment_color = vec4(0.3, 1.0, 1.0, 1.0);\n" "}\n"; glshadersource(fragment_shader, 1, &fragment_source, nullptr); glcompileshader(fragment_shader); glint fragment_result; glgetshaderiv(fragment_shader, gl_compile_status, &fragment_result); if(fragment_result != gl_true) { std::cerr<<"could not compile fragment shader !"<<std::endl; } programme = glcreateprogram(); glattachshader(program, vertex_shader); glattachshader(program, fragment_shader); gllinkprogram(program); glint result; glgetprogramiv(program, gl_link_status, &result); if(result != gl_true) { std::cerr<<"could not link programme !"<<std::endl; } glgenbuffers(1, &buffer); glbindbuffer(gl_array_buffer, buffer); glfloat vertices_positions[] = {0, 0, 0, 1, 0, 0, 1, 1, 0}; glbufferdata(gl_array_buffer, 9 * sizeof(gl_float), vertices_positions, gl_static_draw); } world::~world() { } void world::render() { glclear(gl_color_buffer_bit); gluseprogram(program); glenablevertexattribarray(0); glbindbuffer(gl_array_buffer, buffer); glvertexattribpointer(0, 3, gl_float, gl_false, 0, 0); gldrawarrays(gl_triangles, 0, 3); gldisablevertexattribarray(0); }

opengl glfw

No comments:

Post a Comment