aboutsummaryrefslogtreecommitdiffstats
path: root/Game/Code/Classes/UGraphic.pas
diff options
context:
space:
mode:
authortobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-05-02 12:37:17 +0000
committertobigun <tobigun@b956fd51-792f-4845-bead-9b4dfca2ff2c>2008-05-02 12:37:17 +0000
commit97b5f227669651bc71328296e95df386a31ddf7b (patch)
treee3807571db7468ff3ac716fbad6cf74d974292d4 /Game/Code/Classes/UGraphic.pas
parentff5d59edfcccefe52285091937d1a3337fb38694 (diff)
downloadusdx-97b5f227669651bc71328296e95df386a31ddf7b.tar.gz
usdx-97b5f227669651bc71328296e95df386a31ddf7b.tar.xz
usdx-97b5f227669651bc71328296e95df386a31ddf7b.zip
Replaced OpenGL12 with SDL's gl/glu/glext units because OpenGL12 was removed from SDL (several years ago? Last update was done in 2004). In addition OpenGL12 was very buggy (see last commit). The new units support OpenGL up to version 2.0 (extensions must be loaded first, see UGraphic.LoadOpenGLExtensions). At the moment, only 1.2 extensions are loaded. Some constants, that were introduced in OpenGL 1.2 and above (like GL_BGR or GL_CLAMP_TO_EDGE) are in glext.pas, so check this file first for missing constants.
The MacOS build depends on OpenGL12.pas but has its own file in the MacOSX/Wrapper folder instead of using the JEDI-SDL one. Sorry, that I broke MacOSX build for now but it should be no problem to get this working again. git-svn-id: svn://svn.code.sf.net/p/ultrastardx/svn/trunk@1052 b956fd51-792f-4845-bead-9b4dfca2ff2c
Diffstat (limited to 'Game/Code/Classes/UGraphic.pas')
-rw-r--r--Game/Code/Classes/UGraphic.pas28
1 files changed, 22 insertions, 6 deletions
diff --git a/Game/Code/Classes/UGraphic.pas b/Game/Code/Classes/UGraphic.pas
index cc34b18d..0be862c7 100644
--- a/Game/Code/Classes/UGraphic.pas
+++ b/Game/Code/Classes/UGraphic.pas
@@ -10,7 +10,8 @@ interface
uses
SDL,
- OpenGL12,
+ gl,
+ glext,
UTexture,
TextGL,
ULog,
@@ -397,15 +398,26 @@ begin
Log.LogStatus('Loading Textures - Done', 'LoadTextures');
end;
+(*
+ * Load OpenGL extensions. Must be called after SDL_SetVideoMode() and each
+ * time the pixel-format or render-context (RC) changes.
+ *)
+procedure LoadOpenGLExtensions;
+begin
+ // Load OpenGL 1.2 extensions for OpenGL 1.2 compatibility
+ if (not Load_GL_version_1_2()) then
+ begin
+ Log.LogCritical('Failed loading OpenGL 1.2', 'UGraphic.Initialize3D');
+ end;
+
+ // Other extensions e.g. OpenGL 1.3-2.0 or Framebuffer-Object might be loaded here
+ // ...
+end;
+
procedure Initialize3D (Title: string);
var
Icon: PSDL_Surface;
begin
- Log.LogStatus('LoadOpenGL', 'UGraphic.Initialize3D');
- //Log.BenchmarkStart(2);
-
- LoadOpenGL;
-
Log.LogStatus('SDL_Init', 'UGraphic.Initialize3D');
if ( SDL_InitSubSystem(SDL_INIT_VIDEO) = -1 ) then
begin
@@ -420,6 +432,8 @@ begin
SDL_WM_SetCaption(PChar(Title), nil);
+ //Log.BenchmarkStart(2);
+
InitializeScreen;
//Log.BenchmarkEnd(2);
@@ -592,6 +606,8 @@ begin
exit;
end;
+ LoadOpenGLExtensions();
+
// clear screen once window is being shown
glClearColor(1, 1, 1, 1);
glClear(GL_COLOR_BUFFER_BIT);