Skip to content

Commit cf79b44

Browse files
committed
Use GL_ARB_draw_buffers if avaliable
1 parent 97cfb92 commit cf79b44

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

src/openfl/display/OpenGLRenderer.hx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,8 @@ class OpenGLRenderer extends DisplayObjectRenderer
5252
@:noCompletion private static var __complexBlendsSupported:Null<Bool>;
5353
@:noCompletion private static var __coherentBlendsSupported:Null<Bool>;
5454
@:noCompletion private static var __sRGBWriteControlSupported:Null<Bool>;
55+
@:noCompletion private static var __drawBuffersARB:Null<Bool>;
56+
@:noCompletion private static var __drawBuffersEXT:Null<Bool>;
5557

5658
@:noCompletion private static var __alphaValue:Array<Float> = [1];
5759
@:noCompletion private static var __colorMultipliersValue:Array<Float> = [0, 0, 0, 0];
@@ -167,6 +169,14 @@ class OpenGLRenderer extends DisplayObjectRenderer
167169
{
168170
__standardDerivativesSupported = exts.contains("OES_standard_derivatives");
169171
}
172+
if (__drawBuffersARB == null)
173+
{
174+
__drawBuffersARB = exts.contains("ARB_draw_buffers");
175+
}
176+
if (__drawBuffersEXT == null)
177+
{
178+
__drawBuffersEXT = exts.contains("EXT_draw_buffers");
179+
}
170180

171181
#if (js && html5)
172182
__softwareRenderer = new CanvasRenderer(null);

src/openfl/display/Shader.hx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,14 @@ class Shader
567567
extensions += "#extension GL_OES_standard_derivatives : enable\n";
568568
}
569569

570-
extensions += "#extension GL_EXT_draw_buffers : enable\n";
570+
if (OpenGLRenderer.__drawBuffersARB)
571+
{
572+
extensions += "#extension GL_ARB_draw_buffers : enable\n";
573+
}
574+
else if (OpenGLRenderer.__drawBuffersEXT == null)
575+
{
576+
extensions += "#extension GL_EXT_draw_buffers : enable\n";
577+
}
571578

572579
// #version must be the first directive and cannot be repeated,
573580
// while #extension directives must be before any non-preprocessor tokens.

0 commit comments

Comments
 (0)