DEADSOFTWARE

Added new OpenGL ES wrapper
[d2df-sdl.git] / src / game / g_textures.pas
index 5958e93b498f15d27a74e878e4850d32bb835942..9f551f5b830ce6a3aa19d1746256bec631750950 100644 (file)
@@ -1,4 +1,4 @@
-(* Copyright (C)  DooM 2D:Forever Developers
+(* Copyright (C)  Doom 2D: Forever Developers
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -88,9 +88,11 @@ type
 
 function g_Texture_CreateWAD (var ID: LongWord; const Resource: AnsiString): Boolean;
 function g_Texture_CreateFile (var ID: LongWord; const FileName: AnsiString): Boolean;
-function g_Texture_CreateWADEx (const textureName, Resource: AnsiString; const altrsrc: AnsiString=''): Boolean;
+function g_Texture_CreateWADEx (const textureName, Resource: AnsiString): Boolean;
 function g_Texture_CreateFileEx (const textureName, FileName: AnsiString): Boolean;
 function g_Texture_Get (const textureName: AnsiString; var ID: LongWord): Boolean;
+function g_Texture_GetSize (const textureName: AnsiString; var w, h: Integer): Boolean; overload;
+function g_Texture_GetSize (ID: LongWord; var w, h: Integer): Boolean; overload;
 procedure g_Texture_Delete (const textureName: AnsiString);
 procedure g_Texture_DeleteAll ();
 
@@ -117,8 +119,9 @@ function g_Texture_Light (): Integer;
 implementation
 
 uses
+  {$INCLUDE ../nogl/noGLuses.inc}
   g_game, e_log, g_basic, g_console, wadreader,
-  g_language, GL, utils, xstreams;
+  g_language, utils, xstreams;
 
 type
   _TTexture = record
@@ -247,7 +250,7 @@ begin
 end;
 
 
-function texture_CreateWADExInternal (const textureName, Resource: AnsiString; showmsg: Boolean): Boolean;
+function g_Texture_CreateWADEx (const textureName, Resource: AnsiString): Boolean;
 var
   WAD: TWADFile;
   FileName: AnsiString;
@@ -278,10 +281,7 @@ begin
   end
   else
   begin
-    if showmsg then
-    begin
-      e_WriteLog(Format('Error loading texture %s', [Resource]), TMsgType.Warning);
-    end;
+    e_WriteLog(Format('Error loading texture %s', [Resource]), TMsgType.Warning);
     //e_WriteLog(Format('WAD Reader error: %s', [WAD.GetLastErrorStr]), MSG_WARNING);
     result := false;
   end;
@@ -289,17 +289,6 @@ begin
 end;
 
 
-function g_Texture_CreateWADEx (const textureName, Resource: AnsiString; const altrsrc: AnsiString=''): Boolean;
-begin
-  if (Length(altrsrc) > 0) then
-  begin
-    result := texture_CreateWADExInternal(textureName, altrsrc, false);
-    if result then exit;
-  end;
-  result := texture_CreateWADExInternal(textureName, Resource, true);
-end;
-
-
 function g_Texture_CreateFileEx (const textureName, FileName: AnsiString): Boolean;
 var
   find_id: LongWord;
@@ -335,6 +324,48 @@ begin
 end;
 
 
+function g_Texture_GetSize (const textureName: AnsiString; var w, h: Integer): Boolean; overload;
+var
+  a: Integer;
+begin
+  result := false;
+  w := 0;
+  h := 0;
+  if (Length(texturesArray) = 0) or (Length(textureName) = 0) then exit;
+  for a := 0 to High(texturesArray) do
+  begin
+    if (StrEquCI1251(texturesArray[a].name, textureName)) then
+    begin
+      w := texturesArray[a].width;
+      h := texturesArray[a].height;
+      result := true;
+      break;
+    end;
+  end;
+end;
+
+
+function g_Texture_GetSize (ID: LongWord; var w, h: Integer): Boolean; overload;
+var
+  a: Integer;
+begin
+  result := false;
+  w := 0;
+  h := 0;
+  if (Length(texturesArray) = 0) then exit;
+  for a := 0 to High(texturesArray) do
+  begin
+    if (texturesArray[a].id = ID) then
+    begin
+      w := texturesArray[a].width;
+      h := texturesArray[a].height;
+      result := true;
+      break;
+    end;
+  end;
+end;
+
+
 procedure g_Texture_Delete (const textureName: AnsiString);
 var
   a: Integer;