mirror of
https://github.com/DrBeef/Raze.git
synced 2024-11-15 00:41:55 +00:00
- backend update from GZDoom.
This commit is contained in:
parent
bf9defc062
commit
4f8f85c634
12 changed files with 35 additions and 8 deletions
|
@ -746,7 +746,6 @@ set( NOT_COMPILED_SOURCE_FILES
|
||||||
games/blood/src/prediction.cpp
|
games/blood/src/prediction.cpp
|
||||||
games/blood/src/preload.cpp
|
games/blood/src/preload.cpp
|
||||||
games/blood/src/qav.cpp
|
games/blood/src/qav.cpp
|
||||||
games/blood/src/replace.cpp
|
|
||||||
games/blood/src/sbar.cpp
|
games/blood/src/sbar.cpp
|
||||||
games/blood/src/sectorfx.cpp
|
games/blood/src/sectorfx.cpp
|
||||||
games/blood/src/seq.cpp
|
games/blood/src/seq.cpp
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Lesser General Public License as published by
|
// it under the terms of the GNU Lesser General Public License as published by
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
// the Free Software Foundation, either version 2 of the License, or
|
||||||
// (at your option) any later version.
|
// (at your option) any later version.
|
||||||
//
|
//
|
||||||
// This program is distributed in the hope that it will be useful,
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Lesser General Public License as published by
|
// it under the terms of the GNU Lesser General Public License as published by
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
// the Free Software Foundation, either version 2 of the License, or
|
||||||
// (at your option) any later version.
|
// (at your option) any later version.
|
||||||
//
|
//
|
||||||
// This program is distributed in the hope that it will be useful,
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Lesser General Public License as published by
|
// it under the terms of the GNU Lesser General Public License as published by
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
// the Free Software Foundation, either version 2 of the License, or
|
||||||
// (at your option) any later version.
|
// (at your option) any later version.
|
||||||
//
|
//
|
||||||
// This program is distributed in the hope that it will be useful,
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Lesser General Public License as published by
|
// it under the terms of the GNU Lesser General Public License as published by
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
// the Free Software Foundation, either version 2 of the License, or
|
||||||
// (at your option) any later version.
|
// (at your option) any later version.
|
||||||
//
|
//
|
||||||
// This program is distributed in the hope that it will be useful,
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
|
|
@ -481,7 +481,10 @@ public:
|
||||||
{
|
{
|
||||||
return mMaterialShaders[eff];
|
return mMaterialShaders[eff];
|
||||||
}
|
}
|
||||||
return NULL;
|
else // This can happen if we try and active a user shader which is not loaded, so return default shader so it does not crash
|
||||||
|
{
|
||||||
|
return mMaterialShaders[0];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -120,6 +120,7 @@ struct BuildInfo
|
||||||
bool bComplex = false;
|
bool bComplex = false;
|
||||||
bool textual = false;
|
bool textual = false;
|
||||||
bool bNoDecals = false;
|
bool bNoDecals = false;
|
||||||
|
bool bNoTrim = false;
|
||||||
int LeftOffset[2] = {};
|
int LeftOffset[2] = {};
|
||||||
int TopOffset[2] = {};
|
int TopOffset[2] = {};
|
||||||
FGameTexture *texture = nullptr;
|
FGameTexture *texture = nullptr;
|
||||||
|
|
|
@ -59,6 +59,7 @@ enum EGameTexFlags
|
||||||
GTexf_BrightmapChecked = 128, // Check for a colormap-based brightmap was already done.
|
GTexf_BrightmapChecked = 128, // Check for a colormap-based brightmap was already done.
|
||||||
GTexf_AutoMaterialsAdded = 256, // AddAutoMaterials has been called on this texture.
|
GTexf_AutoMaterialsAdded = 256, // AddAutoMaterials has been called on this texture.
|
||||||
GTexf_OffsetsNotForFont = 512, // The offsets must be ignored when using this texture in a font.
|
GTexf_OffsetsNotForFont = 512, // The offsets must be ignored when using this texture in a font.
|
||||||
|
GTexf_NoTrim = 1024, // Don't perform trimming on this texture.
|
||||||
};
|
};
|
||||||
|
|
||||||
// Refactoring helper to allow piece by piece adjustment of the API
|
// Refactoring helper to allow piece by piece adjustment of the API
|
||||||
|
@ -159,6 +160,8 @@ public:
|
||||||
bool expandSprites() { return expandSprite == -1? ShouldExpandSprite() : !!expandSprite; }
|
bool expandSprites() { return expandSprite == -1? ShouldExpandSprite() : !!expandSprite; }
|
||||||
bool useWorldPanning() const { return !!(flags & GTexf_WorldPanning); }
|
bool useWorldPanning() const { return !!(flags & GTexf_WorldPanning); }
|
||||||
void SetWorldPanning(bool on) { if (on) flags |= GTexf_WorldPanning; else flags &= ~GTexf_WorldPanning; }
|
void SetWorldPanning(bool on) { if (on) flags |= GTexf_WorldPanning; else flags &= ~GTexf_WorldPanning; }
|
||||||
|
void SetNoTrimming(bool on) { if (on) flags |= GTexf_NoTrim; else flags &= ~GTexf_NoTrim; }
|
||||||
|
bool GetNoTrimming() { return !!(flags & GTexf_NoTrim); }
|
||||||
bool allowNoDecals() const { return !!(flags & GTexf_NoDecals); }
|
bool allowNoDecals() const { return !!(flags & GTexf_NoDecals); }
|
||||||
void SetNoDecals(bool on) { if (on) flags |= GTexf_NoDecals; else flags &= ~GTexf_NoDecals; }
|
void SetNoDecals(bool on) { if (on) flags |= GTexf_NoDecals; else flags &= ~GTexf_NoDecals; }
|
||||||
void SetOffsetsNotForFont() { flags |= GTexf_OffsetsNotForFont; }
|
void SetOffsetsNotForFont() { flags |= GTexf_OffsetsNotForFont; }
|
||||||
|
|
|
@ -144,6 +144,7 @@ void FMultipatchTextureBuilder::MakeTexture(BuildInfo &buildinfo, ETextureType u
|
||||||
buildinfo.texture->SetScale((float)buildinfo.Scale.X, (float)buildinfo.Scale.Y);
|
buildinfo.texture->SetScale((float)buildinfo.Scale.X, (float)buildinfo.Scale.Y);
|
||||||
buildinfo.texture->SetWorldPanning(buildinfo.bWorldPanning);
|
buildinfo.texture->SetWorldPanning(buildinfo.bWorldPanning);
|
||||||
buildinfo.texture->SetNoDecals(buildinfo.bNoDecals);
|
buildinfo.texture->SetNoDecals(buildinfo.bNoDecals);
|
||||||
|
buildinfo.texture->SetNoTrimming(buildinfo.bNoTrim);
|
||||||
TexMan.AddGameTexture(buildinfo.texture);
|
TexMan.AddGameTexture(buildinfo.texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -669,6 +670,10 @@ void FMultipatchTextureBuilder::ParseTexture(FScanner &sc, ETextureType UseType,
|
||||||
{
|
{
|
||||||
buildinfo.bNoDecals = true;
|
buildinfo.bNoDecals = true;
|
||||||
}
|
}
|
||||||
|
else if (sc.Compare("NoTrim"))
|
||||||
|
{
|
||||||
|
buildinfo.bNoTrim = true;
|
||||||
|
}
|
||||||
else if (sc.Compare("Patch"))
|
else if (sc.Compare("Patch"))
|
||||||
{
|
{
|
||||||
TexPartBuild part;
|
TexPartBuild part;
|
||||||
|
|
|
@ -811,6 +811,22 @@ void FTextureManager::ParseTextureDef(int lump, FMultipatchTextureBuilder &build
|
||||||
}
|
}
|
||||||
//else Printf("Unable to define hires texture '%s'\n", tex->Name);
|
//else Printf("Unable to define hires texture '%s'\n", tex->Name);
|
||||||
}
|
}
|
||||||
|
else if (sc.Compare("notrim"))
|
||||||
|
{
|
||||||
|
sc.MustGetString();
|
||||||
|
|
||||||
|
FTextureID id = TexMan.CheckForTexture(sc.String, ETextureType::Sprite);
|
||||||
|
if (id.isValid())
|
||||||
|
{
|
||||||
|
FGameTexture *tex = TexMan.GetGameTexture(id);
|
||||||
|
|
||||||
|
if (tex) tex->SetNoTrimming(true);
|
||||||
|
else sc.ScriptError("NoTrim: %s not found", sc.String);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
sc.ScriptError("NoTrim: %s is not a sprite", sc.String);
|
||||||
|
|
||||||
|
}
|
||||||
else if (sc.Compare("texture"))
|
else if (sc.Compare("texture"))
|
||||||
{
|
{
|
||||||
build.ParseTexture(sc, ETextureType::Override, lump);
|
build.ParseTexture(sc, ETextureType::Override, lump);
|
||||||
|
|
|
@ -248,7 +248,7 @@ bool GetFileInfo(const char* pathname, size_t *size, time_t *time)
|
||||||
bool res = _wstat64(wstr.c_str(), &info) == 0;
|
bool res = _wstat64(wstr.c_str(), &info) == 0;
|
||||||
#endif
|
#endif
|
||||||
if (!res || (info.st_mode & S_IFDIR)) return false;
|
if (!res || (info.st_mode & S_IFDIR)) return false;
|
||||||
if (size) *size = info.st_size;
|
if (size) *size = (size_t)info.st_size;
|
||||||
if (time) *time = info.st_mtime;
|
if (time) *time = info.st_mtime;
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
//
|
//
|
||||||
// This program is free software: you can redistribute it and/or modify
|
// This program is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU Lesser General Public License as published by
|
// it under the terms of the GNU Lesser General Public License as published by
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
// the Free Software Foundation, either version 2 of the License, or
|
||||||
// (at your option) any later version.
|
// (at your option) any later version.
|
||||||
//
|
//
|
||||||
// This program is distributed in the hope that it will be useful,
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
|
Loading…
Reference in a new issue