Don’t try to create the standard/default array texture shader if array textures are not supported.

--HG--
branch : minor
This commit is contained in:
Alex Szpakowski
2017-03-01 21:19:37 -04:00
parent 12ede289b4
commit cb9aa857d7
2 changed files with 9 additions and 0 deletions
+6
View File
@@ -273,6 +273,9 @@ bool Graphics::setMode(int width, int height, int pixelwidth, int pixelheight, b
// We always need a default shader. // We always need a default shader.
for (int i = 0; i < Shader::STANDARD_MAX_ENUM; i++) for (int i = 0; i < Shader::STANDARD_MAX_ENUM; i++)
{ {
if (i == Shader::STANDARD_ARRAY && !isSupported(FEATURE_ARRAY_TEXTURE))
continue;
if (!Shader::standardShaders[i]) if (!Shader::standardShaders[i])
Shader::standardShaders[i] = newShader(defaultShaderCode[i][target][gammacorrect]); Shader::standardShaders[i] = newShader(defaultShaderCode[i][target][gammacorrect]);
} }
@@ -345,6 +348,9 @@ void Graphics::flushStreamDraws()
if (textype == TEXTURE_2D_ARRAY && Shader::isDefaultActive()) if (textype == TEXTURE_2D_ARRAY && Shader::isDefaultActive())
{ {
if (!Shader::standardShaders[Shader::STANDARD_ARRAY])
throw love::Exception("Standard array texture shader has not been initialized!");
prevdefaultshader = Shader::current; prevdefaultshader = Shader::current;
Shader::standardShaders[Shader::STANDARD_ARRAY]->attach(); Shader::standardShaders[Shader::STANDARD_ARRAY]->attach();
} }
@@ -68,6 +68,9 @@ void SpriteBatch::draw(Graphics *gfx, const Matrix4 &m)
if (textype == TEXTURE_2D_ARRAY && Shader::isDefaultActive()) if (textype == TEXTURE_2D_ARRAY && Shader::isDefaultActive())
{ {
if (!Shader::standardShaders[Shader::STANDARD_ARRAY])
throw love::Exception("Standard array texture shader has not been initialized!");
prevdefaultshader = Shader::current; prevdefaultshader = Shader::current;
Shader::standardShaders[Shader::STANDARD_ARRAY]->attach(); Shader::standardShaders[Shader::STANDARD_ARRAY]->attach();
} }