D
Hi Probe-Nutzer,
Natürlich hast Du recht, ich hoffe nur daß ich jetzt nicht zuviel des Guten getan habe, hier kommt alles.
Ich poste mal den Code inclusive der Fehlermeldung!
Hier mein Code:
#include <gtk/gtk.h>
#include <gtk/gtkgl.h>
#include <SDL/SDL.h>
#include <SDL/SDL_opengl.h>
#include <math.h>
#ifdef _WIN32
#undef main
#endif
float boxv[][3] = {
{ -0.5, -0.5, -0.5 },
{ 0.5, -0.5, -0.5 },
{ 0.5, 0.5, -0.5 },
{ -0.5, 0.5, -0.5 },
{ -0.5, -0.5, 0.5 },
{ 0.5, -0.5, 0.5 },
{ 0.5, 0.5, 0.5 },
{ -0.5, 0.5, 0.5 }
};
#define ALPHA 0.5
static float ang = 30.;
static gboolean
expose (GtkWidget *da, GdkEventExpose *event, gpointer user_data)
{
GdkGLContext *glcontext = gtk_widget_get_gl_context (da);
GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (da);
if (!gdk_gl_drawable_gl_begin (gldrawable, glcontext))
{
g_assert_not_reached ();
}
/* draw in here */
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glRotatef (ang, 1, 0, 1);
// glRotatef (ang, 0, 1, 0);
// glRotatef (ang, 0, 0, 1);
glShadeModel(GL_FLAT);
#if 0
glBegin (GL_QUADS);
glColor4f(0.0, 0.0, 1.0, ALPHA);
glVertex3fv(boxv[0]);
glVertex3fv(boxv[1]);
glVertex3fv(boxv[2]);
glVertex3fv(boxv[3]);
glColor4f(1.0, 1.0, 0.0, ALPHA);
glVertex3fv(boxv[0]);
glVertex3fv(boxv[4]);
glVertex3fv(boxv[5]);
glVertex3fv(boxv[1]);
glColor4f(0.0, 1.0, 1.0, ALPHA);
glVertex3fv(boxv[2]);
glVertex3fv(boxv[6]);
glVertex3fv(boxv[7]);
glVertex3fv(boxv[3]);
glColor4f(1.0, 0.0, 0.0, ALPHA);
glVertex3fv(boxv[4]);
glVertex3fv(boxv[5]);
glVertex3fv(boxv[6]);
glVertex3fv(boxv[7]);
glColor4f(1.0, 0.0, 1.0, ALPHA);
glVertex3fv(boxv[0]);
glVertex3fv(boxv[3]);
glVertex3fv(boxv[7]);
glVertex3fv(boxv[4]);
glColor4f(0.0, 1.0, 0.0, ALPHA);
glVertex3fv(boxv[1]);
glVertex3fv(boxv[5]);
glVertex3fv(boxv[6]);
glVertex3fv(boxv[2]);
glEnd ();
#endif
glBegin (GL_LINES);
glColor3f (1., 0., 0.);
glVertex3f (0., 0., 0.);
glVertex3f (1., 0., 0.);
glEnd ();
glBegin (GL_LINES);
glColor3f (0., 1., 0.);
glVertex3f (0., 0., 0.);
glVertex3f (0., 1., 0.);
glEnd ();
glBegin (GL_LINES);
glColor3f (0., 0., 1.);
glVertex3f (0., 0., 0.);
glVertex3f (0., 0., 1.);
glEnd ();
glBegin(GL_LINES);
glColor3f (1., 1., 1.);
glVertex3fv(boxv[0]);
glVertex3fv(boxv[1]);
glVertex3fv(boxv[1]);
glVertex3fv(boxv[2]);
glVertex3fv(boxv[2]);
glVertex3fv(boxv[3]);
glVertex3fv(boxv[3]);
glVertex3fv(boxv[0]);
glVertex3fv(boxv[4]);
glVertex3fv(boxv[5]);
glVertex3fv(boxv[5]);
glVertex3fv(boxv[6]);
glVertex3fv(boxv[6]);
glVertex3fv(boxv[7]);
glVertex3fv(boxv[7]);
glVertex3fv(boxv[4]);
glVertex3fv(boxv[0]);
glVertex3fv(boxv[4]);
glVertex3fv(boxv[1]);
glVertex3fv(boxv[5]);
glVertex3fv(boxv[2]);
glVertex3fv(boxv[6]);
glVertex3fv(boxv[3]);
glVertex3fv(boxv[7]);
glEnd();
glPopMatrix ();
if (gdk_gl_drawable_is_double_buffered (gldrawable))
gdk_gl_drawable_swap_buffers (gldrawable);
else
glFlush ();
gdk_gl_drawable_gl_end (gldrawable);
return TRUE;
}
static gboolean configure (GtkWidget *da, GdkEventConfigure *event, gpointer user_data)
{
GdkGLContext *glcontext = gtk_widget_get_gl_context (da);
GdkGLDrawable *gldrawable = gtk_widget_get_gl_drawable (da);
if (!gdk_gl_drawable_gl_begin (gldrawable, glcontext))
{
g_assert_not_reached ();
}
glLoadIdentity();
glViewport (0, 0, da->allocation.width, da->allocation.height);
glOrtho (-10,10,-10,10,-20050,10000);
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glScalef (10., 10., 10.);
gdk_gl_drawable_gl_end (gldrawable);
return TRUE;
}
static gboolean rotate (gpointer user_data)
{
GtkWidget *da = GTK_WIDGET (user_data);
ang++;
gdk_window_invalidate_rect (da->window, &da->allocation, FALSE);
gdk_window_process_updates (da->window, FALSE);
return TRUE;
}
int main (int argc, char **argv)
{
GtkWidget *window;
GtkWidget *da;
GdkGLConfig *glconfig;
gtk_init (&argc, &argv);
gtk_gl_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_default_size (GTK_WINDOW (window), 800, 600);
da = gtk_drawing_area_new ();
gtk_container_add (GTK_CONTAINER (window), da);
g_signal_connect_swapped (window, "destroy",
G_CALLBACK (gtk_main_quit), NULL);
gtk_widget_set_events (da, GDK_EXPOSURE_MASK);
gtk_widget_show (window);
/* prepare GL */
glconfig = gdk_gl_config_new_by_mode (
GDK_GL_MODE_RGB |
GDK_GL_MODE_DEPTH |
GDK_GL_MODE_DOUBLE);
if (!glconfig)
{
g_assert_not_reached ();
}
if (!gtk_widget_set_gl_capability (da, glconfig, NULL, TRUE,
GDK_GL_RGBA_TYPE))
{
g_assert_not_reached ();
}
g_signal_connect (da, "configure-event",
G_CALLBACK (configure), NULL);
g_signal_connect (da, "expose-event",
G_CALLBACK (expose), NULL);
gtk_widget_show_all (window);
g_timeout_add (1000 / 60, rotate, da);
gtk_main ();
}
Das ist die Ausgabe kurz nach dem starten (während des Buildprozesses):
------ Erstellen gestartet: Projekt: GTK_Test_Projekt, Konfiguration: Debug Win32 ------
Kompilieren...
stdafx.cpp
Kompilieren...
GTK_Test_Projekt.cpp
Manifest in Ressourcen wird kompiliert...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation. All rights reserved.
Verknüpfen...
LINK : E:\WORKING\MISC\GTK\GTK_Test_Projekt\Debug\GTK_Test_Projekt.exe wurde nicht gefunden oder beim letzten inkrementellen Linkvorgang nicht erstellt; vollständiger Link wird durchgeführt.
Das Manifest wird eingebettet...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation. All rights reserved.
**Wenn ich diesen Code ausführe wird kompiliert und verknüpft, aber kurz vor dem Start erscheint ein Dialog:
**
Unbehandelte Ausnahme bei 0x00019fc0 in GTK_Test_Projekt.exe: 0xC0000005:
Zugriffsverletzung beim Lesen an Position 0x00019fc0.
**Das ist die komplette Kompilerausgabe:
**
"GTK_Test_Projekt.exe": "E:\WORKING\MISC\GTK\GTK_Test_Projekt\Debug\GTK_Test_Projekt.exe" geladen, Symbole wurden geladen.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\ntdll.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\kernel32.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libgtk-win32-2.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libgdk_pixbuf-2.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libgio-2.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libglib-2.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\advapi32.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\rpcrt4.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\secur32.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\msvcrt.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\ole32.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\gdi32.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\user32.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\shell32.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\shlwapi.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\ws2_32.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\ws2help.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libgmodule-2.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libgobject-2.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libgthread-2.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\zlib1.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\dnsapi.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libpng14-14.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libgdk-win32-2.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libcairo-2.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libfontconfig-1.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libexpat-1.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\freetype6.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\msimg32.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libpango-1.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libpangocairo-1.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libpangoft2-1.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libpangowin32-1.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\imm32.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\libatk-1.0-0.dll" geladen, Die Binärdaten wurden nicht mit Debuginformationen erstellt.
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\comctl32.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\comdlg32.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\system32\winspool.drv" wurde geladen
"GTK_Test_Projekt.exe": "C:\Programme\Kaspersky Lab\Kaspersky Internet Security 2010\mzvkbd3.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\Programme\Kaspersky Lab\Kaspersky Internet Security 2010\kloehk.dll" wurde geladen
"GTK_Test_Projekt.exe": "C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll" wurde geladen
Eine Ausnahme (erste Chance) bei 0x00019fc0 in GTK_Test_Projekt.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00019fc0.
Unbehandelte Ausnahme bei 0x00019fc0 in GTK_Test_Projekt.exe: 0xC0000005: Zugriffsverletzung beim Lesen an Position 0x00019fc0.
Das Programm "[5124] GTK_Test_Projekt.exe: Systemeigen" wurde mit Code 0 (0x0) beendet.
Ich hoffe das ist aussagekräftig und nicht zuviel!
Vielen Dank daß Ihr Euch die Mühe macht,
hoffentlich könnt Ihr mir helfen
Duckler