mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-11 15:21:51 +00:00
Fix uninitialized memory access if a FShaderProgram is destroyed without being fully compiled and linked
This commit is contained in:
parent
960038bb81
commit
b68bbaf617
2 changed files with 10 additions and 0 deletions
|
@ -52,6 +52,12 @@
|
|||
#include "i_system.h"
|
||||
#include "doomerrors.h"
|
||||
|
||||
FShaderProgram::FShaderProgram()
|
||||
{
|
||||
for (int i = 0; i < NumShaderTypes; i++)
|
||||
mShaders[i] = 0;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
//
|
||||
// Free shader program resources
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
class FShaderProgram
|
||||
{
|
||||
public:
|
||||
FShaderProgram();
|
||||
~FShaderProgram();
|
||||
|
||||
enum ShaderType
|
||||
|
@ -30,6 +31,9 @@ public:
|
|||
static void PatchFragShader(FString &code);
|
||||
|
||||
private:
|
||||
FShaderProgram(const FShaderProgram &) = delete;
|
||||
FShaderProgram &operator=(const FShaderProgram &) = delete;
|
||||
|
||||
static FString PatchShader(ShaderType type, const FString &code, const char *defines, int maxGlslVersion);
|
||||
static void PatchCommon(FString &code);
|
||||
|
||||
|
|
Loading…
Reference in a new issue