2015-10-19 14 views
5

Ich verwende OpenGL und die Bitmap-Bibliothek um http://partow.net/programming/bitmap/, um ein Programm zu laden, ein Bitmap auf meinem Bildschirm. Ich habe es geschafft, eine Bitmap auf meinem Bildschirm zu laden, aber wenn ich versuche, p.x und p.y (From GetCursorPos) zu verwenden, um ein Bild an der Position des Cursors zu laden, stürzt die Anwendung ab. Hier ist mein Code:Mein OpenGL-Bitmap-Programm stürzt ab?

void Image(HDC hDC, string File_Name, int x_position, int y_position, int length, int height)  // Image() 
{ 
File_Name = "C:/Users/David/Pictures/" + File_Name + ".bmp";  // add a full path to the file name 
bitmap_image image(File_Name);         // Open the bitmap 
unsigned char red; 
unsigned char green; 
unsigned char blue; 
restart: 
image.get_pixel(x_position, y_position, red, green, blue);  // Get the red green and blue from x_position and y_position  and store it in red green and blue. 
glBegin (GL_TRIANGLES);           // Make a pixel at x_position and y_position with red green and blue. 
glColor3ub (red, green, blue); 
glVertex2f (-1 + 0.0015 * x_position, 1 - 0.003 * y_position); 
glVertex2f (-1 + 0.0015 * x_position, 0.997 - 0.003 * y_position); 
glVertex2f (-0.9985 + 0.0015 * x_position, 1 - 0.003 * y_position); 
glEnd(); 
glBegin (GL_TRIANGLES); 
glColor3ub (red, green, blue); 
glVertex2f (-1 + 0.0015 * x_position, 0.997 - 0.003 * y_position); 
glVertex2f (-0.9985 + 0.0015 * x_position, 1 - 0.003 * y_position); 
glVertex2f (-0.9985 + 0.0015 * x_position, 0.997 - 0.003 * y_position); 
glEnd(); 
if (x_position==length)    // If x_position equals to length of bmp set x_position to 0 and add 1 to y_position. 
{ 
if (y_position==height)    // If bmp is done loading go to done. 
{ 
goto done; 
} 
x_position = 0; 
y_position = y_position + 1; 
} 
x_position = x_position + 1; 
goto restart; 
done:   
SwapBuffers(hDC);     // Put it on the screen   
} 



int main()    // int main() 
{ 
POINT p; 
if(GetCursorPos(&p)) 
{ 
Image(hDC, "Image", p.x, p.y, 1340, 678); 
} 
} 

Ich benutze Dev C++ auf Windows 7. Dank!

+1

Hast du schon einen OpenGL-Kontext außerhalb dieser Funktion eingerichtet? https://open.gl/context –

Antwort