test/testdyngl.c
author Sam Lantinga <slouken@libsdl.org>
Fri, 30 Apr 2004 18:33:30 +0000
changeset 885 9f6ad2286011
parent 847 0afe0e38e02c
child 910 4ab6d1fd028f
permissions -rw-r--r--
Date: Wed, 28 Apr 2004 16:52:41 -0400 From: "Damien A" Subject: testdyngl fix The test program you included in the latest version of SDL crashes on startup in Window (XP). The reason for this is that OpenGL functions on Windows use the __stdcall calling convention, not the C convention. Placing APIENTRY infront of the * operator solves this problem.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
839
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     1
/*
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     2
 * Small SDL example to demonstrate dynamically loading 
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     3
 * OpenGL lib and functions
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     4
 *
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     5
 * (FYI it was supposed to look like snow in the wind or something...)
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     6
 *
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     7
 * Compile with :
847
0afe0e38e02c *** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents: 842
diff changeset
     8
 * gcc testdyngl.c `sdl-config --libs --cflags` -o testdyngl -DHAVE_OPENGL
839
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     9
 *
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    10
 * You can specify a different OpenGL lib on the command line, i.e. :
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    11
 * ./testdyngl  /usr/X11R6/lib/libGL.so.1.2
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    12
 * or
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    13
 * ./testdyngl  /usr/lib/libGL.so.1.0.4496
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    14
 *
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    15
 */
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    16
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    17
#include <stdio.h>
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    18
#include <stdlib.h>
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    19
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    20
#include "SDL.h"
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    21
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    22
#ifdef HAVE_OPENGL
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    23
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    24
#include "SDL_opengl.h"
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    25
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    26
void* get_funcaddr(const char* p)
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    27
{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    28
	void* f=SDL_GL_GetProcAddress(p);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    29
	if (f)
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    30
	{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    31
		return f;
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    32
	}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    33
	else
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    34
	{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    35
		printf("Unable to get function pointer for %s\n",p);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    36
		exit(1);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    37
	}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    38
}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    39
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    40
typedef struct
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    41
{
885
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    42
	void(APIENTRY*glBegin)(GLenum);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    43
	void(APIENTRY*glEnd)();
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    44
	void(APIENTRY*glVertex3f)(GLfloat, GLfloat, GLfloat);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    45
	void(APIENTRY*glClearColor)(GLfloat, GLfloat, GLfloat, GLfloat);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    46
	void(APIENTRY*glClear)(GLbitfield);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    47
	void(APIENTRY*glDisable)(GLenum);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    48
	void(APIENTRY*glEnable)(GLenum);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    49
	void(APIENTRY*glColor4ub)(GLubyte,GLubyte,GLubyte,GLubyte);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    50
	void(APIENTRY*glPointSize)(GLfloat);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    51
	void(APIENTRY*glHint)(GLenum,GLenum);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    52
	void(APIENTRY*glBlendFunc)(GLenum,GLenum);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    53
	void(APIENTRY*glMatrixMode)(GLenum);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    54
	void(APIENTRY*glLoadIdentity)();
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    55
	void(APIENTRY*glOrtho)(GLdouble,GLdouble,GLdouble,GLdouble,GLdouble,GLdouble);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    56
	void(APIENTRY*glRotatef)(GLfloat,GLfloat,GLfloat,GLfloat);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    57
	void(APIENTRY*glViewport)(GLint,GLint,GLsizei,GLsizei);
9f6ad2286011 Date: Wed, 28 Apr 2004 16:52:41 -0400
Sam Lantinga <slouken@libsdl.org>
parents: 847
diff changeset
    58
	void(APIENTRY*glFogf)(GLenum,GLfloat);
839
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    59
}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    60
glfuncs;
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    61
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    62
void init_glfuncs(glfuncs* f)
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    63
{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    64
	f->glBegin=get_funcaddr("glBegin");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    65
	f->glEnd=get_funcaddr("glEnd");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    66
	f->glVertex3f=get_funcaddr("glVertex3f");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    67
	f->glClearColor=get_funcaddr("glClearColor");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    68
	f->glClear=get_funcaddr("glClear");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    69
	f->glDisable=get_funcaddr("glDisable");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    70
	f->glEnable=get_funcaddr("glEnable");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    71
	f->glColor4ub=get_funcaddr("glColor4ub");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    72
	f->glPointSize=get_funcaddr("glPointSize");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    73
	f->glHint=get_funcaddr("glHint");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    74
	f->glBlendFunc=get_funcaddr("glBlendFunc");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    75
	f->glMatrixMode=get_funcaddr("glMatrixMode");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    76
	f->glLoadIdentity=get_funcaddr("glLoadIdentity");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    77
	f->glOrtho=get_funcaddr("glOrtho");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    78
	f->glRotatef=get_funcaddr("glRotatef");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    79
	f->glViewport=get_funcaddr("glViewport");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    80
	f->glFogf=get_funcaddr("glFogf");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    81
}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    82
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    83
#define NB_PIXELS 1000
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    84
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    85
int main(int argc,char *argv[])
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    86
{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    87
	glfuncs f;
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    88
	int i;
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    89
	SDL_Event event;
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    90
	int done=0;
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    91
	GLfloat pixels[NB_PIXELS*3];
842
0eec9985767d Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents: 839
diff changeset
    92
#ifdef _WIN32
0eec9985767d Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents: 839
diff changeset
    93
	char *gl_library = "OpenGL32.DLL";
0eec9985767d Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents: 839
diff changeset
    94
#else
0eec9985767d Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents: 839
diff changeset
    95
	char *gl_library = "libGL.so.1";
0eec9985767d Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents: 839
diff changeset
    96
#endif
839
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    97
	
842
0eec9985767d Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents: 839
diff changeset
    98
	if (argv[1]) {
0eec9985767d Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents: 839
diff changeset
    99
		gl_library = argv[1];
839
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   100
	}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   101
	
842
0eec9985767d Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents: 839
diff changeset
   102
	if (SDL_Init(SDL_INIT_VIDEO)<0)
839
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   103
	{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   104
		printf("Unable to init SDL : %s\n",SDL_GetError());
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   105
		exit(1);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   106
	}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   107
	
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   108
	if (SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER,1)<0)
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   109
	{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   110
		printf("Unable to set GL attribute : %s\n",SDL_GetError());
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   111
		exit(1);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   112
	}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   113
	
