PDA

View Full Version : Red Triangle tutorial.



oladitan
10-09-2014, 03:59 AM
Hello I am trying to follow a tutorial that I found here: 'http : //www .opengl-tutorial.org/beginners-tutorials/tutorial-1-opening-a-window/#Building_on_Windows'


tutorial02.cpp:



// Include standard headers
#include <stdio.h>
#include <stdlib.h>

// Include GLEW
#include <GL/glew.h>

// Include GLFW
#include <glfw3.h>
GLFWwindow* window;

// Include GLM
#include <glm/glm.hpp>
using namespace glm;

#include <common/shader.hpp>

int main( void )
{
// Initialise GLFW
if( !glfwInit() )
{
fprintf( stderr, "Failed to initialize GLFW\n" );
return -1;
}

glfwWindowHint(GLFW_SAMPLES, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);

// Open a window and create its OpenGL context
window = glfwCreateWindow( 1024, 768, "Tutorial 02 - Red triangle", NULL, NULL);
if( window == NULL ){
fprintf( stderr, "Failed to open GLFW window. If you have an Intel GPU, they are not 3.3 compatible. Try the 2.1 version of the tutorials.\n" );
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);

// Initialize GLEW
glewExperimental = true; // Needed for core profile
if (glewInit() != GLEW_OK) {
fprintf(stderr, "Failed to initialize GLEW\n");
return -1;
}

// Ensure we can capture the escape key being pressed below
glfwSetInputMode(window, GLFW_STICKY_KEYS, GL_TRUE);

// Dark blue background
glClearColor(0.0f, 0.0f, 0.4f, 0.0f);

GLuint VertexArrayID;
glGenVertexArrays(1, &VertexArrayID);
glBindVertexArray(VertexArrayID);

// Create and compile our GLSL program from the shaders
GLuint programID = LoadShaders( "SimpleVertexShader.vertexshader", "SimpleFragmentShader.fragmentshader" );


static const GLfloat g_vertex_buffer_data[] = {
-1.0f, -1.0f, 0.0f,
1.0f, -1.0f, 0.0f,
0.0f, 1.0f, 0.0f,
};

GLuint vertexbuffer;
glGenBuffers(1, &vertexbuffer);
glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(g_vertex_buffer_data), g_vertex_buffer_data, GL_STATIC_DRAW);

do{

// Clear the screen
glClear( GL_COLOR_BUFFER_BIT );

// Use our shader
glUseProgram(programID);

// 1rst attribute buffer : vertices
glEnableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, vertexbuffer);
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); // 3 indices starting at 0 -> 1 triangle

glDisableVertexAttribArray(0);

// Swap buffers
glfwSwapBuffers(window);
glfwPollEvents();

} // Check if the ESC key was pressed or the window was closed
while( glfwGetKey(window, GLFW_KEY_ESCAPE ) != GLFW_PRESS &&
glfwWindowShouldClose(window) == 0 );

// Cleanup VBO
glDeleteBuffers(1, &vertexbuffer);
glDeleteVertexArrays(1, &VertexArrayID);
glDeleteProgram(programID);

// Close OpenGL window and terminate GLFW
glfwTerminate();

return 0;
}





however in visual studio 2013 express I get all of these errors and the program closes before I ever see a red triangle




'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Users\oladitan\Documents\OpenGL\OpenGL-tutorial_v0014_33\build\Debug\tutorial02_red_trian gle.exe'. Symbols loaded.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Symbols loaded.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Symbols loaded.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Symbols loaded.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\opengl32.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\advapi32.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sechost.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\rpcrt4.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\sspicli.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cryptbase.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\gdi32.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\user32.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\lpk.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\usp10.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\glu32.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ddraw.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dciman32.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\setupapi.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\cfgmgr32.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\oleaut32.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ole32.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\devobj.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\dwmapi.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcp120d.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcr120d.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\imm32.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msctf.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\nvinit.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Program Files (x86)\NVIDIA Corporation\coprocmanager\_etoured.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Program Files (x86)\NVIDIA Corporation\coprocmanager\Nvd3d9wrap.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Program Files (x86)\NVIDIA Corporation\coprocmanager\nvdxgiwrap.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\winmm.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ig7icd32.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Loaded 'C:\Windows\SysWOW64\version.dll'. Cannot find or open the PDB file.
'tutorial02_red_triangle.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\version.dll'
'tutorial02_red_triangle.exe' (Win32): Unloaded 'C:\Windows\SysWOW64\winmm.dll'
The program '[12588] tutorial02_red_triangle.exe' has exited with code -1 (0xffffffff).


can you help me find out what I am doing wrong? thanks.

mhagain
10-09-2014, 09:27 AM
None of those are errors - they're just normal notifications when you run a program, most caused by not have symbols (http://msdn.microsoft.com/en-us/library/ms241613.aspx) installed.

The key line here is the very last:
The program '[12588] tutorial02_red_triangle.exe' has exited with code -1 (0xffffffff).
We need to find what's causing your program to exit with a code of -1, so look through your code for a line that looks like this:
exit (-1);Or this (from your main function):

return -1;
Straight away we see the most likely candidate:
if( window == NULL ){
fprintf( stderr, "Failed to open GLFW window. If you have an Intel GPU, they are not 3.3 compatible. Try the 2.1 version of the tutorials.\n" );
glfwTerminate();
return -1;
}
Have you an (older) Intel GPU? Or something else that's not GL 3.3 compatible?

A suggestion: rather than just returning -1 for each error condition, return a different value. So you might return -1 if glfwInit fails, -2 if glfwCreateWindow fails, and so on. That way when you see the exit code you'll know what caused it.

oladitan
10-09-2014, 09:51 AM
Straight away we see the most likely candidate:
if( window == NULL ){
fprintf( stderr, "Failed to open GLFW window. If you have an Intel GPU, they are not 3.3 compatible. Try the 2.1 version of the tutorials.\n" );
glfwTerminate();
return -1;
}
Have you an (older) Intel GPU? Or something else that's not GL 3.3 compatible?

A suggestion: rather than just returning -1 for each error condition, return a different value. So you might return -1 if glfwInit fails, -2 if glfwCreateWindow fails, and so on. That way when you see the exit code you'll know what caused it.

Hi mhagain. You were correct. The computer belives that I have an intel GPU. I do have an integrated Intel GPU. But I also have a dedicated NVIDIA GPU. How do I tell my program to use my NVIDA GPU? thanks.

I have disabled my intel integrated graphics GPU however I still get the same error.

I thought that by disabling the intel integraded graphics GPU that The system would have no choice other than using the NVIDIA GPU. I do not think that was the case.

Dark Photon
10-09-2014, 08:32 PM
I'd try installing the latest NVidia windows drivers (just websearch "nvidia download" and it comes right up).

ahad0001
10-30-2014, 04:24 PM
i am using 5 years nvidia gforce. this is a best only for game. but when i am working 3d autodesk my computer over heating. i don't know why my over heating. i think this reason for nvidia.