X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fopengl%2Fr_graphics.pas;h=3b60fe49de14e8865dc2817a39a0ea35b0ae1839;hb=0da9a438ff0d90e07b82d929065de68a106cb09e;hp=5bd4aee4f8a610310a43142106f3f6ce6dc7eac2;hpb=c5684c0c980bb96fd4fd0efae4d48cdeb469c8ff;p=d2df-sdl.git diff --git a/src/game/opengl/r_graphics.pas b/src/game/opengl/r_graphics.pas index 5bd4aee..3b60fe4 100644 --- a/src/game/opengl/r_graphics.pas +++ b/src/game/opengl/r_graphics.pas @@ -22,7 +22,7 @@ uses {$IFDEF USE_SDL2} SDL2, {$ENDIF} - SysUtils, Classes, Math, e_log, e_texture, g_base, + SysUtils, Classes, Math, e_log, r_texture, g_base, MAPDEF, ImagingTypes, Imaging, ImagingUtility; type @@ -66,8 +66,8 @@ procedure e_DarkenQuadWH (x, y, w, h: Integer; a: Integer); function e_CreateTextureImg (var img: TImageData; var ID: DWORD): Boolean; function e_CreateTexture(FileName: string; var ID: DWORD): Boolean; function e_CreateTextureEx(FileName: string; var ID: DWORD; fX, fY, fWidth, fHeight: Word): Boolean; -function e_CreateTextureMem(pData: Pointer; dataSize: LongInt; var ID: DWORD): Boolean; -function e_CreateTextureMemEx(pData: Pointer; dataSize: LongInt; var ID: DWORD; fX, fY, fWidth, fHeight: Word): Boolean; +function e_CreateTextureMem(pData: Pointer; dataSize: LongInt; var ID: DWORD; filter: Boolean = False): Boolean; +function e_CreateTextureMemEx(pData: Pointer; dataSize: LongInt; var ID: DWORD; fX, fY, fWidth, fHeight: Word; filter: Boolean = False): Boolean; procedure e_GetTextureSize(ID: DWORD; Width, Height: PWord); procedure e_DeleteTexture(ID: DWORD); procedure e_RemoveAllTextures(); @@ -119,17 +119,11 @@ procedure e_MakeScreenshot(st: TStream; Width, Height: Word); var e_Colors: TRGB; - e_NoGraphics: Boolean = False; - e_FastScreenshots: Boolean = true; // it's REALLY SLOW with `false` - g_dbg_scale: Single = 1.0; - r_pixel_scale: Single = 1.0; - implementation uses - paszlib, crc, utils; - + paszlib, crc, utils, g_options; type TTexture = record @@ -172,8 +166,6 @@ var e_RBO: GLuint = 0; e_RBOSupported: Boolean = True; e_Frame: GLuint = 0; - e_FrameW: Integer = -1; - e_FrameH: Integer = -1; //function e_getTextGLId (ID: DWORD): GLuint; begin result := e_Textures[ID].tx.id; end; @@ -299,7 +291,7 @@ begin Result := True; end; -function e_CreateTextureMem(pData: Pointer; dataSize: LongInt; var ID: DWORD): Boolean; +function e_CreateTextureMem(pData: Pointer; dataSize: LongInt; var ID: DWORD; filter: Boolean = False): Boolean; var find_id: DWORD; fmt: Word; @@ -308,14 +300,14 @@ begin find_id := FindTexture; - if not LoadTextureMem(pData, dataSize, e_Textures[find_id].tx, e_Textures[find_id].tx.Width, e_Textures[find_id].tx.Height, @fmt) then exit; + if not LoadTextureMem(pData, dataSize, e_Textures[find_id].tx, e_Textures[find_id].tx.Width, e_Textures[find_id].tx.Height, @fmt, filter) then exit; id := find_id; Result := True; end; -function e_CreateTextureMemEx(pData: Pointer; dataSize: LongInt; var ID: DWORD; fX, fY, fWidth, fHeight: Word): Boolean; +function e_CreateTextureMemEx(pData: Pointer; dataSize: LongInt; var ID: DWORD; fX, fY, fWidth, fHeight: Word; filter: Boolean = False): Boolean; var find_id: DWORD; fmt: Word; @@ -324,7 +316,7 @@ begin find_id := FindTexture(); - if not LoadTextureMemEx(pData, dataSize, e_Textures[find_id].tx, fX, fY, fWidth, fHeight, @fmt) then exit; + if not LoadTextureMemEx(pData, dataSize, e_Textures[find_id].tx, fX, fY, fWidth, fHeight, @fmt, filter) then exit; ID := find_id; @@ -382,9 +374,6 @@ begin DestroyFramebuffer; - e_FrameW := Width; - e_FrameH := Height; - glGetError(); glGenFramebuffers(1, @e_FBO);