842
0eec9985767d Load the correct library on Windows
Sam Lantinga <slouken@libsdl.org>
parents: 839
diff changeset
   114
	if (SDL_GL_LoadLibrary(gl_library)<0)
839
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   115
	{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   116
		printf("Unable to dynamically open GL lib : %s\n",SDL_GetError());
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   117
		exit(1);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   118
	}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   119
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   120
	if (SDL_SetVideoMode(640,480,0,SDL_OPENGL)==NULL)
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   121
	{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   122
		printf("Unable to open video mode : %s\n",SDL_GetError());
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   123
		exit(1);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   124
	}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   125
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   126
	init_glfuncs(&f);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   127
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   128
	for(i=0;i<NB_PIXELS;i++)
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   129
	{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   130
		pixels[3*i]=rand()%250-125;
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   131
		pixels[3*i+1]=rand()%250-125;
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   132
		pixels[3*i+2]=rand()%250-125;
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   133
	}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   134
	
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   135
	f.glViewport(0,0,640,480);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   136
	
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   137
	f.glMatrixMode(GL_PROJECTION);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   138
	f.glLoadIdentity();
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   139
	f.glOrtho(-100,100,-100,100,-500,500);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   140
	
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   141
	f.glMatrixMode(GL_MODELVIEW);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   142
	f.glLoadIdentity();
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   143
	
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   144
	f.glEnable(GL_DEPTH_TEST);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   145
	f.glDisable(GL_TEXTURE_2D);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   146
	f.glEnable(GL_BLEND);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   147
	f.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   148
	
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   149
	f.glClearColor(0.0f,0.0f,0.0f,0.0f);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   150
	f.glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   151
	
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   152
	f.glEnable(GL_POINT_SMOOTH);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   153
	f.glHint(GL_POINT_SMOOTH_HINT,GL_NICEST);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   154
	f.glPointSize(5.0f);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   155
	f.glEnable(GL_FOG);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   156
	f.glFogf(GL_FOG_START,-500);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   157
	f.glFogf(GL_FOG_END,500);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   158
	f.glFogf(GL_FOG_DENSITY,0.005);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   159
	
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   160
	do
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   161
	{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   162
		f.glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   163
		
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   164
		f.glRotatef(2.0,1.0,1.0,1.0);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   165
		f.glRotatef(1.0,0.0,1.0,1.0);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   166
		
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   167
		f.glColor4ub(255,255,255,255);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   168
		f.glBegin(GL_POINTS);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   169
		for(i=0;i<NB_PIXELS;i++)
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   170
		{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   171
			f.glVertex3f(pixels[3*i],pixels[3*i+1],pixels[3*i+2]);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   172
		}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   173
		f.glEnd();
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   174
		SDL_GL_SwapBuffers();
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   175
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   176
		while(SDL_PollEvent(&event))
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   177
		{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   178
			if(event.type & SDL_KEYDOWN)
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   179
				done=1;
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   180
		}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   181
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   182
		SDL_Delay(20);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   183
	}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   184
	while(!done);
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   185
	
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   186
	SDL_Quit();
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   187
	return 0;
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   188
}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   189
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   190
#else /* HAVE_OPENGL */
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   191
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   192
int main(int argc, char *argv[])
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   193
{
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   194
	printf("No OpenGL support on this system\n");
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   195
	return 1;
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   196
}
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   197
7b255f0290da Added a test program for dynamically loading OpenGL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
   198
#endif /* HAVE_OPENGL */